aboutsummaryrefslogtreecommitdiff
path: root/draft-schanzen-gns.xml
diff options
context:
space:
mode:
Diffstat (limited to 'draft-schanzen-gns.xml')
-rw-r--r--draft-schanzen-gns.xml64
1 files changed, 61 insertions, 3 deletions
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index 306064a..4b08e76 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -191,6 +191,12 @@
191 An application refers to a component which uses a GNS implementation 191 An application refers to a component which uses a GNS implementation
192 to resolve names into records and processes its contents. 192 to resolve names into records and processes its contents.
193 </dd> 193 </dd>
194 <dt>Resolver</dt>
195 <dd>
196 The resolver is the part of the GNS implementation which implements
197 the recursive name resolution logic defined in
198 <xref target="resolution"/>.
199 </dd>
194 <dt>Name</dt> 200 <dt>Name</dt>
195 <dd> 201 <dd>
196 A name in GNS is a domain name as defined in <xref target="RFC8499"/> 202 A name in GNS is a domain name as defined in <xref target="RFC8499"/>
@@ -326,8 +332,8 @@
326 </t> 332 </t>
327 <t> 333 <t>
328 Zone contents are encrypted and signed 334 Zone contents are encrypted and signed
329 before being published in a distributed key-value storage 335 before being published in a distributed key-value storage (<xref target="publish"/>)
330 (<xref target="publish"/>). 336 as illustrated in <xref target="figure_arch_publish"/>.
331 In this process, unique zone identification is hidden from the network 337 In this process, unique zone identification is hidden from the network
332 through the use of key blinding. 338 through the use of key blinding.
333 Key blinding allows the creation of signatures for zone contents 339 Key blinding allows the creation of signatures for zone contents
@@ -347,9 +353,35 @@
347 based on <xref target="RFC7363" />, <xref target="Kademlia" /> or 353 based on <xref target="RFC7363" />, <xref target="Kademlia" /> or
348 <xref target="R5N" />. 354 <xref target="R5N" />.
349 </t> 355 </t>
356 <figure anchor="figure_arch_publish" title="An example diagram of two hosts publishing GNS zones.">
357 <artwork name="" type="" align="left" alt=""><![CDATA[
358 Local Host | Distributed | Remote Host
359 | Storage |
360 | |
361 | +--------+ |
362 | / /| |
363 +---------+ Publish | +--------+ | | Publish +---------+
364 | | Zones | | | | | Zones | |
365 | GNS |----------|->| Public | |<-|----------| GNS |
366 | | | | Zones | | | | |
367 +---------+ | | |/ | +---------+
368 A | +--------+ | A
369 | | | |
370 +---------+ | | +---------+
371 / | /| | | / | /|
372 +---------+ | | | +---------+ |
373 | | | | | | | |
374 | Local | | | | | Local | |
375 | Zones | | | | | Zones | |
376 | |/ | | | |/
377 +---------+ | | +---------+
378 ]]></artwork>
379 </figure>
350 <t> 380 <t>
381 Applications use the GNS implementation to lookup GNS names.
351 Starting from a configurable start zone, names are resolved by following zone 382 Starting from a configurable start zone, names are resolved by following zone
352 delegations. For each label in a name, the recursive GNS resolver 383 delegations recursively as illustrated in <xref target="figure_arch_resolv"/>.
384 For each label in a name, the recursive GNS resolver
353 fetches the respective record from the storage layer (<xref target="resolution"/>). 385 fetches the respective record from the storage layer (<xref target="resolution"/>).
354 Without knowledge of the label values and the zone keys, the 386 Without knowledge of the label values and the zone keys, the
355 different derived keys are unlinkable both to the original zone key and to each 387 different derived keys are unlinkable both to the original zone key and to each
@@ -363,6 +395,32 @@
363 with the ability to verify the integrity of the published information 395 with the ability to verify the integrity of the published information
364 without disclosing the originating zone. 396 without disclosing the originating zone.
365 </t> 397 </t>
398 <figure anchor="figure_arch_resolv" title="High-level view of the GNS resolution process.">
399 <artwork name="" type="" align="left" alt=""><![CDATA[
400 Local Host | Distributed
401 | Storage
402 |
403 | +--------+
404 | / /|
405 | +--------+ |
406+-----------+ Name +---------+ Recursive | | | |
407| | Lookup | | Resolution | | Public | |
408|Application|----------| GNS |-------------|->| Zones | |
409| |<---------| |<------------|--| |/
410+-----------+ Results +---------+ Intermediate| +--------+
411 A Results |
412 | |
413 +---------+ |
414 / | /| |
415 +---------+ | |
416 | | | |
417 | Start | | |
418 | Zones | | |
419 | |/ |
420 +---------+ |
421 ]]></artwork>
422 </figure>
423
366 <t> 424 <t>
367 In the remainder of this document, the "implementer" refers to the developer building 425 In the remainder of this document, the "implementer" refers to the developer building
368 a GNS implementation including, for example, zone management tools and 426 a GNS implementation including, for example, zone management tools and