lsd0004

LSD0004: R5N Distributed Hash Table
Log | Files | Refs

commit 78a4ca8c314f0668d10c9d24a066b8980bc6e9c7
parent 13463e8b2774ddc4f28ab75e6332c0c77c75a9bd
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu, 11 Jul 2024 22:37:30 +0200

add NSE reference

Diffstat:
Mdraft-schanzen-r5n.xml | 38+++++++++++++++++++++++++++-----------
1 file changed, 27 insertions(+), 11 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml @@ -330,7 +330,7 @@ and where thus its route discovery feature provides utility to higher-level applications. As a result, both the features and the security properties of RELOAD and R<sup>5</sup>N are different, except in that both allow - storing and retrieving key-value pairs. + storing and retrieving key-value pairs. <!-- 2023/08/20 CG: I believe the above text addresses the comments from MSC below ... @@ -469,14 +469,14 @@ R5N | v v -------------+------------------------------------ Underlay Interface | +--------+ +--------+ +----------+ | |GNUnet | |IP | | QUIC | -Connectivity | |Underlay| |Underlay| | Underlay | ... +Connectivity | |Underlay| |Underlay| | Underlay | ... | |Link | |Link | | Link | | +--------+ +--------+ +----------+ ]]> </artwork> </figure> </section> - + <section anchor="underlay" numbered="true" toc="default"> <name>Underlay</name> <t> @@ -496,7 +496,7 @@ Connectivity | |Underlay| |Underlay| | Underlay | ... 1) The current API is always fire+forget, it doesn't allow for flow control. I think we need to add that, possibly for sending and receiving. - IDK. + IDK. CG: I think we should not have flow control for the DHT; overkill, should instead simply define transmission as unreliable. @@ -518,7 +518,7 @@ Connectivity | |Underlay| |Underlay| | Underlay | ... see how we can offer even the most minimal protections against peer impersonation attacks. WDYT? - CG: Yes, I think authentication should be mandatory, but not + CG: Yes, I think authentication should be mandatory, but not any _specific_ type of encryption. Security considerations? Prerequisites? @@ -579,7 +579,8 @@ Connectivity | |Underlay| |Underlay| | Underlay | ... A call that provides an estimate of the network size. The result, <tt>L2NSE</tt>, must be the base-2 logarithm of the estimated number of peers in the network. It is used by the routing algorithm. - If the underlay does not support a protocol for network size estimation (such as cite paper NSE) the value + If the underlay does not support a protocol for network size estimation + (such as <xref target="NSE"/>) the value is assumed to be provided as a configuration parameter to the implementation. </dd> </dl> @@ -662,7 +663,7 @@ Connectivity | |Underlay| |Underlay| | Underlay | ... Peers added to the routing table <tt>SHOULD</tt> be signalled to the underlay as important connections using a <tt>HOLD</tt> call. Similarly when a disconnect is indicated by the underlay through - a <tt>PEER_DISCONNECTED</tt> signal, the peer + a <tt>PEER_DISCONNECTED</tt> signal, the peer <bcp14>MUST</bcp14> be removed from the routing table. <!-- FIXME: are we supposed to call DROP if we called HOLD if a peer disconnects!?? --> </t> @@ -750,7 +751,7 @@ Connectivity | |Underlay| |Underlay| | Underlay | ... </t> <t> To discover peers for its routing table, a peer will initiate <tt>GetMessage</tt> requests - (see <xref target="p2p_get"/>) asking for blocks of type <tt>HELLO</tt> using its own peer identity + (see <xref target="p2p_get"/>) asking for blocks of type <tt>HELLO</tt> using its own peer identity in the <tt>QUERY_HASH</tt> field of the message. The <tt>PEER_BF</tt> is initialized and set using the peers own peer identity as well as the identities of all currently connected <em>neighbors</em>. <!-- note: we mean the identities here! FIX with terminology... --> @@ -1628,7 +1629,7 @@ BEGIN flag ist set, the message <bcp14>SHOULD</bcp14> be stored locally in the block storage if possible. The implementation <tt>MAY</tt> choose not store the block if external factors or configurations - prevent this, such as limited (alottted) disk space. + prevent this, such as limited (alottted) disk space. </li> <li> If the <tt>BTYPE</tt> of the message indicates a <tt>HELLO</tt> block, the @@ -1858,7 +1859,7 @@ BEGIN the peer <bcp14>SHOULD</bcp14> respond with the closest block (smallest value of <tt>GetDistance(QUERY_HASH, BLOCK_KEY)</tt>) it can find that is not filtered by the <tt>RESULT_BF</tt>. - Otherwise, the peer <bcp14>MUST</bcp14> respond with the block + Otherwise, the peer <bcp14>MUST</bcp14> respond with the block with a <tt>BLOCK_KEY</tt> that matches the <tt>QUERY_HASH</tt> exactly and that is not filtered by the <tt>RESULT_BF</tt>. </li> @@ -2863,6 +2864,21 @@ Type | Name | References | Description <date year="2011"/> </front> </reference> + <reference anchor="NSE" target="https://doi.org/10.1007/978-3-642-30045-5_23"> + <front> + <title>Efficient and Secure Decentralized Network Size Estimation</title> + <author initials="N. S." surname="Evans" fullname="Nathan S. Evans"> + <organization>Technische Universität München</organization> + </author> + <author initials="B." surname="Polot" fullname="Bartlomiej Polot"> + <organization>Technische Universität München</organization> + </author> + <author initials="C." surname="Grothoff" fullname="Christian Grothoff"> + <organization>Technische Universität München</organization> + </author> + <date year="2012"/> + </front> + </reference> <reference anchor="Kademlia" target="http://css.csail.mit.edu/6.824/2014/papers/kademlia.pdf"> <front> <title>Kademlia: A peer-to-peer information system based on the xor metric.</title> @@ -3122,7 +3138,7 @@ Type | Name | References | Description <figure> <artwork type="abnf"><![CDATA[ hello-URL = "gnunet://hello[:version]/" meta [ "?" addrs ] -version = *(DIGIT) +version = *(DIGIT) meta = pid "/" sig "/" exp pid = *bchar sig = *bchar