gnunet-svn
[Top][All Lists]
Advanced

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

[lsd0004] branch master updated (afee8b6 -> 5f42ddd)


From: gnunet
Subject: [lsd0004] branch master updated (afee8b6 -> 5f42ddd)
Date: Fri, 23 Dec 2022 10:14:50 +0100

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

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

    from afee8b6  no validation ANY
     new 2ac5ecf  Update authorship
     new 9c8096b  Rewrite abstract and introduction
     new 5f42ddd  Reorder terminology alphabetically

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 draft-schanzen-r5n.xml | 233 +++++++++++++++++++++++++++----------------------
 1 file changed, 128 insertions(+), 105 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index dd54f7e..3bcc45c 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -34,15 +34,15 @@
     </title>
     <seriesInfo name="Internet-Draft" value="draft-schanzen-r5n-00"/>
     <author fullname="Martin Schanzenbach" initials="M." 
surname="Schanzenbach">
-      <organization>GNUnet e.V.</organization>
+      <organization>Fraunhofer AISEC</organization>
       <address>
         <postal>
-          <street>Boltzmannstrasse 3</street>
+          <street>Lichtenbergstrasse 11</street>
           <city>Garching</city>
           <code>85748</code>
           <country>DE</country>
         </postal>
-        <email>schanzen@gnunet.org</email>
+        <email>martin.schanzenbach@aisec.fraunhofer.de</email>
       </address>
     </author>
     <author fullname="Christian Grothoff" initials="C." surname="Grothoff">
@@ -74,16 +74,24 @@
     <workgroup>Independent Stream</workgroup>
     <keyword>distributed hash tables</keyword>
     <abstract>
-      <t>This document contains the R<sup>5</sup>N DHT technical 
specification.</t>
       <t>
-        This document defines the normative wire format of resource records,
-        resolution processes, cryptographic routines and security 
considerations for
+        This document contains the R<sup>5</sup>N DHT technical specification.
+        R<sup>5</sup>N is a secure distributed hash table (DHT) routing 
algorithm
+        and data structure for decentralized applications.
+        It features an open peer-to-peer overlay routing mechanism which 
supports ad-hoc
+        permissionless participation and support for topologies in 
restricted-route
+        environments.
+      </t>
+      <t>
+        This document defines the normative wire format of protocol messages,
+        routing algorithms, cryptographic routines and security considerations 
for
         use by implementers.
       </t>
       <t>
         This specification was developed outside the IETF and does not have 
IETF
         consensus. It is published here to guide implementation of 
R<sup>5</sup>N and to
-        ensure interoperability among implementations.
+        ensure interoperability among implementations including the 
pre-existing
+        GNUnet implementation.
       </t>
     </abstract>
   </front>
@@ -110,30 +118,28 @@
         in RELOAD. The argumentation revolves around the trust model 
(openness) and
         security aspects (path signatures).-->
       <t>
-        Distributed Hash Tables (DHTs) are a key data structure for the
-        construction of decentralized applications.
-        DHTs are important because they generally provide a robust and
-        efficient means to distribute the storage and retrieval of
-        key-value pairs.
+        This specification describes the protocol of R<sup>5</sup>N.
+        R<sup>5</sup> stands for "randomized recursive routing for 
restricted-route
+        networks" and its first academic description can be found in
+        <xref target="R5N"/>.
       </t>
       <t>
-        While <xref target="RFC6940"/> already provides a peer-to-peer (P2P)
-        signaling protocol with extensible routing and topology mechanisms,
-        it also relies on strict admission control through the use of either
-        centralized enrollment servers or pre-shared keys.
-        Some decentralized applications require a more open system that
-        enables ad-hoc participation and other means to prevent common attacks
-        on P2P overlays.
+        R<sup>5</sup>N is a Distributed Hash Table (DHTs).
+        DHTs are a key data structure for the construction of decentralized 
applications.
+        and they generally provide a robust and efficient means to distribute 
the
+        storage and retrieval of key-value pairs.
       </t>
       <t>
-        This document contains the technical specification
-        of the R<sup>5</sup>N DHT <xref target="R5N"/>, a secure DHT routing 
algorithm
-        and data structure for decentralized applications.
-        R<sup>5</sup>N is an open P2P overlay routing mechanism which supports 
ad-hoc
-        permissionless participation and support for
-        topologies in restricted-route environments.  R<sup>5</sup>N also
-       includes advanced features like tracing paths messages take through the
-       network, response filters and on-path application-specific data 
validation.
+        The core idea behind R<sup>5</sup>N is to combine an initial 
randomized routing
+        algorithm with an efficient, classical 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.
+      </t>
+      <t>
+        R<sup>5</sup>N also includes advanced features like tracing paths 
messages take
+        through the network, response filters and on-path application-specific 
data
+        validation.
       </t>
       <t>
         This document defines the normative wire format of peer-to-peer
