diff --git a/i2p2www/pages/site/docs/how/network-database.html b/i2p2www/pages/site/docs/how/network-database.html index 28721f6d..ff6f04fa 100644 --- a/i2p2www/pages/site/docs/how/network-database.html +++ b/i2p2www/pages/site/docs/how/network-database.html @@ -1,7 +1,7 @@ {% extends "global/layout.html" %} {% block title %}{% trans %}The Network Database{% endtrans %}{% endblock %} -{% block lastupdated %}{% trans %}April 2018{% endtrans %}{% endblock %} -{% block accuratefor %}0.9.32{% endblock %} +{% block lastupdated %}{% trans %}January 2019{% endtrans %}{% endblock %} +{% block accuratefor %}0.9.38{% endblock %} {% block content %}
{% trans -%} RouterInfos are periodically written to disk so that they are available after a restart. {%- endtrans %}
+{% trans -%} +It may be desirable to persistently store Meta LeaseSets with long expirations. +This is implementation-dependent. +{%- endtrans %}
{% trans -%} @@ -210,7 +217,7 @@ the key derived from the SHA256 of the destination. In addition to these leases, the LeaseSet includes: {%- endtrans %}
{% trans -%} +As of release 0.9.38, three new types of LeaseSets are defined; +LeaseSet2, MetaLeaseSet, and EncryptedLeaseSet. See below. +{%- endtrans %}
+{% trans -%} @@ -247,8 +259,39 @@ Revocations are not fully implemented, and it is unclear if they have any practi This is the only planned use for that signing key, so it is currently unused. {%- endtrans %}
+ +{% trans -%} +As of release 0.9.38, floodfills support a new LeaseSet2 structure. +This structure is very similar to the old LeaseSet structure, and serves the same purpose. +The new structure provides the flexibility required to support new +encryption types, multiple encryption types, options, offline signing keys, +and other features. +See proposal 123 for details. +{%- endtrans %}
+ + +{% trans -%} +As of release 0.9.38, floodfills support a new Meta LeaseSet structure. +This structure provides a tree-like structure in the DHT, to refer to other LeaseSets. +Using Meta LeaseSets, a site may implement large multihomed services, where several +different Destinations are used to provide a common service. +The entries in a Meta LeaseSet are Destinations or other Meta LeaseSets, +and may have long expirations, up to 18.2 hours. +Using this facility, it should be possible to run hundreds or thousands of Destinations hosting a common service. +See proposal 123 for details. +{%- endtrans %}
+ + +{% trans -%} +This section describes the old, insecure method of encrypting +LeaseSets using a fixed symmetric key. +See below for the LS2 version of Encrypted LeaseSets. +{%- endtrans %}
+{% trans -%} In an encrypted LeaseSet, all Leases are encrypted with a separate key. The leases may only be decoded, and thus the destination may only be contacted, by those with the key. @@ -257,10 +300,26 @@ Encrypted LeaseSets are not widely used, and it is a topic for future work to research whether the user interface and implementation of encrypted LeaseSets could be improved. {%- endtrans %}
+ +{% trans -%} +As of release 0.9.38, floodfills support a new, EncryptedLeaseSet structure. +The Destination is hidden, and only a blinded public key and an expiration +are visible to the floodfill. +Only those that have the full Destination may decrypt the structure. +The structure is stored at a DHT location based on the hash of the blinded public key, +not the hash of the Destination. +See proposal 123 for details. +{%- endtrans %}
+ +{% trans -%} -All Leases (tunnels) are valid for 10 minutes; therefore, a LeaseSet expires -10 minutes after the earliest creation time of all its Leases. +For regular LeaseSets, the expiration is the time of the latest expiration of its leases. +For the new LeaseSet2 data structures, the expiration is specified in the header. +For LeaseSet2, the expiration should match the latest expiration of its leases. +For EncryptedLeaseSet and MetaLeaseSet, the expiration may vary, +and maximum expiration may be enforced, to be determined. {%- endtrans %}