Skip to content

transport: Expose failed addresses to the transport manager#529

Merged
lexnv merged 4 commits into
masterfrom
lenxv/update-addr
Feb 2, 2026
Merged

transport: Expose failed addresses to the transport manager#529
lexnv merged 4 commits into
masterfrom
lenxv/update-addr

Conversation

@lexnv
Copy link
Copy Markdown
Collaborator

@lexnv lexnv commented Jan 29, 2026

This PR propagates the pending errors while establishing a successful dial to a given peer.

The primary issue the PR aims to fix is:

  • T0. TCP starts to dial on 8 addresses (collator -> validator)
  • T1. 7 addresses out of 8 fail with an error (unreachable / timeout etc)
  • T2. 1 address is successful

Before this PR, the 7 failures would be lost and the manager would not update the score of the addresses.
The downstream effect is that the 7 addresses would be retained with a score of zero.
Later, when litep2p wants to dial the same peer, the 7 addresses that are unrachable will be reutilized for dialing.

This is part of the efforts to improve the stability of connections and reduce delays:

Closes:

lexnv added 4 commits January 29, 2026 14:41
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
@lexnv lexnv self-assigned this Jan 29, 2026
@lexnv lexnv added the bug Something isn't working label Jan 29, 2026
Copy link
Copy Markdown
Collaborator

@dmitry-markin dmitry-markin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one!

@lexnv lexnv merged commit 5ec8939 into master Feb 2, 2026
14 of 15 checks passed
@lexnv lexnv deleted the lenxv/update-addr branch February 2, 2026 16:27
dmitry-markin added a commit that referenced this pull request Feb 27, 2026
## [0.13.1] - 2026-02-27

This release includes multiple fixes of transports and protocols, fixing
connection stability issues with other librariies (specifically,
[smoldot](https://github.com/smol-dot/smoldot/)) and increasing success
rates of dialing & opening substreams, especially in extreme cases when
remote nodes have a lot of private addresses published to the DHT.

### Fixed

- ping: Conform to the spec & exclude from connection keep-alive
([#416](#416))
- transport: Make accept async to close the gap on service races
([#525](#525))
- transport: Limit dial concurrency and bound total dialing time
([#538](#538))
- webrtc: Support `FIN`/`FIN_ACK` handshake for substream shutdown
([#513](#513))
- transport: Expose failed addresses to the transport manager
([#529](#529))

### Changed

- manager: Prioritize public addresses for dialing
([#530](#530))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants