Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Temper initial eagerness when requesting transactions #4927

Closed
crocodile-dentist opened this issue Aug 12, 2024 · 0 comments · Fixed by #4930
Closed

Temper initial eagerness when requesting transactions #4927

crocodile-dentist opened this issue Aug 12, 2024 · 0 comments · Fixed by #4930
Labels
high-priority high priority issues / PRs tx-submission Issues related to tx-submission protocol

Comments

@crocodile-dentist
Copy link
Contributor

crocodile-dentist commented Aug 12, 2024

Recent back to back node releases exposed a weakness in tx-submission logic which imposes a minor but observable increase on network load. It is not a bug per se, since no invalid transactions are disseminated by any nodes, but instead it could be classified as quality of implementation issue. This manifests itself as some nodes repeatedly providing theirs' transactions, on requests by the inbound/server peer, and then disconnecting. Based on initial analysis, this does not appear to be an intended adverserial behavior, but merely a consequence of current design.

The issue concerns a corner case where there are a mixture of interacting nodes and some of which are unable to cross a hard fork boundary. When these legacy nodes connect to a node which is in fact across the boundary, a full set of miniprotocols are established, and a race between tx-submission and chainsync occurs. The legacy node may respond to a request for transactions before it learns from chainsync that it does not support that peer's block versions, and it will disconnect. After a short timeout expires, it will reconnect and repeat this cycle. Since chainsync miniprotocol is pipelined, it would be onerous to try to somehow synchronize tx-submission with it. Instead, a timeout could be established which would prevent the inbound/server peer from submitting its initial request to the client for a brief while, and long enough for the client to disconnect for aforementioned reason, or some other. This approach has the added benefit of making a client expend some resources when making the initial connection - in a healthy network good connections are long lived and so this initial timeout period has no foreseen detrimental effects on network performance.

@crocodile-dentist crocodile-dentist added the tx-submission Issues related to tx-submission protocol label Aug 12, 2024
@coot coot added the high-priority high priority issues / PRs label Aug 12, 2024
crocodile-dentist added a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
johnalotoski pushed a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
johnalotoski pushed a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
johnalotoski pushed a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 13, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 14, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 19, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 19, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 19, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
crocodile-dentist added a commit that referenced this issue Aug 21, 2024
This change delays initial request for transactions from the client,
whom may disconnect relatively quickly for reasons described in
IntersectMBO/ouroboros-network issue #4927.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
high-priority high priority issues / PRs tx-submission Issues related to tx-submission protocol
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants