F15-I2: Yes
Rationale
The pinned Java I2P router checks backlog age and a previous-hop request throttle before queueing participating tunnel-build requests and before expensive build-record decryption. Its LinkedBlockingQueue has a computed capacity clamped between 18 and 192 entries; failed offers drop the request. The worker also drops stale requests or requests observed under excessive job lag before handleRequest reaches cryptographic processing. This provides native early rejection and a bounded pending-work queue at the tunnel-build admission boundary.
Assessment method
Primary documentation and pinned source review; no runtime experiment
Source context
Pinned Java I2P BuildHandler admission, bounded queue and RequestThrottler
Outstanding qualification
Use normal non-test operation with RequestThrottler enabled. Pre-admission parsing, hashing, counters, transport processing and logging still cost resources. The queue bound counts waiting entries, not bytes, executing jobs, every router queue or total process memory. The per-hop counter map is cleared periodically but is not credited as a global identity/state bound; changing identities can undermine per-peer throttling. These checks do not authorize final application users or guarantee service under attack. No NTCP2 handshake protection, whole-router budget, i2pd post-quantum implementation equivalence or runtime throughput result is inferred. The selected NTCP2 composition is retained; no SSU cookie mechanism is imported.
Public sources
- https://raw.githubusercontent.com/i2p/i2p.i2p/37039e6594f1372368f0c1cf8258cdaf805a7fb4/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
- https://raw.githubusercontent.com/i2p/i2p.i2p/37039e6594f1372368f0c1cf8258cdaf805a7fb4/router/java/src/net/i2p/router/tunnel/pool/RequestThrottler.java
Editorial evidence references
The following identifiers refer to research records not included in this public package; they are not public links.
- round541.html
- round541-sources.json