Files
i2p.www/i2p2www/spec/proposals/133-introducer-expiration.rst

86 lines
1.8 KiB
ReStructuredText
Raw Normal View History

2017-02-05 15:53:09 +00:00
=====================
Introducer Expiration
=====================
.. meta::
:author: zzz
:created: 2017-02-05
:thread: http://zzz.i2p/topics/2230
:lastupdated: 2017-08-09
2017-04-13 16:32:34 +00:00
:status: Closed
:target: 0.9.30
:implementedin: 0.9.30
2017-02-05 15:53:09 +00:00
.. contents::
Overview
========
2017-04-07 10:17:31 +00:00
This proposal is about improving the success rate for introductions. See
[TRAC-TICKET]_.
2017-02-05 15:53:09 +00:00
Motivation
==========
2017-04-07 10:17:31 +00:00
Introducers expire after a certain time, but that info isn't published in the
[RouterInfo]_. Routers must currently use heuristics to estimate when an
introducer is no longer valid.
2017-02-05 15:53:09 +00:00
Design
======
2017-04-07 10:17:31 +00:00
In an SSU [RouterAddress]_ containing introducers, the publisher may optionally
include expiration times for each introducer.
2017-02-05 15:53:09 +00:00
Specification
=============
2017-04-07 10:17:31 +00:00
.. raw:: html
2017-02-05 15:53:09 +00:00
2017-04-07 10:17:31 +00:00
{% highlight lang='dataspec' %}
iexp{X}={nnnnnnnnnn}
2017-02-05 15:53:09 +00:00
2017-04-07 10:17:31 +00:00
X :: The introducer number (0-2)
2017-02-05 15:53:09 +00:00
2017-04-07 10:17:31 +00:00
nnnnnnnnnn :: The time in seconds (not ms) since the epoch.
{% endhighlight %}
2017-02-05 15:53:09 +00:00
2017-04-07 10:17:31 +00:00
Notes
`````
* Each expiration must be greater than the publish date of the [RouterInfo]_,
and less than 6 hours after the publish date of the RouterInfo.
* Publishing routers and introducers should attempt to keep the introducer valid
until expiration, however there is no way for them to guarantee this.
* Routers should not use a published introducer after its expiration.
* The introducer expirations are in the [RouterAddress]_ mapping.
They are not the (currently unused) 8-byte expiration field in the [RouterAddress]_.
2017-04-07 10:17:31 +00:00
Example: ``iexp0=1486309470``
2017-02-05 15:53:09 +00:00
Migration
=========
No issues. Implementation is optional.
Backwards compatibility is assured, as older routers will ignore unknown parameters.
2017-04-07 10:17:31 +00:00
References
==========
.. [RouterAddress]
{{ ctags_url('RouterAddress') }}
.. [RouterInfo]
{{ ctags_url('RouterInfo') }}
2017-02-05 15:53:09 +00:00
2017-04-07 10:17:31 +00:00
.. [TRAC-TICKET]
http://{{ i2pconv('trac.i2p2.i2p') }}/ticket/1352