I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit c15662fe authored by zzz's avatar zzz
Browse files

Clarify netdb routing key

Implement I2NP DLM type flag
parent 3c0d1b0f
No related branches found
No related tags found
No related merge requests found
{% extends "global/layout.html" %} {% extends "global/layout.html" %}
{% block title %}{% trans %}The Network Database{% endtrans %}{% endblock %} {% block title %}{% trans %}The Network Database{% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}September 2014{% endtrans %}{% endblock %} {% block lastupdated %}{% trans %}October 2014{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.15{% endblock %} {% block accuratefor %}0.9.15{% endblock %}
{% block content %} {% block content %}
<h2>{% trans %}Overview{% endtrans %}</h2> <h2>{% trans %}Overview{% endtrans %}</h2>
...@@ -327,8 +327,9 @@ The SHA256 hash of the key being looked up or stored is XOR-ed with ...@@ -327,8 +327,9 @@ The SHA256 hash of the key being looked up or stored is XOR-ed with
the hash of the router in question to determine closeness. the hash of the router in question to determine closeness.
A modification to this algorithm is done to increase the costs of <a href="#sybil-partial">Sybil attacks</a>. A modification to this algorithm is done to increase the costs of <a href="#sybil-partial">Sybil attacks</a>.
Instead of the SHA256 hash of the key being looked up of stored, the SHA256 hash is taken Instead of the SHA256 hash of the key being looked up of stored, the SHA256 hash is taken
of the 32-byte binary key appended with the UTC date represented as an 8-byte ASCII string yyyyMMdd, i.e. SHA256(key + yyyyMMdd). of the 32-byte binary search key appended with the UTC date represented as an 8-byte ASCII string yyyyMMdd, i.e. SHA256(key + yyyyMMdd).
This is called the "routing key", and it changes every day at midnight UTC. This is called the "routing key", and it changes every day at midnight UTC.
Only the search key is modified in this way, not the floodfill router hashes.
The daily transformation of the DHT is sometimes called "keyspace rotation", The daily transformation of the DHT is sometimes called "keyspace rotation",
although it isn't strictly a rotation. although it isn't strictly a rotation.
{%- endtrans %}</p> {%- endtrans %}</p>
......
{% extends "global/layout.html" %} {% extends "global/layout.html" %}
{% block title %}I2NP Specification{% endblock %} {% block title %}I2NP Specification{% endblock %}
{% block lastupdated %}September 2014{% endblock %} {% block lastupdated %}October 2014{% endblock %}
{% block accuratefor %}0.9.15{% endblock %} {% block accuratefor %}0.9.16{% endblock %}
{% block content %} {% block content %}
<p> <p>
The I2P Network Protocol (I2NP), The I2P Network Protocol (I2NP),
...@@ -33,7 +33,7 @@ A basic summary of the I2NP protocol versions is as follows. For details, see be ...@@ -33,7 +33,7 @@ A basic summary of the I2NP protocol versions is as follows. For details, see be
<td align="center">0.9.16</td> <td align="center">0.9.16</td>
<td align="left">RI key certs / ECDSA and EdDSA sig types<br> <td align="left">RI key certs / ECDSA and EdDSA sig types<br>
Note: RSA sig types also supported as of this version, but currently unused<br> Note: RSA sig types also supported as of this version, but currently unused<br>
DLM lookup types (DLM flag bits 3-2) (proposed) DLM lookup types (DLM flag bits 3-2)
</td> </td>
</tr><tr> </tr><tr>
<td align="center">0.9.15</td> <td align="center">0.9.15</td>
...@@ -741,8 +741,10 @@ key :: ...@@ -741,8 +741,10 @@ key ::
from :: from ::
32 bytes 32 bytes
if deliveryFlag == 0, the SHA256 hash of the routerInfo entry this request came from (and to which the reply should be sent) if deliveryFlag == 0, the SHA256 hash of the routerInfo entry this request came from
if deliveryFlag == 1, the SHA256 hash of the reply tunnel gateway (to which the reply should be sent) (to which the reply should be sent)
if deliveryFlag == 1, the SHA256 hash of the reply tunnel gateway
(to which the reply should be sent)
flags :: flags ::
1 byte 1 byte
...@@ -759,7 +761,7 @@ flags :: ...@@ -759,7 +761,7 @@ flags ::
bits 3-2: lookup type flags bits 3-2: lookup type flags
through release 0.9.5, must be set to 00 through release 0.9.5, must be set to 00
as of release 0.9.6, ignored as of release 0.9.6, ignored
as of release 0.9.16 (proposed): as of release 0.9.16:
00 => normal lookup, return RI or LS or DSRM 00 => normal lookup, return RI or LS or DSRM
01 => LS lookup, return LS or DSRM 01 => LS lookup, return LS or DSRM
10 => RI lookup, return RI or DSRM 10 => RI lookup, return RI or DSRM
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment