Back to matrix

F23-I2: Yes

Rationale

A co-located client/router can retain its Destination and local I2CP session while changing external NTCP2 access. With UDP transport disabled, NTCPTransport accepts external-address updates and rebuilds RouterInfo separately from the local client session. TunnelPool replaces failed tunnel leases, while ClientConnectionRunner requests updated LeaseSets using existing SessionParams. This supplies a bounded witness with overlapping reachable access and timely replacement tunnels, without recreating the application Destination session. It does not preserve the old external TCP connection or establish streaming continuity: no streaming extension is selected. Retained router/client processes and usable peers at the new access are prerequisites.

Assessment method

Pinned Java source and I2CP specification; bounded architectural inference, no execution

Source context

I2P commit 37039e6594f1372368f0c1cf8258cdaf805a7fb4: NTCPTransport, TunnelPool and ClientConnectionRunner

Outstanding qualification

Run the pinned build with NTCP2 only and the selected private-network settings. Keep the local I2CP session alive, introduce the new access, renew multi-hop tunnels and leases, then remove the old access. Verify unchanged Destination/session ID and continuing message exchange without CreateSession. Measure losses and deadlines; test total tunnel loss and repeated LeaseSet negotiation failure, which can disconnect the client. No experiment performed.

Public sources