Overview
This proposal is about improving the success rate for introductions. See [TRAC-TICKET].
Motivation
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.
Design
In an SSU [RouterAddress] containing introducers, the publisher may optionally include expiration times for each introducer.
Specification
iexp{X}={nnnnnnnnnn}
X :: The introducer number (0-2)
nnnnnnnnnn :: The time in seconds (not ms) since the epoch.
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].
Example: iexp0=1486309470
Migration
No issues. Implementation is optional. Backwards compatibility is assured, as older routers will ignore unknown parameters.
References
[RouterAddress] | (1, 2, 3) http://syndie.i2p2.de/spec/common-structures#struct-routeraddress |
[RouterInfo] | (1, 2) http://syndie.i2p2.de/spec/common-structures#struct-routerinfo |
[TRAC-TICKET] | http://trac.i2p2.de/ticket/1352 |