- May 16, 2023
-
-
Marcin S. authored
* PVF: Remove `rayon` and some uses of `tokio` 1. We were using `rayon` to spawn a superfluous thread to do execution, so it was removed. 2. We were using `rayon` to set a threadpool-specific thread stack size, and AFAIK we couldn't do that with `tokio` (it's possible [per-runtime](https://docs.rs/tokio/latest/tokio/runtime/struct.Builder.html#method.thread_stack_size) but not per-thread). Since we want to remove `tokio` from the workers [anyway](https://github.com/paritytech/polkadot/issues/7117), I changed it to spawn threads with the `std::thread` API instead of `tokio`.[^1] [^1]: NOTE: This PR does not totally remove the `tokio` dependency just yet. 3. Since `std::thread` API is not async, we could no longer `select!` on the threads as futures, so the `select!` was changed to a naive loop. 4. The order of thread selection was flipped to make (3) sound (see note in code). I left some TODO's related to panics which I'm going to address soon as part of https://github.com/paritytech/polkadot/issues/7045. * PVF: Vote invalid on panics in execution thread (after a retry) Also make sure we kill the worker process on panic errors and internal errors to potentially clear any error states independent of the candidate. * Address a couple of TODOs Addresses a couple of follow-up TODOs from https://github.com/paritytech/polkadot/pull/7153 . * Add some documentation to implementer's guide * Fix compile error * Fix compile errors * Fix compile error * Update roadmap/implementers-guide/src/node/utility/candidate-validation.md Co-authored-by:
Andrei Sandu <[email protected]> * Address comments + couple other changes (see message) - Measure the CPU time in the prepare thread, so the observed time is not affected by any delays in joining on the thread. - Measure the full CPU time in the execute thread. * Implement proper thread synchronization Use condvars i.e. `Arc::new((Mutex::new(true), Condvar::new()))` as per the std docs. Considered also using a condvar to signal the CPU thread to end, in place of an mpsc channel. This was not done because `Condvar::wait_timeout_while` is documented as being imprecise, and `mpsc::Receiver::recv_timeout` is not documented as such. Also, we would need a separate condvar, to avoid this case: the worker thread finishes its job, notifies the condvar, the CPU thread returns first, and we join on it and not the worker thread. So it was simpler to leave this part as is. * Catch panics in threads so we always notify condvar * Use `WaitOutcome` enum instead of bool condition variable * Fix retry timeouts to depend on exec timeout kind * Address review comments * Make the API for condvars in workers nicer * Add a doc * Use condvar for memory stats thread * Small refactor * Enumerate internal validation errors in an enum * Fix comment * Add a log * Fix test * Update variant naming * Address a missed TODO --------- Co-authored-by:
Andrei Sandu <[email protected]>
-
Marcin S. authored
-
- May 15, 2023
-
-
Tsvetomir Dimitrov authored
* Bump parity-db to 0.4.8 * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
-
- May 12, 2023
-
-
Tsvetomir Dimitrov authored
* Replace `RollingSessionWindow` with `RuntimeInfo` - initial commit * Fix tests in import * Fix the rest of the tests * Remove dead code * Fix todos * Simplify session caching * Comments for `SessionInfoProvider` * Separate `SessionInfoProvider` from `State` * `cache_session_info_for_head` becomes freestanding function * Remove unneeded `mut` usage * fn session_info -> fn get_session_info() to avoid name clashes. The function also tries to initialize `SessionInfoProvider` * Fix SessionInfo retrieval * Code cleanup * Don't wrap `SessionInfoProvider` in an `Option` * Remove `earliest_session()` * Remove pre-caching -> wip * Fix some tests and code cleanup * Fix all tests * Fixes in tests * Fix comments, variable names and small style changes * Fix a warning * impl From<SessionWindowSize> for NonZeroUsize * Fix logging for `get_session_info` - remove redundant logs and decrease log level to DEBUG * Code review feedback
-
Arkadiy Paronyan authored
-
- May 11, 2023
-
-
Aaro Altonen authored
* Companion for paritytech/substrate#14080 * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- May 10, 2023
-
-
Tsvetomir Dimitrov authored
* Bump `kvdb-rocksdb` * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- May 08, 2023
-
-
Chris Sosnin authored
* paras: unconditionally precheck pvfs * Update integration tests * paras_registrar tests * runtime benchmark tests * fix bench * bypass prechecking in test node * adjust bench * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras * ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras * ".git/.scripts/commands/bench/bench.sh" runtime rococo runtime_parachains::paras * ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras * use test helper * fix new test --------- Co-authored-by: command-bot <>
-
Oliver Tale-Yazdi authored
There is a deny(clippy::dbg_macro) in the crate root, so newer Clippy fails here since tests use dbg. But dbg in tests are fine IMHO. Signed-off-by:
Oliver Tale-Yazdi <[email protected]>
-
- May 07, 2023
-
-
Niklas Adolfsson authored
* companion for #14088 * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- May 05, 2023
-
-
Andrei Sandu authored
* impl QueryChunkSize Signed-off-by:
Andrei Sandu <[email protected]> * QueryChunkSize message Signed-off-by:
Andrei Sandu <[email protected]> * enable fetching from backing group for small pov Signed-off-by:
Andrei Sandu <[email protected]> * review feedback Signed-off-by:
Andrei Sandu <[email protected]> * Refactor `bypass_availability_store` Signed-off-by:
Andrei Sandu <[email protected]> * review feedback Signed-off-by:
Andrei Sandu <[email protected]> --------- Signed-off-by:
Andrei Sandu <[email protected]>
-
- May 04, 2023
-
-
Stakeworld authored
-
Davide Galassi authored
* Companion for substrate #14036 * Rollback of some trivial renamings * update lockfile
-
Bulat Saifullin authored
-
Arkadiy Paronyan authored
* Set data_path * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
Niklas Adolfsson authored
* companion for #13384 * adjust parsing RPC address from process output * update rpc cli * update lockfile for {"substrate"} * bump zombienet v1.3.48 * bump zombienet version * allow zombienet-tests-misc-upgrade-node to fail * add comment and issue link to allowed_failure * grumbles: disable failed job * disabled the correct test --------- Co-authored-by: parity-processbot <> Co-authored-by:
Javier Viola <[email protected]>
-
- Apr 28, 2023
-
-
Sebastian Kunert authored
* Allow to skip availability-store * Update node/network/availability-recovery/src/lib.rs Co-authored-by:
Michal Kucharczyk <[email protected]> --------- Co-authored-by:
Michal Kucharczyk <[email protected]>
-
- Apr 26, 2023
-
-
ordian authored
* malus: don't panic if can't fetch validation data * malus: add fast-runtime feature
-
- Apr 25, 2023
-
-
eskimor authored
* Fix stalling dispute coordinator. * Initialization. --------- Co-authored-by:
eskimor <[email protected]>
-
- Apr 24, 2023
-
-
Andrei Sandu authored
* Use stored sessions
🤦 Signed-off-by:Andrei Sandu <[email protected]> * Add test Signed-off-by:
Andrei Sandu <[email protected]> * remove redundant Signed-off-by:
Andrei Sandu <[email protected]> --------- Signed-off-by:
Andrei Sandu <[email protected]>
-
Tsvetomir Dimitrov authored
Rework `dispute-coordinator` to use `RuntimeInfo` for obtaining session information instead of `RollingSessionWindow` (#6968) * Pass `SessionInfo` directly to `CandidateEnvironment::new` otherwise it should be an async function * Replace calls to `RollingSessionWindow` with `RuntimeInfo` Adjust `dispute-coordinator` initialization to use `RuntimeInfo` * Modify `dispute-coordinator` initialization * Pass `Hash` to `process_on_chain_votes` so that `RuntimeInfo` calls can be made Remove some fixmes * Pass `Hash` to `handle_import_statements` to perform `RuntimeInfo` calls * remove todo comments * Remove `error` from `Initialized` Rework new session handling code * Remove db code which is no longer used * Update stale comment and remove unneeded type specification * Cache SessionInfo on startup * Use `DISPUTE_WINDOW` from primitives * Fix caching in `process_active_leaves_update` * handle_import_statements: leaf_hash -> block_hash * Restore `ensure_available_session_info` * Don't interrupt `process_on_chain_votes` if SessionInfo can't be fetched * Small style improvements in logging * process_on_chain_votes: leaf_hash -> block_hash * Restore `note_earliest_session` - it is required to prune disputes and votes * Cache new sessions only when there is an actual session change * Fix tests * `CandidateEnvironment::new` gets `session_idx` and fetches SessionInfo by itself to avoid the invariant where the input SessionIndex and SessionInfo parameters don't match * Fix handling of missing session info * Move sessions caching in `handle_startup` and fix tests * Load `relay_parent` from db in `handle_import_statements` instead of passing it as a parameter via two functions * Don't do two db reads * Fix the twisted logic in `handle_import_statements` * fixup * Small style fix * Decrease log levels for caching errors to debug and fix a typo * Update outdated comment * Remove `ensure_available_session_info` * Load relay parent from db in `process_on_chain_votes` * Revert "Load relay parent from db in `process_on_chain_votes`" This reverts commit 978ad4f223d517faa7a7fbad96e3f8de4fa17501. * Keep track of highest seen session and last session cached without gaps. * Apply suggestions from code review Co-authored-by:
ordian <[email protected]> * Handle session caching failure on startup correctly * Update node/core/dispute-coordinator/src/initialized.rs Co-authored-by:
ordian <[email protected]> * Simplify session caching retries * Update stale comment * Fix lower bound calculation for session caching --------- Co-authored-by:
ordian <[email protected]>
-
- Apr 21, 2023
-
-
ordian authored
* update rocksdb to 0.20.1 * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
Marcin S. authored
* Move PVF workers into separate crate * Fix indentation * Fix compilation errors * Fix more compilation errors * Rename `worker.rs` files, make host interface to worker more clear * Fix more compilation errors * Fix more compilation errors * Add link to issue * Address review comments * Update comment
-
- Apr 20, 2023
-
-
Marcin S. authored
* PVF: Don't dispute on missing artifact A dispute should never be raised if the local cache doesn't provide a certain artifact. You can not dispute based on this reason, as it is a local hardware issue and not related to the candidate to check. Design: Currently we assume that if we prepared an artifact, it remains there on-disk until we prune it, i.e. we never check again if it's still there. We can change it so that instead of artifact-not-found triggering a dispute, we retry once (like we do for AmbiguousWorkerDeath, except we don't dispute if it still doesn't work). And when enqueuing an execute job, we check for the artifact on-disk, and start preparation if not found. Changes: - [x] Integration test (should fail without the following changes) - [x] Check if artifact exists when executing, prepare if not - [x] Return an internal error when file is missing - [x] Retry once on internal errors - [x] Document design (update impl guide) * Add some context to wasm error message (it is quite long) * Fix impl guide * Add check for missing/inaccessible file * Add comment referencing Substrate issue * Add test for retrying internal errors --------- Co-authored-by: parity-processbot <>
-
- Apr 19, 2023
-
-
Marcin S. authored
* pvf: Update docs for PVF artifacts * pvf: Clarify doc re. node start-up
-
dependabot[bot] authored
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.14 to 2.0.15. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.14...2.0.15 ) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by:
dependabot[bot] <[email protected]> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Joakim Nyman authored
-
Davide Galassi authored
* Companion for substrate #13889 * Remove leftover * Remove removed dependency * Remove sp-consensus-vrf from lock * Revert "Remove sp-consensus-vrf from lock" This reverts commit 2269ca1e32df89272e8fd4544292204db387f436. * Fix after substrate modifications * Fix tests to use new VRF Signature type * Don't rely of Deref trait * Fix test * Further code simplification * Reuse garbage_vrf_signature * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
Artyom Bakhtin authored
* Switch to DNS name based bootnodes for Rococo Signed-off-by:
bakhtin <[email protected]> * Switch Rococo bootnodes from WS to WSS Signed-off-by:
bakhtin <[email protected]> --------- Signed-off-by:
bakhtin <[email protected]>
-
- Apr 18, 2023
-
-
André Silva authored
* companion for substrate#13883 * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- Apr 17, 2023
-
-
dependabot[bot] authored
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.85 to 1.0.96. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.85...v1.0.96 ) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by:
dependabot[bot] <[email protected]> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Bumps [hex-literal](https://github.com/RustCrypto/utils) from 0.3.4 to 0.4.1. - [Release notes](https://github.com/RustCrypto/utils/releases) - [Commits](https://github.com/RustCrypto/utils/compare/hex-literal-v0.3.4...hex-literal-v0.4.1 ) --- updated-dependencies: - dependency-name: hex-literal dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <[email protected]> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Koute authored
-
- Apr 13, 2023
-
-
Alexandru Vasile authored
* node: Replace deprecated versions of sc_executor Signed-off-by:
Alexandru Vasile <[email protected]> * Update cargo.lock via `cargo update -p sc-executor` Signed-off-by:
Alexandru Vasile <[email protected]> * Update Cargo.lock with latest substrate Signed-off-by:
Alexandru Vasile <[email protected]> * node: Replace `new` with `new_with_wasm_executor` Signed-off-by:
Alexandru Vasile <[email protected]> * Update substrate to latest Signed-off-by:
Alexandru Vasile <[email protected]> --------- Signed-off-by:
Alexandru Vasile <[email protected]>
-
Andrei Sandu authored
* Send lag update message Signed-off-by:
Andrei Sandu <[email protected]> * Process ApprovalCheckingLagUpdate Signed-off-by:
Andrei Sandu <[email protected]> * Comput min age based on lag Signed-off-by:
Andrei Sandu <[email protected]> * fix comment Signed-off-by:
Andrei Sandu <[email protected]> * Fix tests Signed-off-by:
Andrei Sandu <[email protected]> * Fix test build Signed-off-by:
Andrei Sandu <[email protected]> * Make the spawnhandle optional Signed-off-by:
Andrei Sandu <[email protected]> * remove unused Signed-off-by:
Andrei Sandu <[email protected]> --------- Signed-off-by:
Andrei Sandu <[email protected]>
-
- Apr 12, 2023
-
-
Sam Johnson authored
* globally upgrade syn to 1.0.109 * globally upgrade quote to 1.0.26 * globally upgrade proc-macro2 to 1.0.56 * globally bump syn to v2.0.13 * update expander to v1.0.0 * temporary commit to prove new version of expander works (new version hasn't been released yet so using git) * use expander 2.0.0 * upgrade to syn 2.0.14 * update lock file
-
- Apr 11, 2023
-
-
Mira Ressel authored
* Simplify &(ref foo, _) tuple pattern matches * Drop unneccessary .clone() calls * Replace .position(cond).is_some() by .any(cond) * Drop unneccessary lifetime specs
-
- Apr 08, 2023
-
-
s0me0ne-unkn0wn authored
* Happy New Year! * Remove year entierly Co-authored-by:
Oliver Tale-Yazdi <[email protected]> * Remove years from copyright notice in the entire repo --------- Co-authored-by:
Oliver Tale-Yazdi <[email protected]>
-
- Apr 07, 2023
-
-
Tsvetomir Dimitrov authored
Onchain scraper in `dispute-coordinator` will scrape `SCRAPED_FINALIZED_BLOCKS_COUNT` blocks before finality (#7013) * Onchain scraper in `dispute-coordinator` will scrape `SCRAPED_FINALIZED_BLOCKS_COUNT` blocks before finality The purpose is to make the availability of a `CandidateReceipt` for finalized candidates more likely. For details see: https://github.com/paritytech/polkadot/issues/7009 * Fix off by one error * Replace `SCRAPED_FINALIZED_BLOCKS_COUNT` with `DISPUTE_CANDIDATE_LIFETIME_AFTER_FINALIZATION`
-