diff options
author | Christian Grothoff <grothoff@gnunet.org> | 2023-08-20 15:21:05 +0200 |
---|---|---|
committer | Christian Grothoff <grothoff@gnunet.org> | 2023-08-20 15:21:05 +0200 |
commit | 34d4fc56a3a058ce2e30b71d262f5724d99bd163 (patch) | |
tree | fb79ed737d2874cebf9661e9f179950d4928201b /draft-schanzen-r5n.xml | |
parent | 167f106b942033b1ef00c0e7671f85df3a78dd63 (diff) | |
download | lsd0004-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.xml | 95 |
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 "key-value stores" this | 231 | In the context of "key-value stores" this |
231 | refers to "value" stored under a key. | 232 | refers to "value" 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 "key-value stores" this | 278 | In the context of "key-value stores" this |
276 | refers to "key" under which values (blocks) are stored. | 279 | refers to "key" 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> |