summaryrefslogtreecommitdiff
path: root/draft-schanzen-r5n.xml
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-08-20 15:21:05 +0200
committerChristian Grothoff <grothoff@gnunet.org>2023-08-20 15:21:05 +0200
commit34d4fc56a3a058ce2e30b71d262f5724d99bd163 (patch)
treefb79ed737d2874cebf9661e9f179950d4928201b /draft-schanzen-r5n.xml
parent167f106b942033b1ef00c0e7671f85df3a78dd63 (diff)
downloadlsd0004-34d4fc56a3a058ce2e30b71d262f5724d99bd163.tar.gz
lsd0004-34d4fc56a3a058ce2e30b71d262f5724d99bd163.zip
take pass at terminology, suggest changes to disambiguate 'address'
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r--draft-schanzen-r5n.xml95
1 files changed, 51 insertions, 44 deletions
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index a46db61..1601264 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -194,12 +194,12 @@
194 <t> 194 <t>
195 is a UTF-8 <xref target="RFC3629"/> URI 195 is a UTF-8 <xref target="RFC3629"/> URI
196 <xref target="RFC3986"/> which can be 196 <xref target="RFC3986"/> which can be
197 used to contact a peer. 197 used to contact a <em>Peer</em>.
198 An example of an addressing scheme used in 198 An example of an addressing scheme used in
199 this document is "r5n+ip+tcp", which refers to a standard TCP/IP socket 199 this document is "r5n+ip+tcp", which refers to a standard TCP/IP socket
200 connection. The "hier"-part of the URI must provide a suitable 200 connection. The "hier"-part of the URI must provide a suitable
201 address for the given addressing scheme. 201 address for the given addressing scheme.
202 The following are non-normative examples of address strings: 202 The following are non-normative examples of <em>Address</em> strings:
203 </t> 203 </t>
204 <figure title="Example Address URIs."> 204 <figure title="Example Address URIs.">
205 <artwork name="" type="" align="left" alt=""><![CDATA[ 205 <artwork name="" type="" align="left" alt=""><![CDATA[
@@ -211,119 +211,126 @@ gnunet+tcp://12.3.4.5/
211 </dd> 211 </dd>
212 <dt>Applications</dt> 212 <dt>Applications</dt>
213 <dd> 213 <dd>
214 Applications are components which directly use the DHT overlay 214 <em>Application</em>s are higher-layer components which directly use the DHT overlay
215 interfaces. Possible applications include the GNU Name System 215 interfaces. Possible <em>Application</em>s include the GNU Name System
216 <xref target="I-D.schanzen-gns"/> and the GNUnet 216 <xref target="I-D.schanzen-gns"/> and the GNUnet
217 Confidential Ad-hoc Decentralized End-to-End Transport (CADET) 217 Confidential Ad-hoc Decentralized End-to-End Transport (CADET)
218 <xref target="cadet"/>. 218 <xref target="cadet"/>.
219 </dd> 219 </dd>
220 <dt>Application API</dt> 220 <dt>Application API</dt>
221 <dd> 221 <dd>
222 The application API exposes the core operations of the DHT overlay 222 The <em>Application API</em> exposes the core operations of the DHT overlay
223 to applications. 223 to <em>Applications</em>.
224 This includes storing blocks in the DHT and retrieving blocks from the DHT. 224 This includes storing <em>Block</em>s in the DHT and retrieving
225 <em>Block</em>s from the DHT.
225 </dd> 226 </dd>
226 <dt>Block</dt> 227 <dt>Block</dt>
227 <dd> 228 <dd>
228 Variable-size unit of payload stored in the DHT 229 Variable-size unit of payload stored in the DHT
229 under a <tt>Key</tt>. 230 under a <em>Key</em>.
230 In the context of &quot;key-value stores&quot; this 231 In the context of &quot;key-value stores&quot; this
231 refers to &quot;value&quot; stored under a key. 232 refers to &quot;value&quot; stored under a <em>Key</em>.
232 </dd> 233 </dd>
233 <dt>Block Storage</dt> 234 <dt>Block Storage</dt>
234 <dd> 235 <dd>
235 The <tt>Block Storage</tt> component is used to persist and manage 236 The <em>Block Storage</em> component is used to persist and manage
236 <tt>Block</tt> data by peers. 237 <em>Block</em>s stored by <em>Peer</em>s.
237 It includes logic for enforcing storage quotas, caching strategies and 238 It includes logic for enforcing storage quotas, caching strategies and
238 data validation. 239 <em>Block</em> validation.
239 </dd> 240 </dd>
240 <dt>Block-Type</dt> 241 <dt>Block-Type</dt>
241 <dd> 242 <dd>
242 A unique 32-bit value identifying the data format of a <tt>Block</tt>. 243 A unique 32-bit value identifying the data format of a <em>Block</em>.
243 Block-Types are either private or registered in the GANA block type registry (see 244 <em>Block-Types</em> are either private or registered in the GANA block type registry (see
244 <xref target="gana_block_type"/>). 245 <xref target="gana_block_type"/>).
245 </dd> 246 </dd>
246 <dt>Bootstrapping</dt> 247 <dt>Bootstrapping</dt>
247 <dd> 248 <dd>
248 Bootstrapping is the initial process of establishing a connection to the peer-to-peer 249 <em>Bootstrapping</em> is the initial process of establishing a connection
250 to the peer-to-peer
249 network. 251 network.
250 This initially requires an initial, non-empty set of reachable peers and corresponding 252 This initially requires an initial, non-empty set of reachable <em>Peer</em>s and corresponding
251 addresses supported by the implementation to connect to. 253 <em>Address</em>es supported by the implementation to connect to.
252 </dd> 254 </dd>
253 <dt>Initiator</dt> 255 <dt>Initiator</dt>
254 <dd> 256 <dd>
255 The peer that initially creates and sends a DHT protocol message (<xref target="p2p_hello"/>, 257 The <em>Peer</em> that initially creates and sends a DHT protocol message (<xref target="p2p_hello"/>,
256 <xref target="p2p_put"/>, <xref target="p2p_get"/>, <xref target="p2p_result"/>). 258 <xref target="p2p_put"/>, <xref target="p2p_get"/>, <xref target="p2p_result"/>).
257 </dd> 259 </dd>
258 <dt>HELLO block</dt> 260 <dt>HELLO block</dt>
259 <dd> 261 <dd>
260 A <tt>HELLO</tt> block is a block with a dedicated block type and is specified in this document. 262 A <tt>HELLO block</tt> is a <em>Block</em> with a <em>Block-Type</em> <tt>DHT_HELLO</tt> (13).
261 The <tt>HELLO</tt> block is used to store and retrieve Peer addresses. 263 A <tt>HELLO block</tt> is used to store and retrieve <em>Address</em>es of a <em>Peer</em>.
262 In this document, <tt>HELLO</tt> blocks are used by the peer discovery mechanism. 264 In this document, <tt>HELLO</tt> blocks are used by the peer discovery mechanism.
263 </dd> 265 </dd>
264 <dt>HELLO URL</dt> 266 <dt>HELLO URL</dt>
265 <dd> 267 <dd>
266 <tt>HELLO</tt> URLs are <tt>HELLO</tt> blocks in a URL representation. 268 <tt>HELLO</tt> URLs are <tt>HELLO</tt> blocks represented as URLs.
267 They can used for out-of-band exchanges of peer information and are used for 269 They can used for out-of-band exchanges of <em>Peer</em> <em>Address</em>
268 address update signalling messages to neighbours. Example HELLO URLs and their 270 information and are used for
271 address update signalling messages to <em>Neighbours</em>. Example HELLO URLs and their
269 format can be found in <xref target="hello_url"/>. 272 format can be found in <xref target="hello_url"/>.
270 </dd> 273 </dd>
271 <dt>Key</dt> 274 <dt>Key</dt>
272 <dd> 275 <dd>
273 512-bit identifier of a location in the DHT. Multiple <tt>Block</tt>s can be 276 512-bit identifier of a location in the DHT. Multiple <tt>Block</tt>s can be
274 stored under the same key. <tt>Peer Addresses</tt> are valid keys. 277 stored under the same <em>Key</em>. A <em>Peer Address</em> is also a <tt>Key</tt>.
275 In the context of &quot;key-value stores&quot; this 278 In the context of &quot;key-value stores&quot; this
276 refers to &quot;key&quot; under which values (blocks) are stored. 279 refers to &quot;key&quot; under which values (<em>Block</em>s) are stored.
277 </dd> 280 </dd>
278 <dt>Message Processing</dt> 281 <dt>Message Processing</dt>
279 <dd> 282 <dd>
280 The Message Processing component processes requests from and 283 The <em>Message Processing</em> component of the DHT implementation processes
281 generates responses to applications and the underlay network. 284 requests from and generates responses to <em>Application</em>s
285 and the <em>Underlay Interface</em>.
282 </dd> 286 </dd>
283 <dt>Neighbor</dt> 287 <dt>Neighbor</dt>
284 <dd> 288 <dd>
285 A neighbor is a peer which is directly able to communicate 289 A neighbor is a <em>Peer</em> which is directly able to communicate
286 with our peer via the <tt>Underlay Interface</tt>. 290 with our <em>Peer</em> via the <em>Underlay Interface</em>.
287 </dd> 291 </dd>
288 <dt>Peer</dt> 292 <dt>Peer</dt>
289 <dd> 293 <dd>
290 A host that is participating in the overlay. Peers are 294 A host that is participating in the overlay by running an implementation
295 of the DHT protocol. Each participating host is
291 responsible for holding some portion of the data that has been 296 responsible for holding some portion of the data that has been
292 stored in the overlay, and they are responsible for routing 297 stored in the overlay, and they are responsible for routing
293 messages on behalf of other hosts as needed by the Routing 298 messages on behalf of other <em>Peer</em>s as needed by the <em>Routing
294 Algorithm. 299 Algorithm</em>.
295 </dd> 300 </dd>
301 <!-- FIXME: this overloads the term 'address'. We should use 'Peer Identity'! -->
296 <dt>Peer Address</dt> 302 <dt>Peer Address</dt>
297 <dd> 303 <dd>
298 The <tt>Peer Address</tt> is the identifier used on the Overlay 304 The <em>Peer Address</em> is the identifier used on the overlay
299 to address a peer. 305 to identify a <em>Peer</em>. It is a SHA-512 hash of the <tt>Peer ID</tt>.
300 It is a SHA-512 hash of the <tt>Peer ID</tt>.
301 </dd> 306 </dd>
307 <!-- FIXME: this obscures the public key nature. We should use "Peer Public Key"! -->
302 <dt>Peer ID</dt> 308 <dt>Peer ID</dt>
303 <dd> 309 <dd>
304 The <tt>Peer ID</tt> is the public key which is used to authenticate 310 The <em>Peer ID</em> is the public key which is used to authenticate
305 a peer in the underlay. 311 a <em>Peer</em> in the underlay.
306 The Peer ID is the public key of the corresponding 312 The <em>Peer ID</em> is the public key of the corresponding
307 Ed25519<xref target="ed25519" /> peer private key. 313 Ed25519<xref target="ed25519" /> peer private key.
308 </dd> 314 </dd>
309 <dt>Routing</dt> 315 <dt>Routing</dt>
310 <dd> 316 <dd>
311 The Routing component includes the routing table as well as 317 The <em>Routing</em> component includes the routing table as well as
312 routing and peer selection logic. It facilitates the R<sup>5</sup>N routing 318 routing and <em>Peer</em> selection logic. It facilitates the R<sup>5</sup>N routing
313 algorithm with required data structures and algorithms. 319 algorithm with required data structures and algorithms.
314 </dd> 320 </dd>
315 <dt>Responsible Peer</dt> 321 <dt>Responsible Peer</dt>
316 <dd> 322 <dd>
317 The peer <tt>N</tt> that is responsible for a specific key <tt>K</tt>, as 323 The <em>Peer</em> <tt>N</tt> that is responsible for a specific key <tt>K</tt>, as
318 defined by the <tt>SelectClosestPeer(K, P)</tt> algorithm (see 324 defined by the <tt>SelectClosestPeer(K, P)</tt> algorithm (see
319 <xref target="routing"/>. 325 <xref target="routing"/>.
320 </dd> 326 </dd>
321 <dt>Underlay Interface</dt> 327 <dt>Underlay Interface</dt>
322 <dd> 328 <dd>
323 The Underlay Interface is an abstraction layer on top of the 329 The <em>Underlay Interface</em> is an abstraction layer on top of the
324 supported links of a peer. Peers may be linked by a variety of 330 supported links of a <em>Peer</em>. Peers may be linked by a variety of
325 different transports, including "classical" protocols such as 331 different transports, including "classical" protocols such as
326 TCP, UDP and TLS or advanced protocols such as GNUnet, I2P or Tor. 332 TCP, UDP and TLS or higher-layer protocols such as GNUnet, I2P or Tor.
333 <!-- FIXME: add references to GNUnet/I2P/Tor here! -->
327 </dd> 334 </dd>
328 </dl> 335 </dl>
329 </section> 336 </section>