Echt Dezentrales Netz/modules
About the Module Comparison
On a sunny day at the CCC Camp 2015 Paige (Maidsafe), Alex (Ethereum), Carlo (Secushare) and Christian (GNUnet) decided to help making the modules of their projects comparable. What these projects have in common: They aim to build a better-<mouse-over: more private and secure> internet. The following tables will help identifying the multiple implementations of similar concepts and jobs and to synchronize vocabulary as a basis for further analysis and testing. For the purpose of filling these and more we will organize workshops inviting promising projects.
Rawlist of existing modules/patterns
All of the projects regarded have modules of similar functionality implemented or plan to do so as these functionalities have emerged to realize certain criteria of ours and have services functioning in a p2p-archtitecture.
Some functionalities/patterns are:
* Decentralized lookup and naming (i.e GNS vs. DNS) * Distributed Hashtable (DHT) * Hashtable routing * Onion routing vs. authority free onion routing * NAT traversal * Link-Layer Crypto: encryption layer over transport links * Automatic transport selection * Pluggable interfaces for UDP, TCP, HTTPS, raw wi-fi, sneakernet * Mesh Routing, End-to-End Circuits * Hidden Services * Virtual Private Networking VPN * User interface * Messaging protocol * Filesharing * File synchronisation * Blockchain * Distributed channel state storage * Social networking abstraction * Distributed Social Graph implementation * Multicast: tree distribution channels + pubsub * Byzantine consensus * Cryptographic payments * Gossip * More in "A Pattern Language for Overlay Networks in Peer-to-Peer Systems"
Usage of Patterns in I2P, COR, TOR and GNUnet
I2P | COR | Tor | GNUNet | ||
---|---|---|---|---|---|
Decentralized lookup and naming | x | - | x | ||
Distributed Hashtable | x (i2p-) | - | x | x | |
Hashtable routing | x | ||||
Onion routing vs. authority free onion routing | x | - | x | - | |
NAT traversal | x | - | (for HS) | x | |
Link-Layer Crypto: encryption layer over transport links | x | - | x | x | |
Automatic transport selection | x | - | x wizard guided transport selection | x | |
Pluggable interfaces for UDP, TCP.... | x | x | |||
Mesh Routing, End-to-End Circuits | - | x | - | x | |
Hidden Services | x | - | x | - | |
Virtual Private Networking VPN | x (tunnel ip) | - | x | ||
User interface | x webinterface | - | - | x | |
Messaging protocol | ? proxy for irc | - | - | x psyc | |
Filesharing | x | - | - | x | |
File synchronisation | - | - | - | - | |
Blockchain | |||||
Distributed channel state storage | |||||
Social networking abstraction | - | x with secushare | |||
Distributed Social Graph implementation | No | ||||
Multicast: tree distribution channels + pubsub | in progress | ||||
Byzantine consensus | - | - | x (directory services do) | x | |
Cryptographic payments | x | ||||
Gossip | - | - | x |
User Interface & Usability
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= Ind.ie =||= Cocoa =|| Messaging Client Heartbeat Frontend || || [https://source.ind.ie/project/heartbeat-cocoa/tree/master Source] || ||aral ||
…
Many-To-Many Application Layer
File Sharing
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUNET =||= fs =|| anonymous censorship-resistant file sharing || API || Source || Doc || grothoff ||
File Synchronisation
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= Ind.ie =||= Pulse =|| secure and distributed file synchronisation engine || || Source || || aral ||
Blockchain
Social Networking
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= secushare =||= social =|| social networking abstraction || API || Source || Paper, Video || tg & lynX || ||= secushare =||= psyc =|| extensible rich messaging protocol || API || Source || Paper, Video || lynX || ||= secushare =||= psycstore =|| distributed channel state storage || API || Source || Paper, Video || tg ||
Scalability Layer
Content Distribution
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= secushare =||= multicast =|| tree distribution channels + pubsub || API || Source || Paper || tg ||
Look-Up & Naming
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= GNS =|| decentralized database that enables users to securely resolve names to values || API || Source || Doc, Video || grothoff ||
Consensus Service
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= consensus =|| … || API || Source || … || florian.dold ||
One-to-One Application Layer
Hidden Services / VPN
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= VPN =|| hidden services and virtual private networking || API || Source || Manual || grothoff ||
NAT traversal
Payment
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= TALER =||= TALER =|| taxable anonymous micropayment || ? || ? || Website || grothoff ||
Telephony
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= conversation =|| telephony system over CADET and GNS || API || Source || Manual, Video || bart.polot ||
Routing
Anonymizing Circuits
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= brahms =|| authority-free onion routing || … || … || Paper || julius.bünger ||
Distributed Hashtable
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= DHT =|| distributed hash table, key-value lookup || API || Source || Doc || grothoff || ||= SAFE Network =||= Routing =|| a secured DHT, based on a Kademlia-like implementation || API || Source || Technical paper || Forum ||
Mesh Routing, End-to-End Circuits
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= CADET =|| confidential ad-hoc decentralised end-to-end transport || API || Source || Doc, Video || bart.polot ||
Link-Layer
Transports
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= transport =|| pluggable interfaces for UDP, TCP, HTTPS, raw wi-fi, sneakernet || API || Source || Doc || grothoff || ||= GNUnet =||= ats =|| automatic transport selection || API || Source || Doc || grothoff || ||= SAFE Network =||= Crust =|| reliable P2P network connections in Rust with NAT traversal || API || Source || Technical paper || Forum ||
Link-Layer Crypto
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= core =|| encryption layer over transport links || API || Source || Doc || grothoff ||
Operating System, Libraries
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =|| ||= GNUnet =||= util =|| library functions such as logging and configuration || API || Source || Doc || grothoff ||