@@ -150,108 +156,76 @@
           when, they appear in all capitals, as shown here.
         </t>
       </section>
-      <section>
-        <name>Structure of This Document</name>
-        <t>
-            <xref target="terminology"/> gives an overview of the terminology 
used in
-           this document.
-           <xref target="architecture"/> then describes the overall 
architecture and
-           the scope of this specification.
-           <xref target="overlay"/> describes the application API, which 
clarifies
-           the semantics provided by R<sup>5</sup>N for applications
-           and thus is crucial as it motivates the rest of the design.
-           <xref target="underlay"/> describes the underlay interface. This is 
the
-           abstraction that applications must provide to R<sup>5</sup>N
-           and thus a prerequisite for using the DHT.
-           Before a DHT is usable, it must be bootstrapped.
-           Bootstrapping is described in <xref target="bootstrapping"/>.
-           Bloom filters, a key data structure used in various
-           places, are introduced in <xref target="bloom_filters" />
-           The central operation of a DHT is routing, which is
-           detailed in <xref target="routing"/>. The processing of the various
-           network messages is described in <xref target="p2p_messages"/>.  
Handling
-           of Blocks, including validation and storage are described
-           in <xref target="blockstorage"/>. General security considerations 
are detailed
-           in <xref target="security" />. IANA and GANA registry updates are 
listed
-           in <xref target="iana" /> and <xref target="gana"/>. The document 
concludes with test
-           vectors in <xref target="testvectors"/> and appendices with 
references.
-        </t>
-      </section>
-    </section>
-    <section anchor="terminology">
+      <section anchor="terminology">
       <name>Terminology</name>
       <dl>
-        <dt>Peer:</dt>
-        <dd>
-          A host that is participating in the overlay.  Peers are
-          responsible for holding some portion of the data that has been
-          stored in the overlay, and they are responsible for routing
-          messages on behalf of other hosts as needed by the Routing
-          Algorithm.
-        </dd>
-        <dt>Peer ID:</dt>
-        <dd>
-          The <tt>Peer ID</tt> is the public key which is used to authenticate
-          a peer in the underlay.
-         The Peer ID is the public key of the corresponding
-         Ed25519<xref target="ed25519" /> peer private key.
-
-        </dd>
-        <dt>Peer Address:</dt>
-        <dd>
-          The <tt>Peer Address</tt> is the identifier used on the Overlay
-          to address a peer.
-         It is a SHA-512 hash of the <tt>Peer ID</tt>.
-        </dd>
-        <dt>Key</dt>
+        <dt>Applications</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.
+          Applications are components which directly use the DHT overlay
+          interfaces. Possible applications include the GNU Name System
+          <xref target="I-D.draft-schanzen-gns"/> and the CADET transport 
system
+          <xref target="cadet"/>.
         </dd>
-        <dt>Neighbor:</dt>
+        <dt>Application API</dt>
         <dd>
-          A neighbor is a peer which is directly able to communicate
-         with our peer via the <tt>Underlay Interface</tt>.
+          The application API exposes the core operations of the DHT overlay
+          to applications.
+          This includes storing blocks in the DHT and retrieving blocks from 
the DHT.
         </dd>
-        <dt>Block:</dt>
+        <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;.
         </dd>
+        <dt>Block Storage</dt>
+        <dd>
+          The <tt>Block Storage</tt> component is used to persist and manage
+          <tt>Block</tt> data by peers.
+          It includes logic for enforcing storage quotas, caching strategies 
and
+          data validation.
+        </dd>
         <dt>Block-Type:</dt>
         <dd>
           A unique 32-bit value identifying the data format of a 
<tt>Block</tt>.
-          Block-Types are either private or allocated by GANA (see <xref 
target="gana"/>).
+          Block-Types are either private or allocated by GANA (see
+          <xref target="gana"/>).
         </dd>
-        <dt>Block Storage</dt>
+        <dt>Key</dt>
         <dd>
-          The <tt>Block Storage</tt> component is used to persist and manage 
<tt>Block</tt> data
-          by peers. It includes logic for enforcing storage quotas, caching 
strategies and
-          data validation.
+          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.
         </dd>
-        <dt>Responsible Peer:</dt>
+        <dt>Message Processing</dt>
         <dd>
