lsd0004

LSD0004: R5N Distributed Hash Table
Log | Files | Refs

commit 938a15594f9cf9405346528f7d091dcab0c0ea20
Author: Martin Schanzenbach <mschanzenbach@posteo.de>
Date:   Sat, 22 May 2021 22:59:56 +0200

initial commit

Diffstat:
AMakefile | 8++++++++
Adraft-schanzen-r5n.xml | 209+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 217 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile @@ -0,0 +1,8 @@ +all: txt html + +html: + xml2rfc --html draft-schanzen-r5n.xml + +txt: + xml2rfc draft-schanzen-r5n.xml + diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml @@ -0,0 +1,209 @@ +<?xml version='1.0' encoding='utf-8'?> +<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent" [ +<!ENTITY RFC1034 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1034.xml"> +<!ENTITY RFC1035 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1035.xml"> +<!ENTITY RFC2119 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"> +<!ENTITY RFC2782 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2782.xml"> +<!ENTITY RFC3629 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml"> +<!ENTITY RFC3686 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3686.xml"> +<!ENTITY RFC3826 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3826.xml"> +<!ENTITY RFC3912 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3912.xml"> +<!ENTITY RFC4648 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4648.xml"> +<!ENTITY RFC5869 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5869.xml"> +<!ENTITY RFC5890 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5890.xml"> +<!ENTITY RFC5891 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5891.xml"> +<!ENTITY RFC6781 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6781.xml"> +<!ENTITY RFC6895 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6895.xml"> +<!ENTITY RFC6979 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6979.xml"> +<!ENTITY RFC7748 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7748.xml"> +<!ENTITY RFC8032 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8032.xml"> +<!ENTITY RFC8126 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8126.xml"> +]> +<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> +<?rfc strict="yes" ?> +<?rfc toc="yes" ?> +<?rfc symrefs="yes"?> +<?rfc sortrefs="yes" ?> +<?rfc compact="yes" ?> +<?rfc subcompact="no" ?> +<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-schanzen-r5n-00" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3"> + <!-- xml2rfc v2v3 conversion 2.26.0 --> + <front> + <title abbrev="The R5N Distributed Hash Table"> + The R5N Distributed Hash Table + </title> + <seriesInfo name="Internet-Draft" value="draft-schanzen-gns-04"/> + <author fullname="Martin Schanzenbach" initials="M." surname="Schanzenbach"> + <organization>GNUnet e.V.</organization> + <address> + <postal> + <street>Boltzmannstrasse 3</street> + <city>Garching</city> + <code>85748</code> + <country>DE</country> + </postal> + <email>schanzen@gnunet.org</email> + </address> + </author> + <author fullname="Christian Grothoff" initials="C." surname="Grothoff"> + <organization>Berner Fachhochschule</organization> + <address> + <postal> + <street>Hoeheweg 80</street> + <city>Biel/Bienne</city> + <code>2501</code> + <country>CH</country> + </postal> + <email>grothoff@gnunet.org</email> + </address> + </author> + <author fullname="Bernd Fix" initials="B." surname="Fix"> + <organization>GNUnet e.V.</organization> + <address> + <postal> + <street>Boltzmannstrasse 3</street> + <city>Garching</city> + <code>85748</code> + <country>DE</country> + </postal> + <email>fix@gnunet.org</email> + </address> + </author> + + <!-- Meta-data Declarations --> + <area>General</area> + <workgroup>Independent Stream</workgroup> + <keyword>distributed hash tables</keyword> + <abstract> + <t>This document contains the R5N DHT technical specification.</t> + </abstract> + </front> + <middle> + <section anchor="introduction" numbered="true" toc="default"> + <name>Introduction</name> + <t> + Distributed Hash Tables (DHTs) are a key data structure for the + construction of completely decentralized applications. + DHTs are important because they generally provide a robust and + efficient means to distribute the storage and retrieval of + key-value pairs. + </t> + <t> + This document contains the technical specification + of the R5N DHT <xref target="R5N" />, a secure DHT routing algorithm + and data structure for decentralized applications. + </t> + <t> + This document defines the normative wire format of peer-to-peer + messages, routing algorithms, cryptographic routines and security + considerations for use by implementors. + </t> + <t> + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL + NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described + in <xref target="RFC2119"/>. + </t> + <t> + + </t> + </section> + <section anchor="p2p_messages" numbered="true" toc="default"> + <name>Peer-to-peer messages</name> + <section anchor="p2p_put" numbered="true" toc="default"> + <name>PUT message</name> + </section> + <section anchor="p2p_get" numbered="true" toc="default"> + <name>GET message</name> + </section> + <section anchor="p2p_result" numbered="true" toc="default"> + <name>RESULT message</name> + </section> + </section> + <section anchor="security" numbered="true" toc="default"> + <name>Security Considerations</name> + </section> + <section anchor="gana" numbered="true" toc="default"> + <name>GANA Considerations</name> + <t> + GANA <xref target="GANA" /> + is requested to create a "DHT Block Types" registry. + The registry shall record for each entry: + </t> + <ul> + <li>Name: The name of the record type (case-insensitive ASCII + string, restricted to alphanumeric characters</li> + <li>Number: 32-bit, above 65535</li> + <li>Comment: Optionally, a brief English text describing the purpose of + the record type (in UTF-8)</li> + <li>Contact: Optionally, the contact information of a person to contact for + further information</li> + <li>References: Optionally, references describing the record type + (such as an RFC)</li> + </ul> + <t> + The registration policy for this sub-registry is "First Come First + Served", as described in <xref target="RFC8126"/>. + GANA is requested to populate this registry as follows: + </t> + <figure anchor="figure_btypenums"> + <artwork name="" type="" align="left" alt=""><![CDATA[ +Number | Name | Contact | References | Description +-------+---------+---------+------------+------------------------- + + ]]></artwork> + </figure> + <t> + GANA is requested to amend the "GNUnet Signature Purpose" registry + as follows: + </t> + <figure anchor="figure_purposenums"> + <artwork name="" type="" align="left" alt=""><![CDATA[ +Purpose | Name | References | Description +--------+-----------------+------------+-------------------------- + ]]></artwork> + </figure> + </section> + <!-- gana --> + <section> + <name>Test Vectors</name> + </section> + </middle> + <back> + <references> + <name>Normative References</name> + + &RFC2119; + &RFC8126; + + <reference anchor="GANA" target="https://gana.gnunet.org/"> + <front> + <title>GNUnet Assigned Numbers Authority (GANA)</title> + <author><organization>GNUnet e.V.</organization> + </author> + <date month="April" year="2020" /> + </front> + </reference> + <reference anchor="R5N" target="https://doi.org/10.1109/ICNSS.2011.6060022"> + <front> + <title>R5N: Randomized recursive routing for restricted-route networks</title> + <author initials="N. S." surname="Evans" fullname="Nathan S. Evans"> + <organization>Technische Universität München</organization> + </author> + + <author initials="C." surname="Grothoff" + fullname="Christian Grothoff"> + <organization>Technische Universität München</organization> + </author> + <date year="2011"/> + </front> + </reference> + + + + </references> + <!-- Change Log + v00 2017-07-23 MS Initial version + --> + </back> + </rfc>