diff options
Diffstat (limited to 'draft-schanzen-gns.xml')
-rw-r--r-- | draft-schanzen-gns.xml | 78 |
1 files changed, 70 insertions, 8 deletions
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml index 4e0a9bd..868643e 100644 --- a/draft-schanzen-gns.xml +++ b/draft-schanzen-gns.xml | |||
@@ -1731,7 +1731,7 @@ GET(key) -> value | |||
1731 | <t> | 1731 | <t> |
1732 | Resource records are grouped by their respective labels, | 1732 | Resource records are grouped by their respective labels, |
1733 | encrypted and published together in a single resource records block | 1733 | encrypted and published together in a single resource records block |
1734 | (RRBLOCK) in the storage under a key q: PUT(q, RRBLOCK). | 1734 | (RRBLOCK) in the storage under a key q as illustrated in <xref target="figure_storage_publish"/>. |
1735 | The key q is derived from the zone key and the respective | 1735 | The key q is derived from the zone key and the respective |
1736 | label of the contained records. | 1736 | label of the contained records. |
1737 | The required knowledge of both zone key and label in combination | 1737 | The required knowledge of both zone key and label in combination |
@@ -1742,6 +1742,34 @@ GET(key) -> value | |||
1742 | The implementation <bcp14>MUST</bcp14> use the PUT storage procedure in order to update | 1742 | The implementation <bcp14>MUST</bcp14> use the PUT storage procedure in order to update |
1743 | the zone contents accordingly. | 1743 | the zone contents accordingly. |
1744 | </t> | 1744 | </t> |
1745 | <figure anchor="figure_storage_publish" title="Management and publication of local zones in the distributed storage."> | ||
1746 | <artwork name="" type="" align="left" alt=""><![CDATA[ | ||
1747 | Local Host | Distributed | ||
1748 | | Storage | ||
1749 | | | ||
1750 | | +--------+ | ||
1751 | | / /| | ||
1752 | | +--------+ | | ||
1753 | +-----------+ +---------+ | | | | | ||
1754 | | | | |PUT(q, RRBLOCK) | | Public | | | ||
1755 | | User | | GNS |----------------|->| Zones | | | ||
1756 | | | | | | | |/ | ||
1757 | +-----------+ +---------+ | +--------+ | ||
1758 | | A | | ||
1759 | | | Zone records | | ||
1760 | | | grouped by label | | ||
1761 | | | | | ||
1762 | | +---------+ | | ||
1763 | |Create / Delete / | /| | | ||
1764 | |and Update +---------+ | | | ||
1765 | |Local Zones | | | | | ||
1766 | | | Local | | | | ||
1767 | +-------------->| Zones | | | | ||
1768 | | |/ | | ||
1769 | +---------+ | | ||
1770 | ]]></artwork> | ||
1771 | </figure> | ||
1772 | |||
1745 | <section anchor="blinding" numbered="true" toc="default"> | 1773 | <section anchor="blinding" numbered="true" toc="default"> |
1746 | <name>The Storage Key</name> | 1774 | <name>The Storage Key</name> |
1747 | <t> | 1775 | <t> |
@@ -1957,19 +1985,51 @@ q := SHA-512 (ZKDF-Public(zk, label)) | |||
1957 | Instead, it <bcp14>MUST</bcp14> respond to a resolution request with either the | 1985 | Instead, it <bcp14>MUST</bcp14> respond to a resolution request with either the |
1958 | requested resource record or an error message in case the resolution | 1986 | requested resource record or an error message in case the resolution |
1959 | fails. | 1987 | fails. |
1960 | The following sections detail how resolution is initiated and each | 1988 | <xref target="figure_resolution"/> illustrates how an application |
1961 | iteration in the resolution is processed. | 1989 | requests the lookup of a GNS name (1). |
1962 | </t> | ||
1963 | <t> | ||
1964 | The application <bcp14>MAY</bcp14> provide a desired record type to the resolver. | 1990 | The application <bcp14>MAY</bcp14> provide a desired record type to the resolver. |
1965 | The desired record type is used to guide processing. | 1991 | Subsequently, the Start Zone is determined (2) and the recursive |
1992 | resolution process started. | ||
1993 | This is where the desired record type is used to guide processing. | ||
1966 | For example, if a zone delegation record type is requested, the | 1994 | For example, if a zone delegation record type is requested, the |
1967 | resolution of the apex label in that zone must be skipped, as | 1995 | resolution of the apex label in that zone must be skipped, as |
1968 | the desired record is already found. | 1996 | the desired record is already found. |
1969 | The resolver implementation <bcp14>MUST NOT</bcp14> filter results according to the desired | 1997 | Details on how the resolution process is initiated and each iterative |
1970 | record type. | 1998 | result (3a,3b) in the resolution is processed are provided in the sections below. |
1999 | The results of the lookup are eventually returned to the application (4). | ||
2000 | The implementation <bcp14>MUST NOT</bcp14> filter results | ||
2001 | according to the desired record type. | ||
1971 | Filtering of record sets is typically done by the application. | 2002 | Filtering of record sets is typically done by the application. |
1972 | </t> | 2003 | </t> |
2004 | <figure anchor="figure_resolution" title="The recursive GNS resolution process."> | ||
2005 | <artwork name="" type="" align="left" alt=""><![CDATA[ | ||
2006 | Local Host | Distributed | ||
2007 | | Storage | ||
2008 | | | ||
2009 | | +--------+ | ||
2010 | | / /| | ||
2011 | | +--------+ | | ||
2012 | +-----------+ (1) Name +---------+ | | | | | ||
2013 | | | Lookup | | (3a) GET(q) | | Public | | | ||
2014 | |Application|----------| GNS |-------------------|->| Zones | | | ||
2015 | | |<---------| |<------------------|--| |/ | ||
2016 | +-----------+ (4) +---------+ (3b) RRBLOCK | +--------+ | ||
2017 | Records A | | ||
2018 | | | | ||
2019 | | | | ||
2020 | (2) Determination of | | | ||
2021 | Start Zone | | | ||
2022 | | | | ||
2023 | +---------+ | | ||
2024 | / | /| | | ||
2025 | +---------+ | | | ||
2026 | | | | | | ||
2027 | | Start | | | | ||
2028 | | Zones | | | | ||
2029 | | |/ | | ||
2030 | +---------+ | | ||
2031 | ]]></artwork> | ||
2032 | </figure> | ||
1973 | <section anchor="governance" numbered="true" toc="default"> | 2033 | <section anchor="governance" numbered="true" toc="default"> |
1974 | <name>Start Zones</name> | 2034 | <name>Start Zones</name> |
1975 | <t> | 2035 | <t> |
@@ -2081,6 +2141,8 @@ example.com = zTLD2 := Base32GNS(ztype2||zk2) | |||
2081 | record could not be processed <bcp14>SHOULD</bcp14> be returned in the error | 2141 | record could not be processed <bcp14>SHOULD</bcp14> be returned in the error |
2082 | description. The implementation <bcp14>MAY</bcp14> choose not to return the reason for the failure, | 2142 | description. The implementation <bcp14>MAY</bcp14> choose not to return the reason for the failure, |
2083 | merely complicating troubleshooting for the user. | 2143 | merely complicating troubleshooting for the user. |
2144 | </t> | ||
2145 | <t> | ||
2084 | The next steps depend on the context of the name that is being | 2146 | The next steps depend on the context of the name that is being |
2085 | resolved: | 2147 | resolved: |
2086 | </t> | 2148 | </t> |