-          The peer <tt>N</tt> that is responsible for a specific key 
<tt>K</tt>, as defined by
-          the <tt>SelectClosestPeer(K, P)</tt> algorithm (see <xref 
target="routing"/>.
+          The Message Processing component processes requests from and
+         generates responses to applications and the underlay network.
         </dd>
-        <dt>Applications</dt>
+        <dt>Neighbor</dt>
         <dd>
-          Applications are components which directly use the DHT overlay
-          interfaces. Possible applications include the GNU Name System
-          <xref target="I-D.draft-schanzen-gns"/> and the CADET transport 
system
-          <xref target="cadet"/>.
+          A neighbor is a peer which is directly able to communicate
+         with our peer via the <tt>Underlay Interface</tt>.
         </dd>
-        <dt>Application API</dt>
+        <dt>Peer</dt>
         <dd>
-          The application API exposes the core operations of the DHT overlay
-          to applications.
-          This includes storing blocks in the DHT and retrieving blocks from 
the DHT.
+          A host that is participating in the overlay.  Peers are
+          responsible for holding some portion of the data that has been
+          stored in the overlay, and they are responsible for routing
+          messages on behalf of other hosts as needed by the Routing
+          Algorithm.
         </dd>
-        <dt>Message Processing</dt>
+        <dt>Peer Address</dt>
         <dd>
-          The Message Processing component processes requests from and
-         generates responses to applications and the underlay network.
+          The <tt>Peer Address</tt> is the identifier used on the Overlay
+          to address a peer.
+         It is a SHA-512 hash of the <tt>Peer ID</tt>.
+        </dd>
+        <dt>Peer ID</dt>
+        <dd>
+          The <tt>Peer ID</tt> is the public key which is used to authenticate
+          a peer in the underlay.
+          The Peer ID is the public key of the corresponding
+          Ed25519<xref target="ed25519" /> peer private key.
         </dd>
         <dt>Routing</dt>
         <dd>
@@ -259,6 +233,12 @@
           routing and peer selection logic. It facilitates the R<sup>5</sup>N 
routing
           algorithm with required data structures and algorithms.
         </dd>
+        <dt>Responsible Peer</dt>
+        <dd>
+          The peer <tt>N</tt> that is responsible for a specific key 
<tt>K</tt>, as
+          defined by the <tt>SelectClosestPeer(K, P)</tt> algorithm (see
+          <xref target="routing"/>.
+        </dd>
         <dt>Underlay Interface</dt>
         <dd>
           The Underlay Interface is an abstraction layer on top of the
@@ -267,6 +247,34 @@
           TCP, UDP and TLS or advanced protocols such as GNUnet, I2P or Tor.
         </dd>
       </dl>
+      </section>
+      <section>
+        <name>Structure of This Document</name>
+        <t>
+            <xref target="terminology"/> gives an overview of the terminology 
used in
+           this document.
+           <xref target="architecture"/> then describes the overall 
architecture and
+           the scope of this specification.
+           <xref target="overlay"/> describes the application API, which 
clarifies
+           the semantics provided by R<sup>5</sup>N for applications
+           and thus is crucial as it motivates the rest of the design.
+           <xref target="underlay"/> describes the underlay interface. This is 
the
+           abstraction that applications must provide to R<sup>5</sup>N
+           and thus a prerequisite for using the DHT.
+           Before a DHT is usable, it must be bootstrapped.
+           Bootstrapping is described in <xref target="bootstrapping"/>.
+           Bloom filters, a key data structure used in various
+           places, are introduced in <xref target="bloom_filters" />
+           The central operation of a DHT is routing, which is
+           detailed in <xref target="routing"/>. The processing of the various
+           network messages is described in <xref target="p2p_messages"/>.  
Handling
+           of Blocks, including validation and storage are described
+           in <xref target="blockstorage"/>. General security considerations 
are detailed
+           in <xref target="security" />. IANA and GANA registry updates are 
listed
+           in <xref target="iana" /> and <xref target="gana"/>. The document 
concludes with test
+           vectors in <xref target="testvectors"/> and appendices with 
references.
+        </t>
+      </section>
     </section>
     <section anchor="architecture" numbered="true" toc="default">
       <name>Architecture</name>
@@ -2568,6 +2576,21 @@ gnunet+tcp://12.3.4.5/ \
           filtered by the result filter.
         </t>
       </section>
+      <section>
+        <name>Access control</name>
+        <t>
+          By design R<sup>5</sup>N does not rely on strict admission control 
through
+          the use of either centralized enrollment servers or pre-shared keys.
+          This is a key distintion over protocols that do rely on this kind of 
access
+          control such as <xref target="RFC6940"/> which, like R<sup>5</sup>N, 
provides
+          a peer-to-peer (P2P) signaling protocol with extensible routing and 
topology
+          mechanisms.
+          <!-- FIXME: Can we give examples here? -->
+          Some decentralized applications require a more open system that
+          enables ad-hoc participation and other means to prevent common 
attacks
+          on P2P overlays.
+        </t>
+      </section>
     </section>
     <section anchor="iana" numbered="true" toc="default">
       <name>IANA Considerations</name>

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