gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

commit 13a98368bf21a3fd7eb0ab1a95ace7875ae45004
parent 550e14a511480db0eddb7aa924148c0625fc3c79
Author: Julius Bünger <buenger@mytum.de>
Date:   Mon, 26 Feb 2024 13:12:46 +0100

cong: add missing cong.rst

Diffstat:
Adevelopers/apis/cong.rst | 193+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 193 insertions(+), 0 deletions(-)

diff --git a/developers/apis/cong.rst b/developers/apis/cong.rst @@ -0,0 +1,193 @@ +.. _CONG-Subsystem-Dev: + +.. index:: + double: CONG; subsystem + +CONG +==== + +CONG (COre Next Generation) is the name of the project redesigns the CORE +service. Here we document the design decisions and parts that are about to +change. + +.. + TODO Overview? Oder gibt's ein Inhaltsverzeichnis? + +.. _Peer-IDs: + +Peer IDs +-------- + +Peer ids stop to be unique for the lifetime of a peer, but change each time a +peer's addresses change. This includes gaining or losing an address. + +.. + TODO ^^^ gaining/losing makes sense? + +It is important to note that this design choice only increases the cost of +network location tracking and does not fully prevent it. For this feature onion +routing on top of CADET is envisioned. + +At this point it seems like one has to weigh privacy versus performance when it +comes to this design decision. + +.. _Reasoning: + +Reasoning +^^^^^^^^^ + +.. + - why this decision (and not others?) + - (scenarios to understand whether it makes sense) + +This change was introduced in order to stop tracking of more mobile peers. +For example a more mobile peer (laptop) that logs into the network at different +places can be easily tracked by everyone just by recording the different +addresses that are tied to that peer id over time. + +.. + TODO how much info can be gained by that? all an observing peer sees is + + +.. _Implications: + +Implications +^^^^^^^^^^^^ + +Here we spell out the implications for different parts of the framework. This +should help get a grasp of the implications of the change. + +.. _DHT: + +DHT +""" + +The DHT uses the peer id such that it determines which buckets a peer is +responsible for. So each time the peer id changes, the peer becomes responsible +for different data. + + +.. _Scope-of-Peer-ID-for-higher-Layers: + +Scope of Peer ID for higher Layers +"""""""""""""""""""""""""""""""""" + +When peer ids stop to be unique over time, the framework is in lack of a +globally unique identifier. Higher layers may rely (have reliede) on the +uniqueness of the ids. This means gnunet has to use other means for this +purpose. The Reconnects_ section below is concerned with the specific impact on +reconnects for different higher-layer services. + + +.. _Reconnects: + +Reconnects +"""""""""" + +When addresses (and with those the peer id) of a peer change, all core +connections need to be torn down and with them all higher-layer connections. +This affects the layers above CADET as follows: + +TODO lookup rst lists! + + - Revocation: Is not really affected as it is only connected to direct CADET + neighbors and makes no use of CADET's routing, only of its flow and + congestion control. + - File sharing: Only the non-anonymous filesharing uses CADET connections. + This is not significantly affected by a reconnect as it only looks up peer + and port in the DHT, so in the meanwhile it's looking for other peers. TODO + this is very unclear to me! + - Messenging: This is not affected too badly - for a reconnection with this + service GNS lookups are required. + - Conversation: The call would be interrupted until the new peer id of the + other has been found via GNS. + +TODO: question: is gns needed for a reconnect? couldn't the peer with the new +id simply 'call back' the other peer? + +.. + - disconnects -> cadet + - revocation (directly connected neighbor, don't use routing, only + congestion/flow control) + - file sharing (non-anonymous): lookup peer and cadet port in dht + (continue looking for other peers meanwhile) + - messenging/messenger: not too bad, continue the lookup of the peer + (gns) + - conversation + + +.. _Details-on-how: + +Details on how +^^^^^^^^^^^^^^ + +.. + - adress bundle (transport communicators implement decision?) + - how adresses are generated: + - sort, hash, derive peer id from hash + + +.. _Open-questions: + +Open questions +^^^^^^^^^^^^^^ + + +.. _Core's-Ownership-of-Peer-IDs: + +Core's Ownership of Peer IDs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Implications +^^^^^^^^^^^^ + +.. _Transport: + +Transport +""""""""" + +.. + - transport creates and signs hello (w peer id) + +.. + Notes from the meeting: + - higher-layer roll-over + - problem in practice 'phone call not interrupted by change of + location' + - solved by gns entries? and re-connect? + - cadet search for peer id - search in dht and via gns + - caching-problem for gns + - no signaling for roll-over + - estimated reconnect within 15 minutes + - change of address/peerid results in unclear state (down? lost + connection, ....?) + - cadet needs to regularily check gns entries + - how signal the change of addresses? + - do we signal trear-down? + - scenario address change in internet cafe? + - choice between privacy and connectivity + - sense of changing ids for cadet? + - -> rendez-vous peer (more stable) + - tracking via gns? + - only for people who are connected/known (tracking might be + ok for this) + - requires pir for gns + - tracking impossible/hard for others + + +.. _Protocol_002dVersioning: + +Protocol-Versioning +------------------- + +TODO + +.. _libp2p-Underlay: + +libp2p Underlay +--------------- + +TODO + +.. + TODO Look at the project milestones to check coverage