Echt Dezentrales Netz/modules: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== The definition of the module interfaces ==
[[PageOutline(1,,inline)]]
= About the Module Comparison =


What if we played '''Lego with software?'''<br>
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.
We could check and exchange parts more easily to reach '''better performance, security and privacy'''.<br>
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.
What needs to be done?
For the purpose of filling these and more we will organize workshops inviting [[EDN/Promising_Projects | promising projects]].
The definition of the module interfaces.


= Rawlist of existing modules/patterns =


This page aims to identify modules of equal or similar purpose such as Distributed Hash Tables (DHT), Crypto Routing, "Consensus"  of [[Echt_Dezentrales_Netz/en#Recherche |these]] p2p-projects.
All of the [[EDN:Recherche | 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.<br>
Please define or link their interface in order to prepare the module specific <NAME> congress meetings at the 32C3.
Some functionalities/patterns are:
For that reason the modules` developer(s) shall write to the [mailto:edn@schleuder.notraces.net edn-list] declaring their nick, project and module.
You get the lists public key by sending an empty message [mailto:edn-sendkey@schleuder.notraces.net to].




The interface can be defined by:
* Decentralized lookup and naming (i.e GNS vs. DNS)
* possible methods plus explanation of its usage.
* Distributed Hashtable (DHT)
* calls
* Hashtable routing
* signature/arguments
* Onion routing vs. authority free onion routing
* results (types, exceptions)
* NAT traversal
* optional protocol of an order of function calls
* 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 [http://www.researchgate.net/publication/221034643_A_Pattern_Language_for_Overlay_Networks_in_Peer-to-Peer_Systems "A Pattern Language for Overlay Networks in Peer-to-Peer Systems"]
 
= Usage of Patterns in I2P, COR, TOR and GNUnet =
 
 
{| class="wikitable"
!
! 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 =
 
<pre>
||= 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 ||
</pre>
 
 
= Many-To-Many Application Layer =
 
== File Sharing ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUNET =||= fs =|| anonymous censorship-resistant file sharing || [https://gnunet.org/svn/gnunet/src/include/gnunet_fs_service.h API] || [https://gnunet.org/svn/gnunet/src/fs/ Source] || [https://gnunet.org/file-sharing-service Doc] || grothoff ||
 
=== File Synchronisation ===
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= Ind.ie =||= Pulse =|| secure and distributed file synchronisation engine || || [https://source.ind.ie/project/pulse Source] || || aral ||
 
=== Blockchain ===
 
== Social Networking ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= secushare =||= social =|| social networking abstraction || [https://gnunet.org/svn/gnunet/src/include/gnunet_social_service.h API] || [https://gnunet.org/svn/gnunet/src/social/ Source] || [https://gnunet.org/design-social-messaging-system Paper], [https://gnunet.org/internetistschuld Video] || tg & lynX ||
||= secushare =||= psyc =|| extensible rich messaging protocol || [https://gnunet.org/svn/gnunet/src/include/gnunet_psyc_service.h API] || [https://gnunet.org/svn/gnunet/src/psyc/ Source] || [https://gnunet.org/design-social-messaging-system Paper], [http://youbroketheinternet.org/#30c3scalability Video] || lynX ||
||= secushare =||= psycstore =|| distributed channel state storage || [https://gnunet.org/svn/gnunet/src/include/gnunet_psycstore_service.h API] || [https://gnunet.org/svn/gnunet/src/psycstore/ Source] || [https://gnunet.org/design-social-messaging-system Paper], [http://youbroketheinternet.org/#30c3scalability Video] || tg ||
----
 
= Scalability Layer =
 
== Content Distribution ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= secushare =||= multicast =|| tree distribution channels + pubsub || [https://gnunet.org/svn/gnunet/src/include/gnunet_multicast_service.h API] || [https://gnunet.org/svn/gnunet/src/multicast/ Source] || [https://gnunet.org/design-social-messaging-system 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 || [https://gnunet.org/svn/gnunet/src/include/gnunet_gns_service.h API] || [https://gnunet.org/svn/gnunet/src/gns/ Source] || [https://gnunet.org/gns-implementation Doc], [https://gnunet.org/internetistschuld Video] || grothoff ||
 
== Consensus Service ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= consensus =|| … || [https://gnunet.org/svn/gnunet/src/include/gnunet_consensus_service.h API] || [https://gnunet.org/svn/gnunet/src/consensus/ 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 || [https://gnunet.org/svn/gnunet/src/include/gnunet_vpn_service.h API] || [https://gnunet.org/svn/gnunet/src/vpn/ Source] || [https://gnunet.org/gnunet-pt Manual] || grothoff ||
 
== NAT traversal ==
 
== Payment ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= TALER =||= TALER =|| taxable anonymous micropayment || ? || ? || [http://taler.net Website] || grothoff ||
 
== Telephony ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= conversation =|| telephony system over CADET and GNS || [https://gnunet.org/svn/gnunet/src/include/gnunet_conversation_service.h API] || [https://gnunet.org/svn/gnunet/src/conversation/ Source] || [https://gnunet.org/book/export/html/2244 Manual], [http://youbroketheinternet.org/#30c3apps Video] || bart.polot ||
----
 
= Routing =
 
== Anonymizing Circuits ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= brahms =|| authority-free onion routing || … || … || [https://gnunet.org/brahms Paper] || julius.bünger ||
 
== Distributed Hashtable ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= DHT =|| distributed hash table, key-value lookup || [https://gnunet.org/svn/gnunet/src/include/gnunet_dht_service.h API] || [https://gnunet.org/svn/gnunet/src/dht/ Source] || [https://gnunet.org/developer-handbook-dht Doc] || grothoff ||
||= SAFE Network =||= Routing =|| a secured DHT, based on a Kademlia-like implementation || [http://maidsafe.net/routing/master/routing/index.html API] || [https://github.com/maidsafe/routing Source] || [http://maidsafe.net/Whitepapers/pdf/MaidSafeDistributedHashTable.pdf Technical paper] || [https://forum.safenetwork.io Forum] ||
 
== Mesh Routing, End-to-End Circuits ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= CADET =|| confidential ad-hoc decentralised end-to-end transport || [https://gnunet.org/svn/gnunet/src/include/gnunet_cadet_service.h API] || [https://gnunet.org/svn/gnunet/src/cadet/ Source] || [https://gnunet.org/cadet-subsystem Doc], [http://youbroketheinternet.org/#30c3meshnet 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 || [https://gnunet.org/svn/gnunet/src/include/gnunet_transport_service.h API] || [https://gnunet.org/svn/gnunet/src/transport/ Source] || [https://gnunet.org/transport-service Doc] || grothoff ||
||= GNUnet =||= ats =|| automatic transport selection || [https://gnunet.org/svn/gnunet/src/include/gnunet_ats_service.h API] || [https://gnunet.org/svn/gnunet/src/ats/ Source] || [https://gnunet.org/ats-subsystem Doc] || grothoff ||
||= SAFE Network =||= Crust =|| reliable P2P network connections in Rust with NAT traversal || [http://maidsafe.net/crust/master/crust/index.html API] || [https://github.com/maidsafe/crust Source] || [http://maidsafe.net/Whitepapers/pdf/DHTbasedNATTraversal.pdf Technical paper] || [https://forum.safenetwork.io Forum] ||
 
== Link-Layer Crypto ==
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= core =|| encryption layer over transport links || [https://gnunet.org/svn/gnunet/src/include/gnunet_core_service.h API] || [https://gnunet.org/svn/gnunet/src/core/ Source] || [https://gnunet.org/gnunet-core-subsystem Doc] || grothoff ||
----
 
= Operating System, Libraries =
 
||= Project =||= Module =||= Description =||= API =||= Source =||= Docs =||= Contact =||
||= GNUnet =||= util =|| library functions such as logging and configuration || [https://gnunet.org/svn/gnunet/src/include/gnunet_util.h API] || [https://gnunet.org/svn/gnunet/src/util/ Source] || [https://gnunet.org/libgnunetutil Doc] || grothoff ||
----
 
[[Kategorie:EDN]]

Aktuelle Version vom 8. Mai 2016, 19:36 Uhr

PageOutline(1,,inline)

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 ||