-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
Publisher PluginIssue related to Publisher PluginIssue related to Publisher Plugin
Milestone
Description
Story Form
As a Block Node
I want to Prevent a misbehaving publisher from immediately reconnecting
So that this block node is able to prioritize properly functioning publishers
Technical Notes
There are situations (block that fails verification, publisher more than 2 blocks behind other publishers when counting EndOfBlock, publisher sends unparseable data, etc...) where a particular publisher must be disconnected to signal that the publisher has misbehaved or something is misbehaving in the network. In those situations we wish to activate a temporary mechanism to refuse connections from that same IP address.
This will enable the block node to prioritize receiving data from other publishers that may be in a better functional state.
- The block should be IP based
- This assumes we use a reasonably sophisticated firewall as a sidecar in the same pod configured to manage "permitted" publishers and ensure mTLS authentication so that the IP address is reliable.
- The block should be scheduled to last for a configurable (and possibly dynamic) duration.
- Dynamic might consider number of other publishers connected, rate of errors, type of error, and other factors.
- Configuration might define a baseline duration that is modified by dynamic factors.
- We may also consider preemptive backfill to further detect and manage continued progress when publisher(s) land in this "penalty box".
- Future considerations include gossip between trustworthy block nodes, reputational scores for publishers, and other mechanisms to further inform block nodes as to which publishers are most reliable and which might not be trustworthy.
Metadata
Metadata
Assignees
Labels
Publisher PluginIssue related to Publisher PluginIssue related to Publisher Plugin
Type
Projects
Status
🧊 Backlog