gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0004] branch master updated: v02


From: gnunet
Subject: [lsd0004] branch master updated: v02
Date: Thu, 17 Aug 2023 14:24:35 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository lsd0004.

The following commit(s) were added to refs/heads/master by this push:
     new 90d0088  v02
90d0088 is described below

commit 90d00889a73ddf01032e087a563ed33b88882ebd
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Thu Aug 17 14:24:32 2023 +0200

    v02
---
 draft-schanzen-r5n.xml | 98 +++++++++++++++++++++++++++++---------------------
 1 file changed, 58 insertions(+), 40 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index e7a11a8..e627b80 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -29,12 +29,12 @@
 <?rfc sortrefs="yes" ?>
 <?rfc compact="yes" ?>
 <?rfc subcompact="no" ?>
-<rfc xmlns:xi="http://www.w3.org/2001/XInclude"; category="info" 
docName="draft-schanzen-r5n-00" ipr="trust200902" obsoletes="" updates="" 
submissionType="IETF" xml:lang="en" version="3">
+<rfc xmlns:xi="http://www.w3.org/2001/XInclude"; category="info" 
docName="draft-schanzen-r5n-02" ipr="trust200902" obsoletes="" updates="" 
submissionType="IETF" xml:lang="en" version="3">
   <front>
     <title abbrev="The R5N Distributed Hash Table">
       The R5N Distributed Hash Table
     </title>
-    <seriesInfo name="Internet-Draft" value="draft-schanzen-r5n-00"/>
+    <seriesInfo name="Internet-Draft" value="draft-schanzen-r5n-02"/>
     <author fullname="Martin Schanzenbach" initials="M." 
surname="Schanzenbach">
       <organization>Fraunhofer AISEC</organization>
       <address>
@@ -131,16 +131,16 @@
         <xref target="R5N"/>.
       </t>
       <t>
-        DHTs are a key data structure for the construction of decentralized 
applications.
-        and they generally provide a robust and efficient means to distribute 
the
+        DHTs are a key data structure for the construction of decentralized 
applications
+        and generally provide a robust and efficient means to distribute the
         storage and retrieval of key-value pairs.
       </t>
       <t>
-        The core idea behind R<sup>5</sup>N is to combine an initial 
randomized routing
-        algorithm with an efficient, classical closest-peer algorithm.
+        The core idea behind R<sup>5</sup>N is to combine a randomized routing
+        algorithm with an efficient, deterministic closest-peer algorithm.
         This allows us to construct an algorithm that is able to escape and 
circumvent
-        restricted route environments while at the same time allow for O(log 
n) routing
-        complexity.
+        restricted route environments while at the same time allow for a 
logarithmically bounded
+        routing complexity.
       </t>
       <t>
         R<sup>5</sup>N also includes advanced features like tracing paths 
messages take
@@ -176,11 +176,12 @@
          this document is "r5n+ip+tcp", which refers to a standard TCP/IP 
socket
          connection. The "hier"-part of the URI must provide a suitable
          address for the given addressing scheme.
-         The following is a non-normative example of address strings:
+         The following are non-normative examples of address strings:
         </t>
         <figure title="Example Address URIs.">
           <artwork name="" type="" align="left" alt=""><![CDATA[
 r5n+ip+udp://1.2.3.4:6789/
+r5n+quic://example.com/
 gnunet+tcp://12.3.4.5/
 ]]></artwork>
         </figure>
@@ -189,7 +190,7 @@ gnunet+tcp://12.3.4.5/
       <dd>
         Applications are components which directly use the DHT overlay
         interfaces. Possible applications include the GNU Name System
-        <xref target="I-D.schanzen-gns"/> and the CADET transport system
+        <xref target="I-D.schanzen-gns"/> and the GNUnet CADET transport system
         <xref target="cadet"/>.
       </dd>
       <dt>Application API</dt>
@@ -201,8 +202,9 @@ gnunet+tcp://12.3.4.5/
       <dt>Block</dt>
       <dd>
         Variable-size unit of payload stored in the DHT
