gnunet-svn
[Top][All Lists]
Advanced

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

[lsd0004] branch master updated (4ad3f38 -> 9019e66)


From: gnunet
Subject: [lsd0004] branch master updated (4ad3f38 -> 9019e66)
Date: Mon, 15 Jul 2024 12:39:57 +0200

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

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

    from 4ad3f38  minor wording fix
     new bfc35b9  remove unnecessary emphasis
     new 9019e66  more wording and reorder

The 2 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 | 161 ++++++++++++++++++++++++++-----------------------
 1 file changed, 84 insertions(+), 77 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index dc34340..3cd2311 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -261,11 +261,17 @@
         It includes logic for enforcing storage quotas, caching strategies and
         block validation.
       </dd>
-      <dt>Block-Type</dt>
+      <dt>Block Type</dt>
       <dd>
         A unique 32-bit value identifying the data format of a <em>block</em>.
-        <em>Block-types</em> are either private or registered in the GANA 
block type registry (see
-        <xref target="gana_block_type"/>).
+        <em>Block types</em> may be public or private.
+        Applications that require application-specific
+        block payloads are expected to register a
+        block type in the GANA Block-Type registry
+        (<xref target="gana_block_type"/>) and provide a specification
+        of the associated block operations (<xref
+        target="block_functions"/>) to implementors of
+        R<sup>5</sup>N.
       </dd>
       <dt>Bootstrapping</dt>
       <dd>
@@ -470,15 +476,15 @@
       </t>
       <ul>
         <li>
-          <tt>PUT</tt>: This operation stores a <em>block</em>
-         under a <em>key</em> on one or more <em>peers</em> with
-          the goal of making the <em>block</em> availiable for queries using 
the <tt>GET</tt> operation.
+          <tt>PUT</tt>: This operation stores a block
+         under a key on one or more peers with
+          the goal of making the block availiable for queries using the 
<tt>GET</tt> operation.
           In the classical definition of a dictionary interface, this 
operation would be
           called "insert".
         </li>
         <li>
-          <tt>GET</tt>: This operation queries the network of peers for any 
number of <em>blocks</em>
-          previously stored under or near a <em>key</em>.
+          <tt>GET</tt>: This operation queries the network of peers for any 
number of blocks
+          previously stored under or near a key.
           In the classical definition of a dictionary interface, this 
operation would be
           called "find".
         </li>
@@ -489,11 +495,11 @@
        outlined in <xref target="overlay"/>.
       </t>
       <t>
-        A <em>peer</em> does not necessarily need to expose the above
-        operations to <em>applications</em>, but it commonly will.  A
-        <em>peer</em> that does not expose the above operations could
-        be a host purely used for <em>bootstrapping</em>,
-       <em>routing</em> or supporting
+        A peer does not necessarily need to expose the above
+        operations to applications, but it commonly will.  A
+        peer that does not expose the above operations could
+        be a host purely used for bootstrapping,
+       routing or supporting
         the overlay network with resources.
       </t>
       <t>
@@ -502,10 +508,10 @@
        data. Examples for such hosts would be mobile devices with
        limited bandwidth, battery and storage capacity.  Such hosts
        may be used to run applications that use the DHT. However, we
-       will not refer to such hosts as <em>peers</em>.
+       will not refer to such hosts as peers.
       </t>
       <t>
-        In a trivial scenario where there is only one <em>peer</em> (on the 
local host),
+        In a trivial scenario where there is only one peer (on the local host),
         R<sup>5</sup>N operates similarly to a dictionary data structure.
         However, the default use case is one where nodes communicate directly 
and
         indirectly in order to realize a distributed storage mechanism.
@@ -525,30 +531,24 @@
       <!-- consider moving some of this back into sec considerations -->
       <t>
         Specifics about the protocols of the underlays implementing
-        the <em>underlay interface</em> or the <em>applications</em>
+        the underlay interface or the applications
         using the DHT are out of the scope of this document.
       </t>
       <t>
         To establish an initial connection to a network of
         R<sup>5</sup>N peers, at least one initial, addressable
-        <em>peer</em> is required as part of the
-        <em>bootstrapping</em> process.  Further <em>peers</em>,
-        including <em>neighbors</em>, are then learned via a peer
+        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>
       <t>
         Across this document, the functional components of an
         R<sup>5</sup>N implementation are divided into
