Description
The identify protocol provides as response a listen_addresses
field.
The remote peer uses this field to insert self reported addresses into the Kademlia DHT.
Substrate makes use of the listen addresses here.
The problem is that the identify protocol starts with a static set of addresses, which may expire or become invalid:
litep2p/src/protocol/libp2p/identify.rs
Lines 272 to 276 in 2d1a4b4
This might be one of the reasons why we've seen low connectivity with peers over the long term (~90 days).
The Identify protocol can be extended to receive verified addresses for healthier listen addresses.
For the Substrate perspective, when we deem a "remote address" as valid (after 2 encounters), that address needs to be reported back to the Identify protocol.
Libp2p already has a similar mechanism of discovery via the ExternalAddressDiscovered
and confirming addresses.
### Tasks
- [ ] https://github.com/paritytech/litep2p/pull/212