lsd0007

LSD0007: GNUnet communicators
Log | Files | Refs

commit da057ab95248317969b0fa68bd53070c6d3f4bef
parent 0a57cf768b93005f089beb9f6277e5b0b31e06c8
Author: ch3 <ch3@mailbox.org>
Date:   Thu, 31 Jul 2025 22:37:47 +0200

libp2p: more details on different subsystems

Diffstat:
Mdraft-gnunet-communicators.xml | 37+++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+), 0 deletions(-)

diff --git a/draft-gnunet-communicators.xml b/draft-gnunet-communicators.xml @@ -1499,6 +1499,43 @@ content-length: LENGTH OF MESSAGE different wrappers and converters have to be implemented before being able to use them. </t> + <t> + Gnunet HELLO and libp2p multiaddress: The basic element to connect two + gnunet peers via their libp2p communicators would be to exchange their + libp2p multiaddress as part of a gnunet HELLO. Both represent a collection + of different, underlying protocols, the respective implementations + communicate over. Due to the similarity in representation, an adaption is + needed to either (a) properly embed the one in the other without parsing + issues, or (b) being able to directly parse both. + For a better understanding, here is an exemplary libp2p multiaddress: + <artwork anchor="libp2p multiaddress" name="" type="" align="left" alt=""><![CDATA[ +/ip4/198.51.100/tcp/1234/p2p/QmYyQSo1c1Ym7orWxLYvCrM2EmxFTANf8wXmmE7DWjhx5N + ]]></artwork> + ... and an exemplary printable (shortened and obfuscated) representaiton + of a gnunet HELLO: + <artwork anchor="gnunet HELLO" name="" type="" align="left" alt=""><![CDATA[ + gnunet://hello/HFXP<...>Y0/WDV0<...>WE20/1754<...>40?udp=%5Bfe80%3A%3Ad284%3A<...>3A2086&udp=%5B2003%3Acb%3A<...>%5D%3A2086<...>&tcp=%5Bfe80%3A%3A<...>%5D%3A2086&tcp=192.168.2.135%3A2086 + ]]></artwork> + For the specification of libp2p multiaddresses see https://github.com/libp2p/specs/tree/master/addressing + </t> + <t> + Peer IDs: While gnunet only uses a single cryptographic primitive (EdDSA + curve Ed25519) keys, libp2p has the option of using different keys. While + not necessary if the connection is only as a communicator below transport, + there might be the possibility of a direct compatibility at this level. + (Probably a conversion in encoding/representation has still to be done.) + The difference being that libp2p peer ids are stable, gnunet peer ids can + change. + For more see the libp2p spec on peer-ids: + https://github.com/libp2p/specs/blob/master/peer-ids/peer-ids.md + </t> + <t> + DHT: The Distributed Hash Tables of both networks are a bit different and + as such not directly compatible. libp2p implements Kademlia + (https://github.com/libp2p/specs/tree/master/kad-dht), whereas + gnunet implements R5N + (https://docs.gnunet.org/latest/users/subsystems.html#dht-distributed-hash-table). + </t> </section> <section anchor="security" numbered="true" toc="default"> <name>Security and Privacy Considerations</name>