Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Orchestrator ¶
Orchestrator encapsulates a stateful implementation of wintermute attack orchestrator logic. The attack logic works as follows:
- Orchestrator corrupts the result of the first incoming execution receipt from any of the corrupted execution node.
- Orchestrator sends the corrupted execution result to all corrupted execution nodes.
- If Orchestrator receives any chunk data pack request for a corrupted chunk from a corrupted verification node, it prompts the verifier to approve that chunk by sending it an attestation for that corrupted chunk.
- If Orchestrator receives any chunk data pack response from a corrupted execution node to an honest verification node, it drops the response if it is for one of the corrupted chunks.
- Any other incoming messages to the orchestrator are passed through, i.e., are sent as they are in the original Flow network without any tampering.
func NewOrchestrator ¶
func NewOrchestrator(logger zerolog.Logger, corruptedNodeIds flow.IdentifierList, allIds flow.IdentityList) *Orchestrator
func (*Orchestrator) HandleEventFromCorruptedNode ¶
func (o *Orchestrator) HandleEventFromCorruptedNode(event *insecure.Event) error
HandleEventFromCorruptedNode implements logic of processing the events received from a corrupted node.
In Corruptible Conduit Framework for BFT testing, corrupted nodes relay their outgoing events to the attack Orchestrator instead of dispatching them directly to the network. The Orchestrator completely determines what the corrupted conduit should send to the network.
func (*Orchestrator) WithAttackNetwork ¶ added in v0.25.2
func (o *Orchestrator) WithAttackNetwork(network insecure.AttackNetwork)
WithAttackNetwork sets the attack network of the orchestrator.
Click to show internal directories.
Click to hide internal directories.