-        <em>routing</em> (<xref target="routing"/>), <em>message
-        processing</em> (<xref target="p2p_messages"/>) and
-        block processing (<xref target="blockstorage"/>).
-        <em>Applications</em> that require application-specific
-        <em>block</em> payloads are expected to register a
-        <em>Block-Type</em> in the GANA <em>Block-Type</em> registry
-        (<xref target="gana_block_type"/>) and provide a specification
-        of the associated block operations (<xref
-        target="block_functions"/>) to implementors of
-        R<sup>5</sup>N.  <xref target="figure_r5n_arch"/> illustrates
+        routing (<xref target="routing"/>), message
+        processing (<xref target="p2p_messages"/>) and
+        block storage (<xref target="blockstorage"/>).
+ <xref target="figure_r5n_arch"/> illustrates
         the architectural overview of R<sup>5</sup>N.
       </t>
       <figure anchor="figure_r5n_arch" title="The R5N architecture.">
@@ -589,14 +589,16 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
         addressed in a specific underlay is out of scope of this
         document.  For example, a peer may have a TCP/IP address, or
         expose a QUIC endpoint, or both.  While the specific addressing options
-        and mechanisms are out of scope, it is necessary to define a
+        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 <em>address</em> information to other
-        <em>peers</em> in the DHT overlay.  This standardized format
-        is the <em>HELLO Block</em> (described in <xref
-        target="hello_block"/>), which contains sets of addresses.  If
-        the address is a URI, it may indicate which
-        underlay understands the respective <em>address</em>.
+        distribution of address information to other
+        peers in the DHT overlay.
+        This standardized format
+        is the HELLO block (described in <xref
+        target="hello_block"/>), which contains sets of addresses.
+        If the address is a URI, it may indicate which
+        underlay understands the respective address.
       </t>
       <!--
         1) The current API is always fire+forget, it doesn't allow for flow
@@ -632,8 +634,8 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
       <t>
         It is expected that the underlay provides basic mechanisms to
         manage peer connectivity and addressing.
-        The essence of the <em>underlay interface</em> is
-       captured by the following set of API calls:
+        The essence of the underlay interface is
+        captured by the following set of API calls:
       </t>
       <dl>
         <dt>
@@ -700,10 +702,10 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           This call must return an estimate of the network size.  The
           resulting <tt>L2NSE</tt> value must be the base-2 logarithm
           of the <em>estimated</em> number of peers in the network.
-          It is used by the routing algorithm.  If the underlay does
+          This estimate is used by the routing algorithm.  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.
+          a configuration parameter to the underlay implementation.
         </dd>
       </dl>
       <t>
@@ -727,7 +729,7 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           peer.  Underlays may include meta-data about the connection,
           for example to indicate that the connection is from a
           resource-constrained host that does not intend to function
-          as a full <em>peer</em> and thus should not be considered
+          as a full peer and thus should not be considered
           for routing.
         </dd>
         <dt>
@@ -774,7 +776,7 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
         To enable routing, any R<sup>5</sup>N implementation must keep
        information about its current set of neighbors.
         Upon receiving a connection notification from the
-       <em>underlay interface</em> through a
+       underlay interface through a
         <tt>PEER_CONNECTED</tt> signal, information on the new neighbor
         <bcp14>MUST</bcp14> be added to the routing table, except if the
        respective <tt>k</tt>-bucket in the routing table is full or if 
meta-data
@@ -792,7 +794,7 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
         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"/>.
-        Maintenance of the routing table (after <em>bootstrapping</em>) is
+        Maintenance of the routing table (after bootstrapping) is
         described in <xref target="find_peer"/>.
       </t>
       <t>
@@ -826,17 +828,17 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           the underlay, the respective peer is considered for
           insertion into the routing table.  The routing table
           consists of an array of <tt>k</tt>-buckets. Each
-          <tt>k</tt>-bucket contains a list of <em>neighbors</em>.
+          <tt>k</tt>-bucket contains a list of neighbors.
           The i-th <tt>k</tt>-bucket stores neighbors whose peer
           public keys are between XOR-distance 2<sup>i</sup> and
           2<sup>i+1</sup> from the local peer; <tt>i</tt> can be
           directly computed from the two peer identities using the
           <tt>GetDistance()</tt> function.  System constraints will
           typically force an implementation to impose some upper limit
