Difference between revisions of "Mesh/Distributed Services"

m
adds details on hosting services external to the mesh network (e.g. digital ocean)
m (adds details on hosting services external to the mesh network (e.g. digital ocean))
Line 6: Line 6:
* Security
* Security
* Integration into a user account distributed database with master-master replication and low latency (ex. [http://www.datastax.com/resources/whitepapers/benchmarking-top-nosql-databases Cassandra]).
* Integration into a user account distributed database with master-master replication and low latency (ex. [http://www.datastax.com/resources/whitepapers/benchmarking-top-nosql-databases Cassandra]).
== Externally Hosted ==
Hosts that are not directly connected to a SudoMesh node can make themselves available on the SudoMesh network by establishing a VPN connection into the network via the Exit node (exit.sudomesh.org). This requires use of the [https://github.com/wlanslovenija/tunneldigger tunneldigger] client. As of Ubuntu 14.4, the required kernel modules supporting [https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol L2TP] are not included, so you must build a custom kernel that includes the necessary modules, or use the Debian distribution instead. Plans are in place to eventually use a more efficient tunneling method using [https://github.com/sudomesh/foutun Foo Over UDP], which will eliminate this L2TP complication.
Your host will need to use a static IP assigned from the mesh network. Support for obtaining only a static IP assignment will need to be added to the [https://github.com/sudomesh/makenode makenode] utility to accomplish this.


== Active Services ==
== Active Services ==
The service browser is unfinished, but as we're working on building out the network and setting up services on the network, we can document what we currently have running here for now:
The service browser is unfinished, but as we're working on building out the network and setting up services on the network, we can document what we currently have running here for now:


== Architecture: Centralized & decentralized services ==
== Architecture: Centralized & decentralized services ==
A central philosophical and practical consideration is how services will be provided. Do we fundamentally want the mesh to be a centralized entity which offers certain services to all members? Or a platform on which individual members can offer services? Or a hybrid?
A central philosophical and practical consideration is how services will be provided. Do we fundamentally want the mesh to be a centralized entity which offers certain services to all members? Or a platform on which individual members can offer services? Or a hybrid?


Line 17: Line 25:
Are there certain kinds of sharing we want to discourage or prohibit, and if so, what will be the social and technical means for enforcement? How will we respond if people start openly sharing copyrighted music and movies? Proprietary software? Child porn? It's worthwhile to think through these scenarios, as a successful network that lacks any kind of governance would become an attractive resource for those whose illegal activities cannot be pursued in the open on the Internet. (An example of this dynamic: [http://www.seattletimes.com/seattle-news/crime/state-supreme-court-rules-against-backpagecom-in-sex-trafficking-suit/ State Supreme Court rules against Backpage.com in sex-trafficking suit], Seattle Times, Sept. 2015)
Are there certain kinds of sharing we want to discourage or prohibit, and if so, what will be the social and technical means for enforcement? How will we respond if people start openly sharing copyrighted music and movies? Proprietary software? Child porn? It's worthwhile to think through these scenarios, as a successful network that lacks any kind of governance would become an attractive resource for those whose illegal activities cannot be pursued in the open on the Internet. (An example of this dynamic: [http://www.seattletimes.com/seattle-news/crime/state-supreme-court-rules-against-backpagecom-in-sex-trafficking-suit/ State Supreme Court rules against Backpage.com in sex-trafficking suit], Seattle Times, Sept. 2015)


==Storage / File Systems==
== Storage / File Systems ==


There are several options for a distributed file system and each have there advantages and disadvantages. The distributed file system can be used to offer file storage or reduce latency across the network.  
There are several options for a distributed file system and each have there advantages and disadvantages. The distributed file system can be used to offer file storage or reduce latency across the network.  
Line 51: Line 59:
[http://porky.linuxjournal.com:8080/LJ/218/11250.html A Quick Introduction to Modern Filesystems]
[http://porky.linuxjournal.com:8080/LJ/218/11250.html A Quick Introduction to Modern Filesystems]


==Databases and Servers==
== Databases and Servers ==


These are decentralized databases and servers that could ultimately be optimized to store data nearest to where people access it. A significant factors with mesh networks, that as "size and complexity continues to grow, mesh networks that contain multiple hops become increasingly vulnerable to problems such as bandwidth degradation, radio interference and network latency.<ref>[http://www.strixsystems.com/products/datasheets/strixwhitepaper_multihop.pdf Solving the Wireless Mesh Multi-Hop Dilemma]</ref>" There are several other methods of improving network latency, but all means should be tested and implemented to improve services.  
These are decentralized databases and servers that could ultimately be optimized to store data nearest to where people access it. A significant factors with mesh networks, that as "size and complexity continues to grow, mesh networks that contain multiple hops become increasingly vulnerable to problems such as bandwidth degradation, radio interference and network latency.<ref>[http://www.strixsystems.com/products/datasheets/strixwhitepaper_multihop.pdf Solving the Wireless Mesh Multi-Hop Dilemma]</ref>" There are several other methods of improving network latency, but all means should be tested and implemented to improve services.  
Line 65: Line 73:
* [https://tahoe-lafs.org/trac/tahoe-lafs tahoe-lafs] - a decentralized database.
* [https://tahoe-lafs.org/trac/tahoe-lafs tahoe-lafs] - a decentralized database.


 
== Communications ==
==Communications==


*[http://radicale.org/ radicale] - a CalDAV (calendar) and CardDAV (contacts) server.  
*[http://radicale.org/ radicale] - a CalDAV (calendar) and CardDAV (contacts) server.  
Line 82: Line 89:
* [http://www.frontlinesms.com/ Frontline SMS] - a free, open-source desktop application that allows you to send texts.
* [http://www.frontlinesms.com/ Frontline SMS] - a free, open-source desktop application that allows you to send texts.


==Mapping==
== Mapping ==


* [http://nodewatcher.readthedocs.org/en/latest/installation.html NodeWatcher] -  an open source network planning, deployment, monitoring and maintanance platform.  
* [http://nodewatcher.readthedocs.org/en/latest/installation.html NodeWatcher] -  an open source network planning, deployment, monitoring and maintanance platform.  
Line 94: Line 101:


== Protocols ==
== Protocols ==
* [https://tent.io/ Tent] - a method to store all your data in one place that you control. Instead of your digital life being spread across many services.
* [https://tent.io/ Tent] - a method to store all your data in one place that you control. Instead of your digital life being spread across many services.
* [https://www.docker.io/ Docker] - an open-source project to easily create lightweight, portable, self-sufficient containers from any application.
* [https://www.docker.io/ Docker] - an open-source project to easily create lightweight, portable, self-sufficient containers from any application.
Line 100: Line 108:


== Social Platforms ==
== Social Platforms ==
* [https://joindiaspora.com/ Diaspora] - a decentralized social network
* [https://joindiaspora.com/ Diaspora] - a decentralized social network
* [https://identi.ca/ Identi.ca] - a high-performance Open Source social engine.  
* [https://identi.ca/ Identi.ca] - a high-performance Open Source social engine.  
Line 105: Line 114:
* [http://twister.net.co/ Twister] - a decentralized, peer to peer microblogging platform
* [http://twister.net.co/ Twister] - a decentralized, peer to peer microblogging platform


==Utilities and Misc.==
== Utilities and Misc ==
 
* [https://sudoroom.org/wiki/Mesh/Firmware/Zeroconf Avahi] - a mDNS responder that allows you to broadcast services
* [https://sudoroom.org/wiki/Mesh/Firmware/Zeroconf Avahi] - a mDNS responder that allows you to broadcast services
* [http://localwiki.org/ Local Wiki] - create a local wikipedia (eg; http://oaklandwiki.org)
* [http://localwiki.org/ Local Wiki] - create a local wikipedia (eg; http://oaklandwiki.org)
128

edits