-  under a <tt>Key</tt>. Commonly also called a &quot;value&quot; when talking
-  about a DHT as a &quot;key-value store&quot;.
+        under a <tt>Key</tt>.
+        In the context of &quot;key-value stores&quot; this
+        refers to &quot;value&quot; stored under a key.
       </dd>
       <dt>Block Storage</dt>
       <dd>
@@ -217,9 +219,16 @@ gnunet+tcp://12.3.4.5/
         Block-Types are either private or registered in the GANA block type 
registry (see
         <xref target="gana_block_type"/>).
       </dd>
+      <dt>Bootstrapping</dt>
+      <dd>
+        Bootstrapping is the initial process of establishing a connection to 
the peer-to-peer
+        network.
+        This initially requires an initial, non-empty set of reachable peers 
and corresponding
+        addresses supported by the implementation to connect to.
+      </dd>
       <dt>Initiator</dt>
       <dd>
-        The peer that initially creates and sends a message (<xref 
target="p2p_hello"/>,
+        The peer that initially creates and sends a DHT protocol message 
(<xref target="p2p_hello"/>,
         <xref target="p2p_put"/>, <xref target="p2p_get"/>, <xref 
target="p2p_result"/>).
       </dd>
       <dt>HELLO block</dt>
@@ -230,14 +239,17 @@ gnunet+tcp://12.3.4.5/
       </dd>
       <dt>HELLO URL</dt>
       <dd>
-        <tt>HELLO</tt> URLs are URL-formatted <tt>HELLO</tt> blocks.
+        <tt>HELLO</tt> URLs are <tt>HELLO</tt> blocks in a URL representation.
         They can used for out-of-band exchanges of peer information and are 
used for
-        address update signalling messages to neighbours.
+        address update signalling messages to neighbours. Example HELLO URLs 
and their
+        format can be found in <xref target="hello_url"/>.
       </dd>
       <dt>Key</dt>
       <dd>
         512-bit identifier of a location in the DHT. Multiple <tt>Block</tt>s 
can be
   stored under the same key. <tt>Peer Addresses</tt> are valid keys.
+        In the context of &quot;key-value stores&quot; this
+        refers to &quot;key&quot; under which values (blocks) are stored.
       </dd>
       <dt>Message Processing</dt>
       <dd>
@@ -341,17 +353,11 @@ gnunet+tcp://12.3.4.5/
       <t>
         Specifics about the protocols of the underlays providing
        connectivity or the applications using the DHT are out of
-       the scope of this document.  However, we note that peers
-       implementing disjoint sets of underlay protocols may
-       experience difficulties communicating (unless other peers
-       bridge the respective underlays). Similarly, peers that
-       do not support a particular application will not be able
-       to validate application-specific payloads and may thus be
-       tricked into storing or forwarding corrupt blocks.
+       the scope of this document.
       </t>
       <t>
         In order to establish an initial connection to a network of 
R<sup>5</sup>N
-        peers, an initial, addressable bootstrap peer is required.
+        peers, at least one initial, addressable peer is required as part of 
the bootstrapping process.
         Further peers, including neighbors, are then learned via a peer 
discovery
         process as defined in <xref target="find_peer"/>.
       </t>
@@ -385,11 +391,11 @@ R5N          |  v    v
              |  ^                          ^
              |  v                          v
 -------------+------------------------------------ Underlay Interface
-             | +--------+  +--------+
-             | |GNUnet  |  |IP      |  ...
-Connectivity | |Underlay|  |Underlay|
-             | |Link    |  |Link    |
-             | +--------+  +--------+
+             | +--------+  +--------+  +----------+
+             | |GNUnet  |  |IP      |  | QUIC     |
+Connectivity | |Underlay|  |Underlay|  | Underlay | ...   
+             | |Link    |  |Link    |  | Link     |
+             | +--------+  +--------+  +----------+
 ]]>
         </artwork>
       </figure>
@@ -398,15 +404,15 @@ Connectivity | |Underlay|  |Underlay|
     <section anchor="underlay" numbered="true" toc="default">
       <name>Underlay</name>
       <t>