-          on the number of <em>neighbors</em> kept per
+          on the number of neighbors kept per
           <tt>k</tt>-bucket.  Upon insertion, the implementation
           <bcp14>MUST</bcp14> call <tt>HOLD()</tt> on the respective
-          <em>neighor</em>.
+          neighor.
         </t>
         <t>
           Implementations <bcp14>SHOULD</bcp14> try to keep at least
@@ -851,42 +853,46 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
         <t>
           If a system hits constraints with respect to
           the number of active connections, an implementation
-          <bcp14>MUST</bcp14> evict <em>neighbours</em> from those 
<tt>k</tt>-buckets with the
+          <bcp14>MUST</bcp14> evict neighbours from those <tt>k</tt>-buckets 
with the
           largest number of neighbors. The eviction strategy 
<bcp14>MUST</bcp14> be
           to drop the shortest-lived connection per <tt>k</tt>-bucket first.
         </t>
         <t>
-          Implementations <bcp14>MAY</bcp14> cache valid <em>addresses</em> of 
disconnected
-          <em>peers</em> outside of the routing table and sporadically or 
periodically try to (re-)establish connection
-          to the <em>peer</em> by making <tt>TRY_CONNECT()</tt> calls to the 
<em>underlay interface</em>
+          Implementations <bcp14>MAY</bcp14> cache valid addresses of 
disconnected
+          peers outside of the routing table and sporadically or periodically 
try to (re-)establish connection
+          to the peer by making <tt>TRY_CONNECT()</tt> calls to the underlay 
interface
           if the respective <tt>k</tt>-bucket has empty slots.
         </t>
       </section>
       <section anchor="find_peer">
         <name>Peer Discovery</name>
         <t>
-          Initially, implementations depend upon either the underlay
-          providing at least one initial connection to a
-          <em>neighbor</em> (signalled through
-          <tt>PEER_CONNECTED</tt>), or the <em>application</em> or
-          even end-user providing at least one working <tt>HELLO</tt>
-          which is then in turn used to call <tt>TRY_CONNECT()</tt> on
-          the underlay in order to trigger a subsequent
-          <tt>PEER_CONNECTED</tt> signal from the <em>underlay
-          interface</em>.  This is commonly achieved through the
-          configuration of hardcoded bootstrap peers or bootstrap
-          servers either for the underlay or the R<sup>5</sup>N
-          implementation. The first connection <bcp14>SHOULD</bcp14> be 
established
+          Initially, implementations require at least one initial connection 
to a
+          neighbor (signalled through
+          <tt>PEER_CONNECTED</tt>).
+          The first connection <bcp14>SHOULD</bcp14> be established
           by an out-of-band exchange of the information from a
           <tt>HELLO</tt> block.
+          This is commonly achieved through the
+          configuration of hardcoded bootstrap peers or bootstrap
+          servers either for the underlay or the R<sup>5</sup>N
+          implementation.
+        </t>
+        <t>
           Implementations <bcp14>MAY</bcp14> have other means to achieve this
           initial connection.
+          For example, implementations could allow the application or
+          even end-user to provide a working <tt>HELLO</tt>
+          which is then in turn used to call <tt>TRY_CONNECT()</tt> on
+          the underlay in order to trigger a subsequent
+          <tt>PEER_CONNECTED</tt> signal from the underlay
+          interface.
           <xref target="hello_url"/> specifies
           a URL format for encoding HELLO blocks as text strings. The
           URL format thus provides a portable, human-readable,
           text-based serialization format that can, for example, be
-          encoded into a QR code for dissemination.  HELLO URLs
-          <bcp14>SHOULD</bcp14> be supported by implementations for
+          encoded into a QR code for dissemination.
+          HELLO URLs <bcp14>SHOULD</bcp14> be supported by implementations for
           both import and export of <tt>HELLOs</tt>.
         </t>
         <t>
@@ -899,7 +905,7 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           <bcp14>MUST</bcp14> be
           initialized to filter the peer's own peer identity as well as the 
peer
           identities of all currently connected
