Add router su3 reseed spec

Embedding guide updates
This commit is contained in:
zzz
2014-11-23 17:22:13 +00:00
parent 0946244a86
commit 528f105123
3 changed files with 71 additions and 0 deletions

View File

@@ -5,6 +5,11 @@
{% block content %}
<h2>{% trans %}Overview{% endtrans %}</h2>
<p>{% trans -%}
This page is about bundling the entire I2P router binary with your application.
It is not about writing an application to work with I2P (either bundled or external).
{%- endtrans %}</p>
<p>{% trans -%}
Lots of projects are bundling, or talking about bundling, I2P. That's great if done right.
If done wrong, it could cause real harm to our network.
@@ -223,6 +228,17 @@ If you're building Debian / Ubuntu packages, you should require the I2P package
You almost certainly do not need susimail, susidns, the router console, and i2psnark, for example.
{%- endtrans %}</p>
<p>
<ul>
<li>{% trans -%}
You may also wish to bundle a hosts.txt file.
{%- endtrans %}</li>
<li>{% trans -%}
Be sure to specify a Java 6 bootclasspath if compiling with Java 8.
{%- endtrans %}</li>
</ul>
</p>
<h3>{% trans %}Datagram (DHT) considerations{% endtrans %}</h3>

View File

@@ -124,6 +124,7 @@ Traditionally used only by Java applications and higher-level APIs.
<li><a href="{{ site_url('docs/how/network-database') }}">{{ _('Network database overview, details, and threat analysis') }}</a></li>
<li><a href="{{ site_url('docs/how/cryptography') }}#SHA256">{{ _('Cryptographic hashes') }}</a></li>
<li><a href="{{ site_url('docs/how/cryptography') }}#sig">{{ _('Cryptographic signatures') }}</a></li>
<li><a href="{{ site_url('docs/spec/updates') }}">{{ _('Router reseed specification') }}</a></li>
</ul>
<h3>{% trans %}Router Message Protocol{% endtrans %}</h3>
@@ -182,6 +183,8 @@ Traditionally used only by Java applications and higher-level APIs.
<ul><li>
<a href="{{ site_url('docs/spec/updates') }}">{{ _('Router software updates') }}</a>
</li><li>
<a href="{{ site_url('docs/spec/updates') }}">{{ _('Router reseed specification') }}</a>
</li><li>
<a href="{{ site_url('misc/jbigi') }}">{{ _('Native BigInteger Library') }}</a>
</li><li>
{{ _('Time synchronization and NTP') }}

View File

@@ -305,6 +305,58 @@ All values are in network byte order (big endian).
</p>
<h3>{% trans %}SU3 Reseed File Specification{% endtrans %}</h3>
<p>{% trans -%}
As of 0.9.14, reseed data is delivered in an "su3" file format.
{%- endtrans %}</p>
<h4>{% trans %}Goals:{% endtrans %}</h4>
<ul>
<li>{% trans -%}
Signed files with strong signatures and trusted certificates
to prevent man-in-the-middle attacks that could boot victims into a separate, untrusted network.
{%- endtrans %}</li>
<li>{% trans -%}
Use su3 file format already used for updates, reseeding, and plugins
{%- endtrans %}</li>
<li>{% trans -%}
Single compressed file to speed up reseeding, which was slow to fetch 200 files
{%- endtrans %}</li>
</ul>
<h4>{% trans %}Specification:{% endtrans %}</h4>
<p><ol>
<li>{% trans -%}
The file must be named "i2pseeds.su3".
{%- endtrans %}</li>
<li>{% trans -%}
The file must be in the same directory as the router infos on the web server.
{%- endtrans %}</li>
<li>{% trans -%}
A router will first try to fetch (index URL)/i2pseeds.su3; if that fails it will fetch the index URL
and then fetch the individual router info files found in the links.
{%- endtrans %}</li>
</ol></p>
<p><b>SU3 Details:</b></p>
<ul><li>
SU3 Content Type: 3 (RESEED)
</li><li>
SU3 File Type: 0 (ZIP)
</li><li>
SU3 Version: Seconds since the epoch, in ASCII (date +%s)
</li><li>
Router info files in the zip file must be at the "top level". No directories are in the zip file.
</li><li>
Router info files must be named "routerInfo-(44 character base 64 router hash).dat", as in the old reseed mechanism.
The I2P base 64 alphabet must be used.
</li></ul>
<h3>{% trans %}SU3 News File Specification{% endtrans %}</h3>
<p>{% trans -%}
As of 0.9.17, the news is delivered in an "su3" file format.