- 04 Aug, 2021 1 commit
-
-
Lldenaurois authored
* node/approval-voting: Continue to migrate tests to subsystem tests * node/approval-voting: Continue to implement subsystem tests. * Add more tests * node/approval-voting: Add more tests * node/approval-voting: Difficuly determining the proper test scenario for threshold tests * node/approval-voting: Introduce should_trigger_assignment tests * node/approval-voting: Finalize threshold tests * node/approval-voting: Address Feedback and add comments * node/approval-voting: Tidy up approval tests * Tidy up tests * Fix rustfmt
-
- 02 Aug, 2021 1 commit
-
-
Shawn Tabrizi authored
* cargo +nightly fmt * add cargo-fmt check to ci * update ci * fmt * fmt * skip macro * ignore bridges
-
- 26 Jul, 2021 1 commit
-
-
Bernhard Schuster authored
* finality_target adjustments * fn finality_target * partially address review comments * fixins * more rustic if condition * fix tests * fixins * Update node/core/approval-voting/src/lib.rs Co-authored-by:
Andronik Ordian <write@reusable.software> * Update node/core/approval-voting/src/lib.rs Co-authored-by:
Robert Habermeier <rphmeier@gmail.com> * review comments part one * rename candidates -> block_descriptions * testing outline (incomplete, WIP) * test foo * split RelayChainSelection into RelayChainSelection{,WithFallback}, introduce HeaderProvider{,Provider} * make some stuff public (revert this soon™) * some test improvements * slips of pens * test fixins * add another trait abstraction * pending edge case tests + warnings fixes * more test cases * fin * chore fmt * fix cargo.lock * Undo obsolete changes * // comments * make mod pub(crate) * fix * minimize static bounds * resolve number() as before * fmt * post merge fix * address some nits Co-authored-by:
Andronik Ordian <write@reusable.software> Co-authored-by:
Robert Habermeier <rphmeier@gmail.com>
-
- 14 Jul, 2021 1 commit
-
-
Denis_P authored
* CI: add spellcheck * revert me * CI: explicit command for spellchecker * spellcheck: edit misspells * CI: run spellcheck on diff * spellcheck: edits * spellcheck: edit misspells * spellcheck: add rules * spellcheck: mv configs * spellcheck: more edits * spellcheck: chore * spellcheck: one more thing * spellcheck: and another one * spellcheck: seems like it doesn't get to an end * spellcheck: new words after rebase * spellcheck: new words appearing out of nowhere * chore * review edits * more review edits * more edits * wonky behavior * wonky behavior 2 * wonky behavior 3 * change git behavior * spellcheck: another bunch of new edits * spellcheck: new words are koming out of nowhere * CI: finding the master * CI: fetching master implicitly * CI: undebug * new errors * a bunch of new edits * and some more * Update node/core/approval-voting/src/approval_db/v1/mod.rs Co-authored-by:
Andronik Ordian <write@reusable.software> * Update xcm/xcm-executor/src/assets.rs Co-authored-by:
Andronik Ordian <write@reusable.software> * Apply suggestions from code review Co-authored-by:
Andronik Ordian <write@reusable.software> * Suggestions from the code review * CI: scan only changed files Co-authored-by:
Andronik Ordian <write@reusable.software>
-
- 09 Jul, 2021 1 commit
-
-
asynchronous rob authored
* add a from_backing_statement to SignedDisputeStatement * inform dispute coordinator of all backing statements * add dispute coordinator message to backing tests * send positive dispute statement with every approval * issue disputes when encountering invalid candidates. * try to fix flaky test for CI (passed locally) * guide: keep track of concluded-positive disputes until pruned * guide: block implications * guide: new dispute inherent flow * mostly implement recency changes for dispute coordinator * add a clock to dispute coordinator * adjust DB tests * fix and add new dispute coordinator tests * provisioner: select disputes * import all validators' approvals * address nit: refactor backing statement submission * gracefully handle disconnected dispute coordinator * remove `review` comment * fix up old_tests * fix approval-voting compilation * fix backing compilation * use known-leaves in WaitForActivation * follow-up test fixing * add back allow(dead_code)
-
- 08 Jul, 2021 3 commits
-
-
Bernhard Schuster authored
-
Lldenaurois authored
* node/approval-voting: Introduce Backend trait and Overlaybackend This commit introduces a Backend trait and attempts to move away from the Action model via an OverlayBackend as in the ChainSelection subsystem. * node/approval-voting: Add WriteOps for StoredBlockRange and BlocksAtHeight * node/approval-voting: Add load_all_blocks to overlay * node/approval-voting: Get all module tests to pass. This commit modifies all tests to ensure tests are passing. * node/approval-voting: Address oversights in the previous commit This commit addresses some oversights in the prior commit. 1. Inner errors in backend.write were swallowed 2. One-off write functions removed to avoid useless abstraction 3. Touch-ups in general * node/approval-voting: Move from TestDB to dyn KeyValueDB This commit removes the TestDB from tests.rs and replaces it with an in-memory kvdb. * node/approval-voting: Address feedback * node/approval-voting: Add license to ops.rs * node/approval-voting: Address second-pass feedback * Add TODO * node/approval-voting: Bump spec_version * node/approval-voting: Address final comments. * node/approval-voting: Introduce framework for full subsystem tests * node/approval-voting: Introduce basic tests to attempt to provide coverage via full subsystem tests * node/approval-voting: Introduce Chainbuilder
-
Lldenaurois authored
* node/approval-voting: Introduce Backend trait and Overlaybackend This commit introduces a Backend trait and attempts to move away from the Action model via an OverlayBackend as in the ChainSelection subsystem. * node/approval-voting: Add WriteOps for StoredBlockRange and BlocksAtHeight * node/approval-voting: Add load_all_blocks to overlay * node/approval-voting: Get all module tests to pass. This commit modifies all tests to ensure tests are passing. * node/approval-voting: Address oversights in the previous commit This commit addresses some oversights in the prior commit. 1. Inner errors in backend.write were swallowed 2. One-off write functions removed to avoid useless abstraction 3. Touch-ups in general * node/approval-voting: Move from TestDB to dyn KeyValueDB This commit removes the TestDB from tests.rs and replaces it with an in-memory kvdb. * node/approval-voting: Address feedback * node/approval-voting: Add license to ops.rs * node/approval-voting: Address second-pass feedback * Add TODO * node/approval-voting: Bump spec_version * node/approval-voting: Address final comments.
-
- 06 Jul, 2021 1 commit
-
-
asynchronous rob authored
* DB skeleton * key formats * lexicographic test * custom types for DB * implement backend for db-v1 * remove VoidBackend and integrate with real DbBackend * detect stagnant blocks on in interval * fix tests * add tests for stagnant * send ChainSelectionMessage::Approved * tests for DB backend * unused import * upgrade kvdb-memorydb Co-authored-by:
Andronik Ordian <write@reusable.software>
-
- 22 Jun, 2021 2 commits
-
-
Lldenaurois authored
* node/approval-voting: Introduce LruCache for pending Approval work This commit adds an LruCache that is intended to track the approval work submitted as background tasks in order to ensure that the validator needn't launch duplicate approval work for the same candidate across multiple blocks. A simple state machine is also introduced in order to differentiate pending and completed tasks. In addition, this LruCache will retain ValidationResults from the completed approval work once the task has completed. As per LruCache implementation, the oldest tasks will get evicted as new approval work is submitted to this cache. * node/approval-voting: Revert changes to master This commit reverts changes from the previous commit in order to simplify addressing the architecture discussion raised in the PR. * node/approval-voting: remove background task mpsc construct This diff removes the mpsc construct for background tasks in preparation for a move to leveraging RemoteHandles to launch approvals, rather than passing ApprovalRequests to a mpsc channel and handling the ApprovalRequests in the main subsystem task. * node/approval-voting: Introduce LRU Cache This commit introduces an LRU Cache but does not yet make use of it. * node/approval-voting: Remove BackgroundTasksMap and memoize currently_checking This commit removes the BackgroundTasksMap in the main subsystem task and introduces a method to keep track of RemoteHandles in such a way that we can ensure that a task is spawned once for a CandidateHash and relay parent tuple. * node/approval-voting: Remove BackgroundTasksMap and memoize currently_checking This commit removes the BackgroundTasksMap in the main subsystem task and introduces a map of FuturesUnordered per BlockNumber. In addition, a FusedFuture is generated by iterating across all FuturesUnordered for the BlockNumbers for which at least one candidate has approvals work running in the subsystem. * node/approval-voting: Address Rob's comments This diff removes the prior HashMap<BlockNumber, FuturesUnordered> construction and instead moves to a simple FuturesUnordered where all the work is await with Timeout. * node/approval-voting: Update Cargo.lock Due to a mismatch in rustc versions * node/approval-voting: Make use of actions when issuing_approval This commit fixes a small oversight in the logic of the prior commit. * node/approval-voting: Address Rob's feedback * node/approval-voting: Introduce lazy launch_approval evaluation * node/approval-voting: Send DistibruteApproval message on every LaunchApproval In addition to fixed the DistributeApproval bug, this commit also increases the size of the approvals cache and ensures the StaleGuard is removed when the advantageous approval state is reached. * node/approval-voting: Address final comments This commit removes the CandidateIndex from the ApprovalVoteRequest. Instead, the launch_approval function will compute the candidate_index from the block entry. In addition, a comment has been added explaining the difficulty of issuing approvals in the handle_actions function. * node/approval-voting: Set timeout to be 120s rather than 2s * Update Cargo.lock
-
Andronik Ordian authored
* make spawn sync * improve error type
-
- 15 Jun, 2021 1 commit
-
-
asynchronous rob authored
* Drop guard for detecting stale approvals * address nits with different API
-
- 14 Jun, 2021 1 commit
-
-
asynchronous rob authored
* add more information about what's happening during approval work * record assignment tranches in histogram
-
- 13 Jun, 2021 3 commits
-
-
Andronik Ordian authored
* approval-voting: logs for invalid votes * proper errors for assignment checks * proper errors for approval checks
-
asynchronous rob authored
-
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:
André Silva <123550+andresilva@users.noreply.github.com> * Update node/subsystem/src/messages.rs Co-authored-by:
André 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:
Bernhard Schuster <bernhard@ahoi.io> * Update node/core/dispute-coordinator/src/lib.rs Co-authored-by:
Bernhard Schuster <bernhard@ahoi.io> * extract tests to separate module * address nit * adjust run_iteration API Co-authored-by:
André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by:
Bernhard Schuster <bernhard@ahoi.io>
-
- 11 Jun, 2021 1 commit
-
-
André Silva authored
* replace HistoricalValidationCode usages with ValidationCodeByHash * runtime-api: tabify tests file * update implementers guide
-
- 04 Jun, 2021 1 commit
-
-
asynchronous rob authored
-
- 01 Apr, 2021 1 commit
-
-
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:
Andronik Ordian <write@reusable.software> * add some versioning to parachains_db * warnings * fix merge changes * remove versioning again Co-authored-by:
Andronik Ordian <write@reusable.software>
-
- 30 Mar, 2021 1 commit
-
-
asynchronous rob authored
* guide updates * keep interactions alive until receivers drop * retry indefinitely * cancel approval tasks on finality * use swap_remove instead of remove
-
- 29 Mar, 2021 2 commits
-
-
asynchronous rob authored
-
Robert Klotzner authored
* Remove stuff out of the runtime that does not belong there. There might be more, but it is a start. * White space fixes. * Fix tests. * Leave whitespace in ui tests alone. * Add back zstd for no reason. * Fix browser wasm (hopefully)
-
- 28 Mar, 2021 2 commits
-
-
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:
Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> * 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:
Andronik Ordian <write@reusable.software> * rename ValidationWorkerNotifications Co-authored-by:
Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> Co-authored-by:
Andronik Ordian <write@reusable.software>
-
Andronik Ordian authored
* approval-voting: more spans and metrics * s/db/approval db
-
- 26 Mar, 2021 1 commit
-
-
asynchronous rob authored
* add number to `ActivatedLeavesUpdate` * update subsystem util and overseer * use new ActivatedLeaf everywhere * sort view * sorted and limited view in network bridge * use live block hash only if it's newer * grumples
-
- 25 Mar, 2021 1 commit
-
-
asynchronous rob authored
* f+1 always approves * guide * grumbles * grumbles * fix test * fix tests * Update roadmap/implementers-guide/src/node/approval/approval-voting.md Co-authored-by:
Sergei Shulepov <sergei@parity.io> Co-authored-by:
Sergei Shulepov <sergei@parity.io>
-
- 24 Mar, 2021 1 commit
-
-
asynchronous rob authored
* improve tracing for approval voting * assignment criteria tracing * new syntax
-
- 23 Mar, 2021 1 commit
-
-
asynchronous rob authored
* more approval voting instrumentation * fix `unapproved_candidates` * Update node/core/approval-voting/src/lib.rs Co-authored-by:
Bastian Köcher <bkchr@users.noreply.github.com>
-
- 19 Mar, 2021 1 commit
-
-
Bernhard Schuster authored
-
- 17 Mar, 2021 1 commit
-
-
asynchronous rob authored
-
- 12 Mar, 2021 1 commit
-
-
asynchronous rob authored
-
- 11 Mar, 2021 1 commit
-
-
asynchronous rob authored
* some more metrics for approval voting * fix tests Co-authored-by:
Andronik Ordian <write@reusable.software>
-
- 10 Mar, 2021 2 commits
-
-
asynchronous rob authored
* make approval voting resilient to dropped requests * some more * skip whole chain if encountering spurious error
-
Andronik Ordian authored
* prefix parachain log targets with parachain:: * even more consistent
-
- 09 Mar, 2021 2 commits
-
-
Andronik Ordian authored
* approval-voting metrics * metric: approvals produced
-
asynchronous rob authored
* add a magic number to backing statements encoded * fix fallout in statement table * fix some fallout in backing * add magic to approval votes * remove last references to Candidate variant * update size-hint
-
- 26 Feb, 2021 1 commit
-
-
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.
-
- 25 Feb, 2021 1 commit
-
-
asynchronous rob authored
* some initial spans for approval voting * add stage earlier
-
- 23 Feb, 2021 1 commit
-
-
asynchronous rob authored
* add tracing to approval voting * notify if session info is not working * add dispute period to chain specs * propagate genesis session to parachains runtime * use `on_genesis_session` * protect against zero cores in computation * tweak voting rule to be based off of best and add logs * genesis configuration should use VRF slots only * swallow more keystore errors * add some docs * make validation-worker args non-optional and update clap * better tracing for bitfield signing and provisioner * pass amount of bits in bitfields to inclusion instead of recomputing * debug -> warn for some logs * better tracing for availability recovery * a little av-store tracing * bridge: forward availability recovery messages * add missing try_from impl * some more tracing * improve approval distribution tracing * guide: hold onto pending approval messages until NewBlocks * Hold onto pending approval messages until NewBlocks * guide: adjust comment * process all actions for one wakeup at a time * vec * fix network bridge test * replace randomness-collective-flip with Babe * remove PairNotFound
-
- 22 Feb, 2021 1 commit
-
-
Bastian Köcher authored
* Substrate companion for #8163 https://github.com/paritytech/substrate/pull/8163 * "Update Substrate" Co-authored-by: parity-processbot <>
-