-          <em>neighbors</em>. These requests <bcp14>MUST</bcp14> use
+          neighbors. These requests <bcp14>MUST</bcp14> use
           the <tt>FindApproximate</tt> and
           <tt>DemultiplexEverywhere</tt>
           flags. <tt>FindApproximate</tt> will ensure that other peers
@@ -922,7 +928,7 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           provided if a peer can only establish outgoing connections
           and is otherwise unreachable.  An implementation
           <bcp14>MUST</bcp14> advertise its addresses periodically to
-          its <em>neighbors</em> through <tt>HelloMessages</tt>.  The
+          its neighbors through <tt>HelloMessages</tt>.  The
           advertisement interval and expiration <bcp14>SHOULD</bcp14>
           be configurable.
           If the values are chosen at the discretion of the
@@ -1075,7 +1081,7 @@ Connectivity | |Underlay|  |Underlay|  | Underlay | ...
           </dt>
           <dd>
            <t>
-            This function computes the number of <em>neighbors</em>
+            This function computes the number of neighbors
            that a message should be forwarded to.  The arguments
            are the desired replication level (<tt>REPL_LVL</tt>),
            the <tt>HOPCOUNT</tt> of the message so far and
@@ -1108,7 +1114,7 @@ BEGIN
              rounded probabilistically to the nearest
              discrete value, using the fraction
              as the probability for rounding up.
-              This probabillistic rounding is necessary to achieve
+              This probabilistic rounding is necessary to achieve
               the statistically expected value of the replication
               level and average number of peers a message is forwarded to.
            </t>
@@ -1124,12 +1130,13 @@ BEGIN
          towards the key is done hop-by-hop using the routing table and the
          query hash.  The pending table is used to route responses
          back to the originator.  In the pending table each peer
-         primarily associates a query hash with the associated
+         primarily maps a query hash to the associated
          originator of the request.  The pending table <bcp14>MUST</bcp14>
          store entries for the last <tt>MAX_RECENT</tt> requests
-         the peer has encountered.  To ensure that the peer does
+    the peer has encountered.
+    To ensure that the peer does
          not run out of memory, information about older requests
-    is discarded.
+    <bcp14>MAY</bcp14> be discarded.
     The value of <tt>MAX_RECENT</tt> <bcp14>MAY</bcp14> be configurable
     at the host level to use available memory resources without
     conflicting with other system requirements and limitations.
@@ -1179,13 +1186,13 @@ BEGIN
         An implementation will process
         messages either because it needs to transmit messages as part of 
routing
        table maintenance, or due to requests from local applications, or
-       because it received a message from a <em>neighbor</em>.
+       because it received a message from a neighbor.
         If instructed through an application-facing API such as the one 
outlined
-        in <xref target="overlay"/>, a peer acts as an <em>initiator</em>
+        in <xref target="overlay"/>, a peer acts as an initiator
        of <tt>GetMessages</tt>
         or <tt>PutMessages</tt>.
         The status of initiator is relevant for peers when processing 
<tt>ResultMessages</tt>
-        due to the required handover of results to the originating 
<em>application</em>.
+        due to the required handover of results to the originating application.
       </t>
       <t>
         The implementation <bcp14>MUST</bcp14> listen for <tt>RECEIVE(P, 
M)</tt> signals
@@ -1228,7 +1235,7 @@ BEGIN
           </dd>
           <dt>2: FindApproximate</dt>
           <dd>
-            This bit asks peers to return results even if the <em>key</em>
+            This bit asks peers to return results even if the key
            does not exactly match the query hash.
           </dd>
           <dt>3: Truncated</dt>
@@ -3599,12 +3606,12 @@ bchar = *(ALPHA / DIGIT)
         </artwork>
         </figure>
        <t>
-          It specifies that the peer with the <em>pid</em> "1MVZ..."
+    It specifies that the peer with the <tt>pid</tt> "1MVZ..."
           is reachable via "foo" at "example.com" and "bar+baz" at
           "1.2.3.4" on port 5678 until
           1708333757 seconds after the Epoch.  Note that "foo"
          and "bar+baz" here are underspecified and just used as a simple 
example.
-         In practice, the <em>addr-name</em> refers to a scheme supported by a
+         In practice, the <tt>addr-name</tt> refers to a scheme supported by a
          DHT underlay.
         </t>
       </section>

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