Skip to content

[stable2503] Backport #8650: litep2p/peerset: Reject non-reserved peers in the reserved-only mode#8744

Merged
EgorPopelyaev merged 2 commits intostable2503from
backport-8650-to-stable2503
Jun 5, 2025
Merged

[stable2503] Backport #8650: litep2p/peerset: Reject non-reserved peers in the reserved-only mode#8744
EgorPopelyaev merged 2 commits intostable2503from
backport-8650-to-stable2503

Conversation

@paritytech-release-backport-bot
Copy link
Copy Markdown

Backport #8650 into stable2503 from lexnv.

See the documentation on how to use this bot.

…8650)

This PR rejects non-reserved peers in the reserved-only mode of the
litep2p notification peerset.

Previously, litep2p ignored completely the reserved-only state while
accepting inbound connections. However, it handled it properly during
the slot allocation phase.
- the main changes are in the `report_inbound_substream` function, which
now propagated a `Rejected` response to litep2p on the reserved-only
state
- in response, litep2p should never open an inbound substream after
receiving the rejected response
- the state of peers is not advanced while in `Disconnected` or
`Backoff` states
  - the opening state is moved to `Cancelled`
- for consistency purposes (and fuzzing purposes), the
`report_substream_opened` is more robustly handling the `Disconnected`
state
- while at it have replaced a panic with `debug_assert` and an instant
reject

## Testing Done
- started 2 nodes in Kusama and Polkadot with litep2p
- added the `reserved_only_rejects_non_reserved_peers` test to ensure
litep2p handles peers properly from different states

This PR has been extracted from
#8461 to ease the review
process

cc @paritytech/networking

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Markin <dmitry@markin.tech>
(cherry picked from commit e82b4db)
@github-actions github-actions bot added the A3-backport Pull request is already reviewed well in another branch. label Jun 4, 2025
@github-actions github-actions bot requested a review from lexnv June 4, 2025 11:31
@lexnv lexnv changed the title [stable2503] Backport #8650 [stable2503] Backport #8650: itep2p/peerset: Reject non-reserved peers in the reserved-only mode Jun 4, 2025
@lexnv lexnv changed the title [stable2503] Backport #8650: itep2p/peerset: Reject non-reserved peers in the reserved-only mode [stable2503] Backport #8650: litep2p/peerset: Reject non-reserved peers in the reserved-only mode Jun 4, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jun 4, 2025

This pull request is amending an existing release. Please proceed with extreme caution,
as to not impact downstream teams that rely on the stability of it. Some things to consider:

  • Backports are only for 'patch' or 'minor' changes. No 'major' or other breaking change.
  • Should be a legit fix for some bug, not adding tons of new features.
  • Must either be already audited or not need an audit.
Emergency Bypass

If you really need to bypass this check: add validate: false to each crate
in the Prdoc where a breaking change is introduced. This will release a new major
version of that crate and all its reverse dependencies and basically break the release.

@EgorPopelyaev EgorPopelyaev enabled auto-merge (squash) June 5, 2025 11:47
@EgorPopelyaev EgorPopelyaev merged commit 1d674d0 into stable2503 Jun 5, 2025
215 of 220 checks passed
@EgorPopelyaev EgorPopelyaev deleted the backport-8650-to-stable2503 branch June 5, 2025 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A3-backport Pull request is already reviewed well in another branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants