You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RPC timeouts and the like should result in a short ban,
If these are not banned a malicious peer can use RPC errors to keep a node busy while blocking other calls.
For example, sync, incoming block etc are all time-sensitive and should be completed as soon as possible. A peer can delay these by using RPC error to fake intent without doing anything.
The text was updated successfully, but these errors were encountered:
Description
---
Made RPC errors ban-able during header-sync and horizon-sync ban-able
with a short ban duration.
Closes#5874
Motivation and Context
---
During sync, we establish a client-server connection and then execute
RPC methods from the client to the server, which we know should succeed,
so that any RPC errors afterwards are a banable offence. Something else
to consider is that sync only acts if better peer metadata is received
from a peer, translating to malicious behaviour should a peer not want
to play the protocol afterwards.
How Has This Been Tested?
---
Integration-level unit tests in `base_layer\core\tests\tests`:
- `block_sync.rs`
- `header_sync.rs`
- `horizon_sync.rs` (still in progress)
What process can a PR reviewer use to test or verify this change?
---
- Code walk-through
- Review unit tests ^^
<!-- Checklist -->
<!-- 1. Is the title of your PR in the form that would make nice release
notes? The title, excluding the conventional commit
tag, will be included exactly as is in the CHANGELOG, so please think
about it carefully. -->
Breaking Changes
---
- [x] None
- [ ] Requires data directory on base node to be deleted
- [ ] Requires hard fork
- [ ] Other - Please specify
<!-- Does this include a breaking change? If so, include this line as a
footer -->
<!-- BREAKING CHANGE: Description what the user should do, e.g. delete a
database, resync the chain -->
RPC timeouts and the like should result in a short ban,
If these are not banned a malicious peer can use RPC errors to keep a node busy while blocking other calls.
For example, sync, incoming block etc are all time-sensitive and should be completed as soon as possible. A peer can delay these by using RPC error to fake intent without doing anything.
The text was updated successfully, but these errors were encountered: