• 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>