123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <!-- 2018-04-22 Sun 10:31 -->
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>&lrm;</title>
  10. <meta name="generator" content="Org mode" />
  11. <meta name="author" content="Bob Mottram" />
  12. <meta name="description" content="Freedombone mesh network capabilities"
  13. />
  14. <meta name="keywords" content="freedombone, mesh" />
  15. <style type="text/css">
  16. <!--/*--><![CDATA[/*><!--*/
  17. .title { text-align: center;
  18. margin-bottom: .2em; }
  19. .subtitle { text-align: center;
  20. font-size: medium;
  21. font-weight: bold;
  22. margin-top:0; }
  23. .todo { font-family: monospace; color: red; }
  24. .done { font-family: monospace; color: green; }
  25. .priority { font-family: monospace; color: orange; }
  26. .tag { background-color: #eee; font-family: monospace;
  27. padding: 2px; font-size: 80%; font-weight: normal; }
  28. .timestamp { color: #bebebe; }
  29. .timestamp-kwd { color: #5f9ea0; }
  30. .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
  31. .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
  32. .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  33. .underline { text-decoration: underline; }
  34. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  35. p.verse { margin-left: 3%; }
  36. pre {
  37. border: 1px solid #ccc;
  38. box-shadow: 3px 3px 3px #eee;
  39. padding: 8pt;
  40. font-family: monospace;
  41. overflow: auto;
  42. margin: 1.2em;
  43. }
  44. pre.src {
  45. position: relative;
  46. overflow: visible;
  47. padding-top: 1.2em;
  48. }
  49. pre.src:before {
  50. display: none;
  51. position: absolute;
  52. background-color: white;
  53. top: -10px;
  54. right: 10px;
  55. padding: 3px;
  56. border: 1px solid black;
  57. }
  58. pre.src:hover:before { display: inline;}
  59. /* Languages per Org manual */
  60. pre.src-asymptote:before { content: 'Asymptote'; }
  61. pre.src-awk:before { content: 'Awk'; }
  62. pre.src-C:before { content: 'C'; }
  63. /* pre.src-C++ doesn't work in CSS */
  64. pre.src-clojure:before { content: 'Clojure'; }
  65. pre.src-css:before { content: 'CSS'; }
  66. pre.src-D:before { content: 'D'; }
  67. pre.src-ditaa:before { content: 'ditaa'; }
  68. pre.src-dot:before { content: 'Graphviz'; }
  69. pre.src-calc:before { content: 'Emacs Calc'; }
  70. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  71. pre.src-fortran:before { content: 'Fortran'; }
  72. pre.src-gnuplot:before { content: 'gnuplot'; }
  73. pre.src-haskell:before { content: 'Haskell'; }
  74. pre.src-hledger:before { content: 'hledger'; }
  75. pre.src-java:before { content: 'Java'; }
  76. pre.src-js:before { content: 'Javascript'; }
  77. pre.src-latex:before { content: 'LaTeX'; }
  78. pre.src-ledger:before { content: 'Ledger'; }
  79. pre.src-lisp:before { content: 'Lisp'; }
  80. pre.src-lilypond:before { content: 'Lilypond'; }
  81. pre.src-lua:before { content: 'Lua'; }
  82. pre.src-matlab:before { content: 'MATLAB'; }
  83. pre.src-mscgen:before { content: 'Mscgen'; }
  84. pre.src-ocaml:before { content: 'Objective Caml'; }
  85. pre.src-octave:before { content: 'Octave'; }
  86. pre.src-org:before { content: 'Org mode'; }
  87. pre.src-oz:before { content: 'OZ'; }
  88. pre.src-plantuml:before { content: 'Plantuml'; }
  89. pre.src-processing:before { content: 'Processing.js'; }
  90. pre.src-python:before { content: 'Python'; }
  91. pre.src-R:before { content: 'R'; }
  92. pre.src-ruby:before { content: 'Ruby'; }
  93. pre.src-sass:before { content: 'Sass'; }
  94. pre.src-scheme:before { content: 'Scheme'; }
  95. pre.src-screen:before { content: 'Gnu Screen'; }
  96. pre.src-sed:before { content: 'Sed'; }
  97. pre.src-sh:before { content: 'shell'; }
  98. pre.src-sql:before { content: 'SQL'; }
  99. pre.src-sqlite:before { content: 'SQLite'; }
  100. /* additional languages in org.el's org-babel-load-languages alist */
  101. pre.src-forth:before { content: 'Forth'; }
  102. pre.src-io:before { content: 'IO'; }
  103. pre.src-J:before { content: 'J'; }
  104. pre.src-makefile:before { content: 'Makefile'; }
  105. pre.src-maxima:before { content: 'Maxima'; }
  106. pre.src-perl:before { content: 'Perl'; }
  107. pre.src-picolisp:before { content: 'Pico Lisp'; }
  108. pre.src-scala:before { content: 'Scala'; }
  109. pre.src-shell:before { content: 'Shell Script'; }
  110. pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  111. /* additional language identifiers per "defun org-babel-execute"
  112. in ob-*.el */
  113. pre.src-cpp:before { content: 'C++'; }
  114. pre.src-abc:before { content: 'ABC'; }
  115. pre.src-coq:before { content: 'Coq'; }
  116. pre.src-groovy:before { content: 'Groovy'; }
  117. /* additional language identifiers from org-babel-shell-names in
  118. ob-shell.el: ob-shell is the only babel language using a lambda to put
  119. the execution function name together. */
  120. pre.src-bash:before { content: 'bash'; }
  121. pre.src-csh:before { content: 'csh'; }
  122. pre.src-ash:before { content: 'ash'; }
  123. pre.src-dash:before { content: 'dash'; }
  124. pre.src-ksh:before { content: 'ksh'; }
  125. pre.src-mksh:before { content: 'mksh'; }
  126. pre.src-posh:before { content: 'posh'; }
  127. /* Additional Emacs modes also supported by the LaTeX listings package */
  128. pre.src-ada:before { content: 'Ada'; }
  129. pre.src-asm:before { content: 'Assembler'; }
  130. pre.src-caml:before { content: 'Caml'; }
  131. pre.src-delphi:before { content: 'Delphi'; }
  132. pre.src-html:before { content: 'HTML'; }
  133. pre.src-idl:before { content: 'IDL'; }
  134. pre.src-mercury:before { content: 'Mercury'; }
  135. pre.src-metapost:before { content: 'MetaPost'; }
  136. pre.src-modula-2:before { content: 'Modula-2'; }
  137. pre.src-pascal:before { content: 'Pascal'; }
  138. pre.src-ps:before { content: 'PostScript'; }
  139. pre.src-prolog:before { content: 'Prolog'; }
  140. pre.src-simula:before { content: 'Simula'; }
  141. pre.src-tcl:before { content: 'tcl'; }
  142. pre.src-tex:before { content: 'TeX'; }
  143. pre.src-plain-tex:before { content: 'Plain TeX'; }
  144. pre.src-verilog:before { content: 'Verilog'; }
  145. pre.src-vhdl:before { content: 'VHDL'; }
  146. pre.src-xml:before { content: 'XML'; }
  147. pre.src-nxml:before { content: 'XML'; }
  148. /* add a generic configuration mode; LaTeX export needs an additional
  149. (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  150. pre.src-conf:before { content: 'Configuration File'; }
  151. table { border-collapse:collapse; }
  152. caption.t-above { caption-side: top; }
  153. caption.t-bottom { caption-side: bottom; }
  154. td, th { vertical-align:top; }
  155. th.org-right { text-align: center; }
  156. th.org-left { text-align: center; }
  157. th.org-center { text-align: center; }
  158. td.org-right { text-align: right; }
  159. td.org-left { text-align: left; }
  160. td.org-center { text-align: center; }
  161. dt { font-weight: bold; }
  162. .footpara { display: inline; }
  163. .footdef { margin-bottom: 1em; }
  164. .figure { padding: 1em; }
  165. .figure p { text-align: center; }
  166. .inlinetask {
  167. padding: 10px;
  168. border: 2px solid gray;
  169. margin: 10px;
  170. background: #ffffcc;
  171. }
  172. #org-div-home-and-up
  173. { text-align: right; font-size: 70%; white-space: nowrap; }
  174. textarea { overflow-x: auto; }
  175. .linenr { font-size: smaller }
  176. .code-highlighted { background-color: #ffff00; }
  177. .org-info-js_info-navigation { border-style: none; }
  178. #org-info-js_console-label
  179. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  180. .org-info-js_search-highlight
  181. { background-color: #ffff00; color: #000000; font-weight: bold; }
  182. .org-svg { width: 90%; }
  183. /*]]>*/-->
  184. </style>
  185. <link rel="stylesheet" type="text/css" href="freedombone.css" />
  186. <script type="text/javascript">
  187. /*
  188. @licstart The following is the entire license notice for the
  189. JavaScript code in this tag.
  190. Copyright (C) 2012-2017 Free Software Foundation, Inc.
  191. The JavaScript code in this tag is free software: you can
  192. redistribute it and/or modify it under the terms of the GNU
  193. General Public License (GNU GPL) as published by the Free Software
  194. Foundation, either version 3 of the License, or (at your option)
  195. any later version. The code is distributed WITHOUT ANY WARRANTY;
  196. without even the implied warranty of MERCHANTABILITY or FITNESS
  197. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  198. As additional permission under GNU GPL version 3 section 7, you
  199. may distribute non-source (e.g., minimized or compacted) forms of
  200. that code without the copy of the GNU GPL normally required by
  201. section 4, provided you include this license notice and a URL
  202. through which recipients can access the Corresponding Source.
  203. @licend The above is the entire license notice
  204. for the JavaScript code in this tag.
  205. */
  206. <!--/*--><![CDATA[/*><!--*/
  207. function CodeHighlightOn(elem, id)
  208. {
  209. var target = document.getElementById(id);
  210. if(null != target) {
  211. elem.cacheClassElem = elem.className;
  212. elem.cacheClassTarget = target.className;
  213. target.className = "code-highlighted";
  214. elem.className = "code-highlighted";
  215. }
  216. }
  217. function CodeHighlightOff(elem, id)
  218. {
  219. var target = document.getElementById(id);
  220. if(elem.cacheClassElem)
  221. elem.className = elem.cacheClassElem;
  222. if(elem.cacheClassTarget)
  223. target.className = elem.cacheClassTarget;
  224. }
  225. /*]]>*///-->
  226. </script>
  227. </head>
  228. <body>
  229. <div id="preamble" class="status">
  230. <a name="top" id="top"></a>
  231. </div>
  232. <div id="content">
  233. <div class="figure">
  234. <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
  235. </p>
  236. </div>
  237. <div id="outline-container-org19c4251" class="outline-2">
  238. <h2 id="org19c4251">Mesh Network: Capabilities</h2>
  239. <div class="outline-text-2" id="text-org19c4251">
  240. <p>
  241. The mesh system has the following capabilities:
  242. </p>
  243. <ul class="org-ul">
  244. <li>Discovery of other users on the network</li>
  245. <li>Text based chat, one-to-one and in groups</li>
  246. <li>Voice chat (VoIP) and video calls</li>
  247. <li>Private and public sharing of files</li>
  248. <li>Blogging</li>
  249. <li>Collaborative editing of documents and presentations</li>
  250. <li>Social network stream. Follow/unfollow other peers</li>
  251. <li>No network administration required</li>
  252. <li>No servers</li>
  253. <li>Internet connection is optional</li>
  254. <li>Works from bootable USB drives or microSD drives</li>
  255. <li>Data is mesh routed between systems</li>
  256. <li>Private communications is end-to-end secured and forward secret</li>
  257. <li>Publicly shared data is <i>content addressable</i></li>
  258. </ul>
  259. <p>
  260. This system should be quite scalable. Both qTox and IPFS are based upon distributed hash tables (DHT) so that each peer does not need to store the full index of data for the entire network. Gossiping between SSB peers may be slower, but the <a href="https://en.wikipedia.org/wiki/Small-world_network">small world effect</a> will presumably still make for quite efficient delivery in a large network. Caching or pinning of IPFS data and its content addressability means that if a file or blog becomes popular then performance should improve as the number of downloads increases, which is the opposite of the client/server paradigm.
  261. </p>
  262. <div class="figure">
  263. <p><a href="fdl-1.3.txt" width="10%" height="2%" align="center"><img src="images/gfdl.png" alt="gfdl.png" width="10%" height="2%" align="center" /></a>
  264. </p>
  265. </div>
  266. </div>
  267. </div>
  268. </div>
  269. <div id="postamble" class="status">
  270. <style type="text/css">
  271. .back-to-top {
  272. position: fixed;
  273. bottom: 2em;
  274. right: 0px;
  275. text-decoration: none;
  276. color: #000000;
  277. background-color: rgba(235, 235, 235, 0.80);
  278. font-size: 12px;
  279. padding: 1em;
  280. display: none;
  281. }
  282. .back-to-top:hover {
  283. background-color: rgba(135, 135, 135, 0.50);
  284. }
  285. </style>
  286. <div class="back-to-top">
  287. <a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
  288. </div>
  289. </div>
  290. </body>
  291. </html>