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
Currently, the node bus is used for all types of events, which currently mainly consists of external events (node to node interactions). With the implementation of issue #395, the pacemaker is becoming a submodule of the consensus module, where the node bus will be used for interaction of pacemaker and consensus modules, so essentially it will be used for internal events. This implies that, we are putting external events (e.g. node to node HotStuffMessages) internal node events (e.g. pacemaker to consensus module function execution requests) together in same bus. This can turn out bad for couple of reasons:
Bus might prioritize external events over internal events, when there are excessive amount of external requests, which may cause the node to slow down, and thus degrade node performance.
Similarly, node might get excessive amount of external requests, which may exhaust node and bus, which in turn may cause internal events to be not processed and proceed properly. Since consensus module orchestrates whole node execution, this will seriously effect node's functionality.
An attacker might expose this potential vulnerability to target a set of nodes and exhaust node bus, which can bring network wide affects on protocol and consensus (e.g. attacking the liveliness of the protocol), if attack is applied in a broad range.
Origin Document
The change on how event bus will be used for internal events with #395:
Objective
Currently, the node bus is used for all types of events, which currently mainly consists of external events (node to node interactions). With the implementation of issue #395, the pacemaker is becoming a submodule of the consensus module, where the node bus will be used for interaction of pacemaker and consensus modules, so essentially it will be used for internal events. This implies that, we are putting external events (e.g. node to node HotStuffMessages) internal node events (e.g. pacemaker to consensus module function execution requests) together in same bus. This can turn out bad for couple of reasons:
Origin Document
The change on how event bus will be used for internal events with #395:
Goals
Deliverable
Non-goals / Non-deliverables
General issue deliverables
Testing Methodology
make test_all
LocalNet
is still functioning correctly by following the instructions at docs/development/README.mdCreator: @gokutheengineer
Co-Owners: @Olshansk
The text was updated successfully, but these errors were encountered: