- Mar 17, 2021
-
-
kaichao authored
-
Zeke Mostov authored
* Migrate pallet-proxy to pallet attribute macro Part of #7882. Converts the `Proxy` pallet to the new pallet attribute macro introduced in #6877. [Upgrade guidelines used](https://substrate.dev/rustdocs/v3.0.0/frame_support/attr.pallet.html#upgrade-guidelines). ##
⚠ ️ Breaking Change⚠ ️ From [checking upgrade guidelines](https://crates.parity.io/frame_support/attr.pallet.html#checking-upgrade-guidelines) > storages now use PalletInfo for module_prefix instead of the one given to `decl_storage`: use of this pallet in `construct_runtime!` needs careful updating of the name in order to not break storage or to upgrade storage (moreover for instantiable pallet). If pallet is published, make sure to warn about this breaking change. So users of the `Assets` pallet must be careful about the name they used in `construct_runtime!`. Hence the `runtime-migration` label, which might not be needed depending on the configuration of the `Assets` pallet. ### Notes There are some changes to the docs in metadata for the constants. The docs in the metadata for constants are now more complete. -
Peter Goodspeed-Niklaus authored
* Improve complexity of CompactAssignments::unique_targets Original implementation was O(n**2). Current impl is O(n log n). Avoided the original proposed mitigation because it does not retain the de-duplicating property present in the original implementation. This implementation does a little more work, but retains that property. * Explicitly choose sp_std Vec and BTreeSet Ensures that the macro still works if someone uses it in a context in which sp_std is not imported or is renamed. * explicitly use sp_std vectors throughout compact macro
-
- Mar 16, 2021
-
-
Denis_P authored
* CI: run cargo deny only nightly before it's fixed * Release missing 3.0 crates: pallet-node-authorization sc-finality-grandpa-warp-sync (#8360) * bump pallet-node-authorization * prepping sc-finality-grandpa-warp-sync for release * bump Cargo.lock * Update ss58-registry.json (#8351) Added Plasm Network description * [CI] Require D*-audit labels for any runtime changes (#8345) * add check for audit labels if runtime change * fix shellcheck nits * include lib.sh in check_runtime.sh * fix check_labels.sh * fix check_labels.sh * oops, this is github actions... * why wont this work * fetch all refs * Update check-labels.yml * print env - wtf is happening * checkout the PR... * ffs * fix * REVERT ME: test runtime check * Revert "REVERT ME: test runtime check" This reverts commit 0fd2b04abeeac12dd8ede4c0708cb796f9e3e722. * Fix CI benchmark check (#8380) * CI: run cargo deny only nightly before it's fixed Co-authored-by: Benjamin Kampmann <[email protected]> Co-authored-by: Aleksandr Krupenkin <[email protected]> Co-authored-by: Martin Pugh <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
-
Bastian Köcher authored
-
Martin Pugh authored
* add check for audit labels if runtime change * fix shellcheck nits * include lib.sh in check_runtime.sh * fix check_labels.sh * fix check_labels.sh * oops, this is github actions... * why wont this work * fetch all refs * Update check-labels.yml * print env - wtf is happening * checkout the PR... * ffs * fix * REVERT ME: test runtime check * Revert "REVERT ME: test runtime check" This reverts commit 0fd2b04abeeac12dd8ede4c0708cb796f9e3e722.
-
Aleksandr Krupenkin authored
Added Plasm Network description
-
Benjamin Kampmann authored
* bump pallet-node-authorization * prepping sc-finality-grandpa-warp-sync for release * bump Cargo.lock
-
Bastian Köcher authored
* Update diener to enable polkadot companions that use new crates Diener will be updated in the CI image to make it possible to have companions that add new crates from Substrate. Besides that the wasm-bindgen is updated, because `0.2.70` is not available anymore on crates.io. * update lock Co-authored-by: kianenigma <[email protected]>
-
Gavin Wood authored
-
gabriel klawitter authored
-
Gavin Wood authored
* Initial abstraction * Alter rest of APIs * Fixes * Some extra getters in Gilt pallet. * Refactor Gilt to avoid u128 conversions * Simplify and improve pow in per_things * Add scalar division to per_things * Renaming from_fraction -> from_float, drop _approximation * Fixes * Fixes * Fixes * Fixes * Make stuff build * Fixes * Fixes * Fixes * Fixes * Update .gitignore Co-authored-by: Kian Paimani <[email protected]> * Update frame/gilt/src/lib.rs Co-authored-by: Kian Paimani <[email protected]> * Update frame/gilt/src/mock.rs Co-authored-by: Kian Paimani <[email protected]> * Fixes * Fixes * Fixes Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Kian Paimani <[email protected]>
-
Kian Paimani authored
* Base features and traits. * pallet and unsigned phase * Undo bad formattings. * some formatting cleanup. * Small self-cleanup. * Make it all build * self-review * Some doc tests. * Some changes from other PR * Fix session test * Update Cargo.lock * Update frame/election-provider-multi-phase/src/lib.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Some review comments * Rename + make encode/decode * Do an assert as well, just in case. * Fix build * Update frame/election-provider-multi-phase/src/unsigned.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Las comment * fix staking fuzzer. * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Add one last layer of feasibility check as well. * Last fixes to benchmarks * Some more docs. * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Some nits * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Fix doc * Mkae ci green * Audit fixes for election-provider: part 2 signed phase. * Fix weight * Some grumbles. * Try and weigh to get_npos_voters * Fix build * Fix line width * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Fix tests. * Fix build * Reorg some stuff * More reorg. * Reorg done. * Fix build * Another rename * Fix build * Update frame/election-provider-multi-phase/src/mock.rs Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> * nit * better doc * Line width * Fix build * Self-review * Self-review * Fix wan * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_election_provider_multi_phase --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/election-provider-multi-phase/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * fix build and review comments. * Update frame/election-provider-multi-phase/src/lib.rs Co-authored-by: Shawn Tabrizi <[email protected]> * add comment Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: Parity Benchmarking Bot <[email protected]> Co-authored-by: Peter Goodspeed-Niklaus <[email protected]>
-
Peter Goodspeed-Niklaus authored
* Add PJR challenge functions - Updates the PJR check to return a counterexample if one exists - Adds functions to cheaply check counterexamples This is in support of off-chain PJR challenges: if a miner discovers that an accepted election solution does not satisfy PJR, it will be eligible for substantial rewards. This helps ensure that validator elections have an absolute quality floor, so even if someone manages to censor well-behaved solutions to give themselves unfair representation, we can catch them in the act and penalize them. * counterexample -> counter_example * reorganize: high -> low abstraction * reorganize challenges high -> low abstraction * add note justifying linear search * Simplify max_pre_score validation Co-authored-by: Kian Paimani <[email protected]> * add minor test of pjr challenge validation Co-authored-by: Kian Paimani <[email protected]>
-
Shaun Wang authored
* Support pallet::storage conditional compilation. * Add docs for cfg attributes. * Keep strong types for get cfg attrs return. * Update frame/support/procedural/src/pallet/parse/helper.rs * Update frame/support/procedural/src/pallet/parse/storage.rs Co-authored-by: Bastian Köcher <[email protected]>
-
- Mar 15, 2021
-
-
Kian Paimani authored
* Don't log so many stkaing events on genesis block * Clean a few more warn and info logs * Update frame/staking/src/lib.rs * Update frame/staking/src/lib.rs
-
Falco Hirschenberger authored
Make it possbible to use the pallet's path name, with `-` separator or crate name with `_` separator. fixes #8226
-
Kian Paimani authored
-
Qinxuan Chen authored
Signed-off-by: koushiro <[email protected]>
-
- Mar 12, 2021
-
-
Robert Klotzner authored
-
Kian Paimani authored
-
André Silva authored
* frame-support: add method to estimate current session progress * im-online: use EstimateNextSessionRotation trait to delay heartbeats * node: fix im-online pallet instantiation * frame-support: fix docs * frame: fix tests * pallet-session: last block of periodic session means 100% session progress * pallet-session: add test for periodic session progress * pallet-babe: fix epoch progress and add test * frame-support: return weight with session estimates * pallet-im-online: add test for session progress logic
-
Alexander Theißen authored
* contracts: Expose rent parameter to contracts * cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Fix typos * Improve comments * Add rent parameter weights * Allow deploying a new schedule with the same version * Add storage migration for new schedule * Only decode the schedule version in storage migration * Remove confusing docs * Replace original_code_len() by aggregate_code_len() Co-authored-by: Parity Benchmarking Bot <[email protected]>
-
Bastian Köcher authored
We introduced banning of peers who spam us with the same request (more than 2 times). However, we missed that it is completely legal to send the same request multiple times as long as we did not provide any answer. An example for that is the justification request. This request is send multiple times until we could fetch the justification from one of our peers. So, the solution to this problem is to tag requests as fulfilled and to start counting these fulfilled requests. If the number is higher than what we allow, the peer should be banned.
-
- Mar 11, 2021
-
-
Bastian Köcher authored
The timestamp inherent type was up to now just a simple `u64`. This worked, but doesn't give you that much guarantees at compile time about the type. This pr changes that by converting this type to a unit type wrapper, similar to what we have done for `Slot`. This is required for some future pr that touches quite a lot of the inherents stuff :) Besides this unit wrapper type, this pr also moves the `OnTimestampSet` trait to `frame_support::traits`.
-
Pierre Krieger authored
-
JesseAbram authored
* add in idle hook * remaining weight passed through to on_idle * added weight return * remove TODO * weight adjustment fix * added adjusted weight into tuple * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * compile errors for on_idle in dispatch * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * on idle tuple clean up * register reduced weight * collect and add reduced wait from on idle call * better demo example * Update frame/support/procedural/src/pallet/expand/hooks.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * added tests to dispatch.rs * idle test on executive * skip on idle if remaining weight is 0 * Update frame/executive/src/lib.rs Co-authored-by: Alexander Popiak <[email protected]> * Update frame/support/src/dispatch.rs Co-authored-by: Alexander Popiak <[email protected]> * abstract common logic out to functions * docs * remove demo example * remove debug * spacing * docs * revert template pallet to master * change reduced weight to used weight * remove empty line * lint * spacing * Update frame/support/src/traits.rs Co-authored-by: Shawn Tabrizi <[email protected]> * documentation * Update frame/support/procedural/src/pallet/expand/hooks.rs Co-authored-by: Guillaume Thiolliere <[email protected]> * docs * Update frame/support/src/traits.rs Co-authored-by: Alexander Popiak <[email protected]> * docs * Update frame/support/src/traits.rs Co-authored-by: Alexander Popiak <[email protected]> * Update frame/support/src/traits.rs Co-authored-by: Alexander Popiak <[email protected]> * Update frame/support/src/traits.rs Co-authored-by: Alexander Popiak <[email protected]> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: Alexander Popiak <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]>
-
Wei Tang authored
-
Pierre Krieger authored
-
dependabot[bot] authored
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.22 to 0.1.25. - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.22...tracing-0.1.25) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Cecile Tonglet authored
polkadot companion: paritytech/polkadot#2535
-
Andreas Doerr authored
-
Peter Goodspeed-Niklaus authored
* Apply. * get rid of glob import * use meaningful generic type name * pjr_check operates on `Supports` struct used elsewhere * improve algorithmic complexity of `prepare_pjr_input` * fix rustdoc warnings * improve module docs * typo * simplify debug assertion * add test finding the phase-change threshold value for a constructed scenario * add more threshold scenarios to disambiguate plausible interpretations * add link to npos paper reference * docs: staked_assignment -> supports Co-authored-by: Kian Paimani <[email protected]> * add utility method for generating npos inputs * add a fuzzer which asserts that all unbalanced seq_phragmen are PJR Note that this currently fails. I hope that this can be rectified by calculating the threshold instead of choosing some arbitrary number. * assert in all cases, not just debug * leverage a native solution to choose candidates * use existing helper methods * add pjr-check and incorporate into the fuzzer We should probably have one of the W3F people look at this to ensure we're not misconstruing any definitions, but this seems like a fairly straightforward implementation. * fix compilation errors * Enable manually setting iteration parameters in single run. This gives us the ability to reproducably extract cases where honggfuzz has discovered a panic. For example: $ cargo run --release --bin phragmen_pjr -- --candidates 569 --voters 100 Tue 23 Feb 2021 11:23:39 AM CET Compiling bitflags v1.2.1 Compiling unicode-width v0.1.8 Compiling unicode-segmentation v1.7.1 Compiling ansi_term v0.11.0 Compiling strsim v0.8.0 Compiling vec_map v0.8.2 Compiling proc-macro-error-attr v1.0.4 Compiling proc-macro-error v1.0.4 Compiling textwrap v0.11.0 Compiling atty v0.2.14 Compiling heck v0.3.2 Compiling clap v2.33.3 Compiling structopt-derive v0.4.14 Compiling structopt v0.3.21 Compiling sp-npos-elections-fuzzer v2.0.0-alpha.5 (/home/coriolinus/Documents/Projects/paritytech/substrate/primitives/npos-elections/fuzzer) Finished release [optimized] target(s) in 6.15s Running `/home/coriolinus/Documents/Projects/paritytech/substrate/target/release/phragmen_pjr -c 569 -v 100` thread 'main' panicked at 'unbalanced sequential phragmen must satisfy PJR', primitives/npos-elections/fuzzer/src/phragmen_pjr.rs:133:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace This is still not adequate proof that seq_phragmen is broken; it could very well be that our PJR checker is doing the wrong thing, or we've somehow missed a parameter of interest. Still, it's concerning. * update comment verbiage for accuracy * it is valid in PJR for an elected candidate to have 0 support * Fix phragmen_pjr fuzzer It turns out that the fundamental problem causing previous implementations of the fuzzer to fail wasn't in `seq_phragmen` _or_ in `pjr_check`: it was in the rounding errors introduced in the various conversions between the internal data representation and the external one. Fixing the fuzzer is then simply an issue of using the internal representation and staying in that representation. However, that leaves the issue that `seq_phragmen` occasionally produces an output which is technically not PJR due to rounding errors. In the future we will need to add some kind of "close-enough" threshold. However, that is explicitly out of scope of this PR. * restart ci; it appears to be stalled * use necessary import for no-std * use a more realistic distribution of voters and candidates This isn't ideal; more realistic numbers would be about twice these. However, either case generation or voting has nonlinear execution time, and doubling these values brings iteration time from ~20s to ~180s. Fuzzing 6x as fast should make up for fuzzing cases half the size. * identify specifically which PJR check may fail * move candidate collection comment into correct place * standard_threshold: use a calculation method which cannot overflow * Apply suggestions from code review (update comments) Co-authored-by: Kian Paimani <[email protected]> * clarify the effectiveness bounds for t-pjr check * how to spell "committee" * reorganize: high -> low abstraction * ensure standard threshold calc cannot panic Co-authored-by: Kian Paimani <[email protected]> * Apply suggestions from code review Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: kianenigma <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]>
-
- Mar 10, 2021
-
-
asynchronous rob authored
* more clear randomness API for BABE * babe: move randomness utilities to its own file * node: use babe::RandomnessFromOneEpochAgo in random_seed implementation * frame-support: annotate randomness trait with block number * pallet-randomness-collective-flip: fix for new randomness trait * pallet-society: fix randomness usage * pallet-lottery: fix randomness usage * pallet-contracts: fix randomness usage * pallet-babe: fix randomness usage we need to track when the current and previous epoch started so that we know the block number by each existing on-chain was known * node: fix random_seed * node-template: fix random_seed * frame-support: extend docs * babe: add test for epoch starting block number tracking * babe: fix epoch randomness docs * frame: add todos for dealing with randomness api changes Co-authored-by: André Silva <[email protected]>
-
Tomasz Drwięga authored
* Add MMR custom RPC. * Change RuntimeApi to avoid hardcoding leaf type. * Properly implement the new RuntimeAPI and wire up RPC. * Extract Offchain DB as separate execution extension. * Enable offchain DB access for offchain calls. * Fix offchain_election tests. * Skip block initialisation for proof generation. * Fix integration test setup. * Fix offchain tests. Not sure how I missed them earlier
🤷 . * Fix long line. * One more test missing. * Update mock for multi-phase. * Address review grumbbles. * Address review grumbles. * Fix line width of a comment -
Denis_P authored
* CI: return docs jobs allowing them to fail * CI: refrain from Dwarnings for now * CI: pass RUSTFLAGS directly; no need removing what wasn't there
-
Ashley authored
* Make changes * Add serialize/deserialize, copy babe epoch config defaults from node runtime * Fix line widths and turn default features off for serde * Remove ser/deser from Epoch, fix node-cli * Apply suggestions * Add comment to BABE_GENESIS_EPOCH_CONFIG in bin * Apply suggestions * Add a sketchy migration function * Add a migration test * Check for PendingEpochConfigChange as well * Make epoch_config in node-cli * Move updating EpochConfig out of the if * Fix executor tests * Calculate weight for add_epoch_configurations * Fix babe test * Apply suggestions from code review Co-authored-by: André Silva <[email protected]> * Add more asserts to tests, remove unused changes to primitives/slots * Allow setting the migration pallet prefix * Rename to BabePalletPrefix Co-authored-by: André Silva <[email protected]>
-
- Mar 09, 2021
-
-
Bastian Köcher authored
-
Bastian Köcher authored
* Introduce new concept of "slot portion for proposing" Currently when building a block we actually give the proposer all of the time in the slot, while this is wrong. The slot is actually split in at least two phases proposing and propagation or in the polkadot case into three phases validating pov's, proposing and propagation. As we don't want to bring that much polkadot concepts into Substrate, we only support splitting the slot into proposing and propagation. The portion can now be passed as parameter to AuRa and BABE to configure this value. However, this slot portion for propagation doesn't mean that the proposer can not go over this limit. When we miss slots we still apply the lenience factor to increase the proposing time, so that we have enough time to build a heavy block. Besides all what was said above, this is especially required for parachains. Parachains have a much more constraint proposing window. Currently the slot duration is at minimum 12 seconds, but we only have around 500ms for proposing. So, this slot portion for proposing is really required to make it working without hacks. * Offgit feedback * Cast cast cast
-
Alexander Theißen authored
-