-        In the network underlay, a peer is addressable by traditional
-        means out of scope of this document. For example, the peer may
-        have a TCP/IP address, or a HTTPS endpoint.
+        In the network underlay, how a peer is addressable is out of scope of 
this document.
+        For example, the peer may have a TCP/IP address, or expose a QUIC 
endpoint.
         While the specific addressing options and mechanisms are out of scope
         for this document, it is necessary to define a universal addressing
         format in order to facilitate the distribution of connectivity
         information to other peers in the DHT overlay.
         This format is the "HELLO" Block (described in <xref 
target="hello_block"/>),
-       which contains URIs. The scheme of each URI indicates which underlay 
understands the
+       which contains sets of URIs.
+        The scheme of each URI indicates which underlay understands the
        respective address given in the rest of the URI.
       </t>
       <!--
@@ -438,12 +444,12 @@ Connectivity | |Underlay|  |Underlay|
       </t>
       <dl>
         <dt>
-          <tt>TRY_CONNECT(N, A)</tt>
+          <tt>TRY_CONNECT(P, A)</tt>
         </dt>
         <dd>
-          A function which allows the local peer to attempt the establishment 
of
-          a connection to another peer <tt>N</tt> using an address <tt>A</tt>.
-          When the connection attempt is successful, information on the new
+          A function which allows an implementation to signal to the underlay 
that
+          it wants to establish a connection to another peer <tt>P</tt> using 
an address <tt>A</tt>.
+          If the connection attempt is successful, information on the new
           peer is offered through the <tt>PEER_CONNECTED</tt> signal.
         </dd>
         <dt>
@@ -478,7 +484,7 @@ Connectivity | |Underlay|  |Underlay|
           <tt>M</tt> to a peer <tt>P</tt>.
         </dd>
         <dt>
-          <tt>L2NSE = ESTIMATE_NETWORK_SIZE()</tt>
+          <tt>ESTIMATE_NETWORK_SIZE() -> L2NSE</tt>
         </dt>
         <dd>
           A procedure that provides an estimate of the network size.
@@ -529,7 +535,7 @@ Connectivity | |Underlay|  |Underlay|
           <tt>ADDRESS_DELETED -> A</tt>
         </dt>
         <dd>
-          This underlay signals indicates that an address <tt>A</tt> was 
removed
+          This underlay signal indicates that an address <tt>A</tt> was removed
          from the set of addresses the local peer is possibly reachable
          under. Addresses must have been added before they may be deleted.
           This information is used to no longer advertise
@@ -553,7 +559,7 @@ Connectivity | |Underlay|  |Underlay|
       <t>
         In order to select peers which are suitable destinations for
         routing messages, R<sup>5</sup>N uses a hybrid approach:
-        Given an estimated network size N, the peer selection for the
+        Given an estimated network size L2NSE, the peer selection for the
         first N hops is random. After the initial N hops, peer selection
         follows an XOR-based peer distance calculation.
       </t>
@@ -570,7 +576,7 @@ Connectivity | |Underlay|  |Underlay|
         <bcp14>MUST</bcp14> be removed from the routing table.
       </t>
       <t>
-        In order to achieve O(log n) routing performance,
+        In order to achieve logarithmically bounded routing performance,
         the data structure for managing neighbors and their
         metadata <bcp14>MUST</bcp14> be implemented using the k-buckets 
concept of
         <xref target="Kademlia"/>  as defined in <xref 
target="routing_table"/>.
@@ -2513,6 +2519,18 @@ BEGIN
        an upper limit on bandwidth amplification an attacker
        may achieve for a given network size and topology.
 </t>
+      <section>
+        <name>Disjoint underlay protocols</name>
+      <t>
+        We note that peers
+       implementing disjoint sets of underlay protocols may
+       experience difficulties communicating (unless other peers
+       bridge the respective underlays). Similarly, peers that
+       do not support a particular application will not be able
+       to validate application-specific payloads and may thus be
+       tricked into storing or forwarding corrupt blocks.
+      </t>
+      </section>
       <section>
         <name>Approximate Result Filtering</name>
         <t>

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]