[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lsd0004] branch master updated: minor
From: |
gnunet |
Subject: |
[lsd0004] branch master updated: minor |
Date: |
Tue, 11 Jan 2022 21:47:23 +0100 |
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 aa55c2c minor
aa55c2c is described below
commit aa55c2cbde372b3367b2d1bad38be5da547848e7
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Tue Jan 11 21:47:17 2022 +0100
minor
---
draft-schanzen-r5n.xml | 212 +++++++++++++++++++++++++++----------------------
1 file changed, 116 insertions(+), 96 deletions(-)
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index ddbda76..00e97f8 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -162,21 +162,24 @@
<section>
<name>Terminology</name>
<dl>
- <dt>Node:</dt>
+ <dt>Peer:</dt>
<dd>
- A node is participant in the network and addressable through the
- network overlay.
+ 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>Node Address:</dt>
+ <dt>Peer Key:</dt>
<dd>
- The <tt>Node Address</tt> is the identifier used on the Overlay
- to address a node.
+ The <tt>Peer Key</tt> is the identifier used on the Overlay
+ to address a peer.
</dd>
- <dt>Node ID:</dt>
+ <dt>Peer ID:</dt>
<dd>
- The <tt>Node ID</tt> is the identity which is used to authenticate
- a node in the underlay.
- The <tt>Node Address</tt> is derived from the <tt>Node ID</tt>.
+ The <tt>Peer ID</tt> is the identity which is used to authenticate
+ a peer in the underlay.
+ The <tt>Peer Address</tt> is derived from the <tt>Peer ID</tt>.
</dd>
<dt>Neighbour:</dt>
<dd>
@@ -184,6 +187,54 @@
</dd>
<dt>Block:</dt>
<dd>
+ An object or group of objects stored in the DHT.
+ </dd>
+ <dt>Block-Type:</dt>
+ <dd>
+ A unique 32-bit value identifying a block type.
+ Block-Types are either private or allocated by GANA (see <xref
target="gana"/>).
+ </dd>
+ <dt>Block Storage</dt>
+ <dd>
+ The Block Storage component is used to persist and manage data
+ by nodes. It includes logic for quotas, caching stragegies and
+ data validation.
+ </dd>
+ <dt>Responsible Peer:</dt>
+ <dd>
+ The peer <tt>N</tt> that is responsible for a specific resource
<tt>K</tt>, as defined by
+ the <tt>SelectClosestNode(K, N)</tt> algorithm (see <xref
target="routing"/>.
+ </dd>
+ <dt>Applications</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"/> or the CADET transport system
+ <xref target="cadet"/>.
+ </dd>
+ <dt>Overlay Interface</dt>
+ <dd>
+ The Overlay Interface exposes the core operations of the DHT overlay
+ to applications.
+ This includes querying and retrieving data from the DHT.
+ </dd>
+ <dt>Message Processing</dt>
+ <dd>
+ The Message Processing component processes requests from and
responses
+ to applications as well as messages from the underlay network.
+ </dd>
+ <dt>Routing</dt>
+ <dd>
+ The Routing component includes the routing table as well as
+ routing and node selection logic. It facilitates the R5N routing
+ algorithm with required data structures and algorithms.
+ </dd>
+ <dt>Underlay Interface</dt>
+ <dd>
+ The DHT Underlay Interface is an abstraction layer on top of the
+ supported links of a node. Nodes may be linked by a variety of
+ different transports, including "classical" protocols such as
+ TCP, UDP and TLS or advanced protocols such as GNUnet, L2P or Tor.
</dd>
</dl>
</section>
@@ -219,45 +270,6 @@ Connectivity | |Underlay| |Underlay|
]]>
</artwork>
</figure>
- <dl>
- <dt>Applications</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"/> or the CADET transport system
- <xref target="cadet"/>.
- </dd>
- <dt>Overlay Interface</dt>
- <dd>
- The Overlay Interface exposes the core operations of the DHT overlay
- to applications.
- This includes querying and retrieving data from the DHT.
- </dd>
- <dt>Block Storage</dt>
- <dd>
- The Block Storage component is used to persist and manage data
- by nodes. It includes logic for quotas, caching stragegies and
- data validation.
- </dd>
- <dt>Message Processing</dt>
- <dd>
- The Message Processing component processes requests from and
responses
- to applications as well as messages from the underlay network.
- </dd>
- <dt>Routing</dt>
- <dd>
- The Routing component includes the routing table as well as
- routing and node selection logic. It facilitates the R5N routing
- algorithm with required data structures and algorithms.
- </dd>
- <dt>Underlay Interface</dt>
- <dd>
- The DHT Underlay Interface is an abstraction layer on top of the
- supported links of a node. Nodes may be linked by a variety of
- different transports, including "classical" protocols such as
- TCP, UDP and TLS or advanced protocols such as GNUnet, L2P or Tor.
- </dd>
- </dl>
<t>
Other glossary
</t>
@@ -273,69 +285,53 @@ Connectivity | |Underlay| |Underlay|
Ed25519<xref target="ed25519" /> node private key.
</t>
<t>
- Any implementation of this specification MUST expose the two API
+ An implementation of this specification commonly exposes the two API
procedures "GET" and "PUT".
+ The following are non-normative examples of such APIs and their
+ behaviour are detailed in order to give implementers a fuller picture
of the protocol.
</t>
<section>
<name>The GET procedure</name>
<t>
- The GET procedure is defined as follows:
+ A basic GET procedure may be exposed as:
</t>
<t>
- <tt>GET(Key[, GetParams]) -> Results as List</tt>
+ <tt>GET(QueryKey) -> Results as List</tt>
</t>
<t>
- The procedure takes a single additional <tt>QueryParams</tt>
- argument in order to specify detailed query parameters.
- The <tt>GetParams</tt> consist of the following parameters:
+ The procedure takes a single inputargument : The <tt>QueryKey</tt>.
+ It initiates a lookup for this key in the DHT and - if the procedure
+ is implemented synchronuously - returns a list of results.
+ The procedure may allow a set of optional parameters in order to
+ control or modify the query:
</t>
<dl>
- <dt>BlockType</dt>
+ <dt>Block-Type:</dt>
<dd>
- The default setting of this parameter is to request any type of
- block types under the key.
+ The type of block to look for.
</dd>
- <dt>ReplicationLevel</dt>
- <dd>The default setting of this parameter is X (FIXME).</dd>
- <dt>RouteOptions</dt>
+ <dt>Replication-Level:</dt>
<dd>
- are used in order to indicate certain
+ An integer which controls how many nearest peers the request
+ should reach.
+ </dd>
+ <dt>Route-Options</dt>
+ <dd>
+ Flags that are used in order to indicate certain
processing requirements for messages.
Any combination of options as defined in <xref
target="route_options"/>
- may be specificied.
- The default setting of this parameter is that no option is set.
+ may be specified.
</dd>
<dt>XQuery</dt>
<dd>
is extended query medatadata which may be
- required depending on the respective <tt>BlockType</tt>.
- A <tt>BlockType</tt> must define if the <tt>XQuery</tt> can or must
+ required depending on the respective <tt>Block-Type</tt>.
+ A <tt>Block-Type</tt> must define if the <tt>XQuery</tt> can or
must
be used and what the specific format of its contents should be.
See also <xref target="block_types"/>.
- The default setting of this parameter is empty.
- </dd>
- </dl>
- <t>
- The <tt>RouteOptions</tt> consist of the following flags:
- </t>
- <dl anchor="route_options">
- <dt>DemultiplexEverywhere</dt>
- <dd>
- indicates that each node along the way should process the request.
- </dd>
- <dt>RecordRoute</dt>
- <dd>
- indicates to keep track of the route that the message takes
- in the P2P network.
- </dd>
- <dt>FindNode</dt>
- <dd>
- indicates that this is a request used to find additional nodes.
- This is a special flag which modifies the message processing to
- allow approximate results.
</dd>
</dl>
- <t>
+ <t>
As the time it takes for results to arrive may vary an implementation
may either return a list of results after a timeout or allow the
caller to provide a callback function which is called for any result
@@ -417,6 +413,7 @@ Connectivity | |Underlay| |Underlay|
The required functionality are abstracted through the following
procedures and events:
</t>
+ <!-- FIXME separate procedures from events -->
<dl>
<dt>
<tt>PEER_CONNECTED(P)</tt>
@@ -501,12 +498,6 @@ Connectivity | |Underlay| |Underlay|
This information is used, for example, to no longer advertise
this address.
</dd>
- <dt>
- <tt>VERIFY(blob)</tt>
- </dt>
- <dd>
- Signature verification by underlay. FIXME unclear. Required?
- </dd>
</dl>
</section>
<section>
@@ -656,6 +647,28 @@ Connectivity | |Underlay| |Underlay|
processing are detailed.
The local node address is referred to as <tt>N</tt>.
</t>
+ <section anchor="route_options">
+ <name>Route Options</name>
+ <t>
+ The <tt>RouteOptions</tt> consist of the following flags:
+ </t>
+ <dl>
+ <dt>Demultiplex-Everywhere</dt>
+ <dd>
+ indicates that each node along the way should process the request.
+ </dd>
+ <dt>Record-Route</dt>
+ <dd>
+ indicates to keep track of the route that the message takes
+ in the P2P network.
+ </dd>
+ <dt>Allow-Approximate</dt>
+ <dd>
+ This is a special flag which modifies the message processing to
+ allow approximate results.
+ </dd>
+ </dl>
+ </section>
<section anchor="p2p_bf" numbered="true" toc="default">
<name>Bloomfilter</name>
<t>
@@ -1221,8 +1234,8 @@ Connectivity | |Underlay| |Underlay|
<artwork name="" type="" align="left" alt=""><![CDATA[
0 8 16 24 32 40 48 56
+---+-----+-----+-----+-----+-----+-----+-----+
-| TYPE | SIZE | NODEID /
-+---+-----+-----+-----+ (variable length) /
+| NODEID /
++ /
/ /
+---+-----+-----+-----+-----+-----+-----+-----+
| ADDRESSES /
@@ -1313,6 +1326,13 @@ tor+onionv3://rasdflkjasdfliasduf.onion/
need to be invested over time.
</t>
</section>
+ <section anchor="iana" numbered="true" toc="default">
+ <name>IANA Considerations</name>
+ <t>
+ TODO: URI handler for "common" URI handler that Underlays may want
+ to use as part of HELLOs.
+ </t>
+ </section>
<section anchor="gana" numbered="true" toc="default">
<name>GANA Considerations</name>
<t>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [lsd0004] branch master updated: minor,
gnunet <=