• asynchronous rob's avatar
    Dispute Coordinator Subsystem (#3150) · 19c1d29d
    asynchronous rob authored
    
    
    * skeleton for dispute-coordinator
    
    * add coordinator and participation message types
    
    * begin dispute-coordinator DB
    
    * functions for loading
    
    * implement strongly-typed DB transaction
    
    * add some tests for DB transaction
    
    * core logic for pruning
    
    * guide: update candidate-votes key for coordinator
    
    * update candidate-votes key
    
    * use big-endian encoding for session, and implement upper bound generator
    
    * finish implementing pruning
    
    * add a test for note_current_session
    
    * define state of the subsystem itself
    
    * barebones subsystem definition
    
    * control flow
    
    * more control flow
    
    * implement session-updating logic
    
    * trace
    
    * control flow for message handling
    
    * Update node/core/dispute-coordinator/src/lib.rs
    Co-authored-by: default avatarAndré Silva <123550+andresilva@users.noreply.github.com>
    
    * Update node/subsystem/src/messages.rs
    Co-authored-by: default avatarAndré Silva <123550+andresilva@users.noreply.github.com>
    
    * some more control flow
    
    * guide: remove overlay
    
    * more control flow
    
    * implement some DB getters
    
    * make progress on importing statements
    
    * add SignedDisputeStatement struct
    
    * move ApprovalVote to shared primitives
    
    * add a signing-payload API to explicit dispute statements
    
    * add signing-payload to CompactStatement
    
    * add relay-parent hash to seconded/valid dispute variatns
    
    * correct import
    
    * type-safe wrapper around dispute statements
    
    * use checked dispute statement in message type
    
    * extract rolling session window cache to subsystem-util
    
    * extract session window tests
    
    * approval-voting: use rolling session info cache
    
    * reduce dispute window to match runtime in practice
    
    * add byzantine_threshold and supermajority_threshold utilities to primitives
    
    * integrate rolling session window
    
    * Add PartialOrd to CandidateHash
    
    * add Ord to CandidateHash
    
    * implement active dispute update
    
    * add dispute messages to AllMessages
    
    * add dispute stubs to overseer
    
    * inform dispute participation to participate
    
    * implement issue_local_statement
    
    * implement `determine_undisputed_chain`
    
    * fix warnings
    
    * test harness for dispute coordinator tests
    
    * add more helpers to test harness
    
    * add some more helpers
    
    * some tests for dispute coordinator
    
    * ignore wrong validator indices
    
    * test finality voting rule constraint
    
    * add more tests
    
    * add variants to network bridge
    
    * fix test compilation
    
    * remove most dispute coordinator functionality
    
    as of #3222 we can do most of the work within the approval voting subsystem
    
    * Revert "remove most dispute coordinator functionality"
    
    This reverts commit 9cd615e8
    
    .
    
    * Use thiserror
    Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
    
    * Update node/core/dispute-coordinator/src/lib.rs
    Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
    
    * extract tests to separate module
    
    * address nit
    
    * adjust run_iteration API
    Co-authored-by: default avatarAndré Silva <123550+andresilva@users.noreply.github.com>
    Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
    19c1d29d