Skip to content
  1. Jun 17, 2021
    • Lldenaurois's avatar
      Extract and test count_no_shows method for approval voting (#3264) · f8ed46f4
      Lldenaurois authored
      * node/approval-voting: extract and test count_no_shows method
      
      This commit extracts no_show computation into a pure function so that it can be
      extensively unit tested.
      
      * node/approval-voting: ignore invalid validator indexes in count_no_show
      
      Previously indexes that were past the length of the approvals bitvector
      would contribute to the no_show count or the next_no_show value. This
      commit changes the behavior to ignore garbage values.
      
      * node/approval-voting: add comment for next_no_show adding clock_drift
      f8ed46f4
  2. Jun 16, 2021
    • asynchronous rob's avatar
      extract determine_new_blocks into a separate utility (#3261) · 462ca043
      asynchronous rob authored
      * extract determine_new_blocks into a separate utility
      
      * rework docs
      462ca043
    • Lldenaurois's avatar
      Approval checking unit tests (#3252) · 0da70dfa
      Lldenaurois authored
      * node/approval_checking: break out filled_tranch_iterator method
      
      In the subsequent commit, we will begin to test this method in
      isolation.
      
      * node/approval-voting: fix tranche back-filling algorithm
      
      Previously, this algorithm would generate duplicate, empty entries for
      tranches (1..pre_end). This is caused because the initial value (0) for
      gap_end is treated as the end of a prior tranche that wasn't actually
      processed. The first pass thus would add (1..tranche) empty entries, in
      addition to the (0..pre_end) empty entries chained at the end of the
      method.
      
      This is fixed by using the current tranche as the gap_start for the
      first iteration, ensuring that the approval_entries_filled only produces
      entries in the range (pre_end..post_start).
      
      * Address feedback
      0da70dfa
  3. Jun 15, 2021
  4. Jun 14, 2021
  5. Jun 13, 2021
    • ordian's avatar
      approval votes checking logs (#3233) · 93e42fb2
      ordian authored
      * approval-voting: logs for invalid votes
      
      * proper errors for assignment checks
      
      * proper errors for approval checks
      93e42fb2
    • asynchronous rob's avatar
    • asynchronous rob's avatar
      Dispute Coordinator Subsystem (#3150) · 5bc2b277
      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 <[email protected]>
      
      * Update node/subsystem/src/messages.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * 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 9cd615e8eb6ca0b382cbaff525d813e753d6004e.
      
      * Use thiserror
      
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      
      * Update node/core/dispute-coordinator/src/lib.rs
      
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      
      * extract tests to separate module
      
      * address nit
      
      * adjust run_iteration API
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      5bc2b277
  6. Jun 11, 2021
  7. Jun 09, 2021
  8. Jun 04, 2021
  9. May 27, 2021
  10. Apr 25, 2021
  11. Apr 08, 2021
  12. Apr 07, 2021
  13. Apr 01, 2021
    • asynchronous rob's avatar
      Approval Voting improvements (#2781) · 57b56770
      asynchronous rob authored
      
      
      * extract database from av-store itself
      
      * generalize approval-voting over database type
      
      * modes (without handling) and pruning old wakeups
      
      * rework approval importing
      
      * add our_approval_sig to ApprovalEntry
      
      * import assignment
      
      * guide updates for check-full-approval changes
      
      * some aux functions
      
      * send messages when becoming active.
      
      * guide: network bridge sends view updates only when done syncing
      
      * network bridge: send view updates only when done syncing
      
      * tests for new network-bridge behavior
      
      * add a test for updating approval entry with sig
      
      * fix some warnings
      
      * test load-all-blocks
      
      * instantiate new parachains DB
      
      * fix network-bridge empty view updates
      
      * tweak
      
      * fix wasm build, i think
      
      * Update node/core/approval-voting/src/lib.rs
      
      Co-authored-by: default avatarAndronik Ordian <[email protected]>
      
      * add some versioning to parachains_db
      
      * warnings
      
      * fix merge changes
      
      * remove versioning again
      
      Co-authored-by: default avatarAndronik Ordian <[email protected]>
      57b56770
  14. Mar 30, 2021
  15. Mar 29, 2021
  16. Mar 28, 2021
    • asynchronous rob's avatar
      Split NetworkBridge and break cycles with Unbounded (#2736) · 8ebbe19d
      asynchronous rob authored
      
      
      * overseer: pass messages directly between subsystems
      
      * test that message is held on to
      
      * Update node/overseer/src/lib.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      
      * give every subsystem an unbounded sender too
      
      * remove metered_channel::name
      
      1. we don't provide good names
      2. these names are never used anywhere
      
      * unused mut
      
      * remove unnecessary &mut
      
      * subsystem unbounded_send
      
      * remove unused MaybeTimer
      
      We have channel size metrics that serve the same purpose better now and the implementation of message timing was pretty ugly.
      
      * remove comment
      
      * split up senders and receivers
      
      * update metrics
      
      * fix tests
      
      * fix test subsystem context
      
      * use SubsystemSender in jobs system now
      
      * refactor of awful jobs code
      
      * expose public `run` on JobSubsystem
      
      * update candidate backing to new jobs & use unbounded
      
      * bitfield signing
      
      * candidate-selection
      
      * provisioner
      
      * approval voting: send unbounded for assignment/approvals
      
      * async not needed
      
      * begin bridge split
      
      * split up network tasks into background worker
      
      * port over network bridge
      
      * Update node/network/bridge/src/lib.rs
      
      Co-authored-by: default avatarAndronik Ordian <[email protected]>
      
      * rename ValidationWorkerNotifications
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      Co-authored-by: default avatarAndronik Ordian <[email protected]>
      8ebbe19d
    • ordian's avatar
      approval-voting: more spans and metrics (#2742) · 171fc699
      ordian authored
      * approval-voting: more spans and metrics
      
      * s/db/approval db
      171fc699
    • asynchronous rob's avatar
      Approval voting failsafe (#2675) · ef816b08
      asynchronous rob authored
      
      
      * add consensus log type
      
      * origin and issue force_approve
      
      * add origin in runtimes
      
      * ref API
      
      * scrape force_approve digest from header
      
      * add parent_hash to BlockEntry
      
      * add block_number to block entry and force_approve skeleton
      
      * implement and plug in force-approve
      
      * test force_approve
      
      * test force_approve extraction
      
      * westend runtime
      
      * Update node/core/approval-voting/src/approval_db/v1/mod.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * rename
      
      * Update runtime/parachains/src/initializer.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarAndré Silva <[email protected]>
      ef816b08
  17. Mar 26, 2021
  18. Mar 25, 2021
  19. Mar 24, 2021
  20. Mar 23, 2021
  21. Mar 19, 2021
  22. Mar 17, 2021
  23. Mar 12, 2021
  24. Mar 11, 2021
  25. Mar 10, 2021
    • asynchronous rob's avatar
      Better error handling in approval-voting (#2603) · 40a584be
      asynchronous rob authored
      * make approval voting resilient to dropped requests
      
      * some more
      
      * skip whole chain if encountering spurious error
      40a584be
    • ordian's avatar
      prefix parachain log targets with parachain:: (#2600) · baa691de
      ordian authored
      * prefix parachain log targets with parachain::
      
      * even more consistent
      baa691de
    • Ashley's avatar
      Companion PR for substrate PR 8072 - Add a config field to babe epochs (#2467) · 956be35d
      Ashley authored
      * Add a config field to babe epochs
      
      * Fix test
      
      * Add BABE_GENESIS_EPOCH_CONFIG consts
      
      * Use PrimaryAndSecondaryVRFSlots and remove newlines
      
      * Make epoch_configs Some
      
      * Fix tests
      
      * Fix test service tests
      
      * Add a BabeEpochConfigMigrations OnRuntimeUpgrade
      
      * Apply suggestions
      
      * Use PrimaryAndSecondaryPlainSlots in kusama
      
      * Remove migration from test runtime and rococo
      
      * Add HasPalletPrefix
      
      * Rename to BabePalletPrefix and change BabeApi -> Babe
      
      * "Update Substrate"
      
      * Update substrate
      
      * Resolve parantheses errors
      
      Co-authored-by: parity-processbot <>
      956be35d
  26. Mar 09, 2021
  27. Feb 26, 2021
    • Robert Klotzner's avatar
      Request based availability distribution (#2423) · 48409e55
      Robert Klotzner authored
      * WIP
      
      * availability distribution, still very wip.
      
      Work on the requesting side of things.
      
      * Some docs on what I intend to do.
      
      * Checkpoint of session cache implementation
      
      as I will likely replace it with something smarter.
      
      * More work, mostly on cache
      
      and getting things to type check.
      
      * Only derive MallocSizeOf and Debug for std.
      
      * availability-distribution: Cache feature complete.
      
      * Sketch out logic in `FetchTask` for actual fetching.
      
      - Compile fixes.
      - Cleanup.
      
      * Format cleanup.
      
      * More format fixes.
      
      * Almost feature complete `fetch_task`.
      
      Missing:
      
      - Check for cancel
      - Actual querying of peer ids.
      
      * Finish FetchTask so far.
      
      * Directly use AuthorityDiscoveryId in protocol and cache.
      
      * Resolve `AuthorityDiscoveryId` on sending requests.
      
      * Rework fetch_task
      
      - also make it impossible to check the wrong chunk index.
      - Export needed function in validator_discovery.
      
      * From<u32> implementation for `ValidatorIndex`.
      
      * Fixes and more integration work.
      
      * Make session cache proper lru cache.
      
      * Use proper lru cache.
      
      * Requester finished.
      
      * ProtocolState -> Requester
      
      Also make sure to not fetch our own chunk.
      
      * Cleanup + fixes.
      
      * Remove unused functions
      
      - FetchTask::is_finished
      - SessionCache::fetch_session_info
      
      * availability-distribution responding side.
      
      * Cleanup + Fixes.
      
      * More fixes.
      
      * More fixes.
      
      adder-collator is running!
      
      * Some docs.
      
      * Docs.
      
      * Fix reporting of bad guys.
      
      * Fix tests
      
      * Make all tests compile.
      
      * Fix test.
      
      * Cleanup + get rid of some warnings.
      
      * state -> requester
      
      * Mostly doc fixes.
      
      * Fix test suite.
      
      * Get rid of now redundant message types.
      
      * WIP
      
      * Rob's review remarks.
      
      * Fix test suite.
      
      * core.relay_parent -> leaf for session request.
      
      * Style fix.
      
      * Decrease request timeout.
      
      * Cleanup obsolete errors.
      
      * Metrics + don't fail on non fatal errors.
      
      * requester.rs -> requester/mod.rs
      
      * Panic on invalid BadValidator report.
      
      * Fix indentation.
      
      * Use typed default timeout constant.
      
      * Make channel size 0, as each sender gets one slot anyways.
      
      * Fix incorrect metrics initialization.
      
      * Fix build after merge.
      
      * More fixes.
      
      * Hopefully valid metrics names.
      
      * Better metrics names.
      
      * Some tests that already work.
      
      * Slightly better docs.
      
      * Some more tests.
      
      * Fix network bridge test.
      48409e55
  28. Feb 25, 2021