* refactor beefy mmr
* use plain vector of bytes for leaf extra
* update comment
* update comments
* remove unused vars
* Use sp_std::vec::Vec
Co-authored-by: Adrian Catangiu <adrian@parity.io>
* make extra data generic
* fix tests
* refactor beefy-mmr
* Update frame/beefy-mmr/src/lib.rs
* minor fix
* fmt
* Update frame/beefy-mmr/src/lib.rs
Co-authored-by: Adrian Catangiu <adrian@parity.io>
* Update storage weights
These weights were generated on a recent Polkadot chain snapshot
at Block 9643856 from 2022-03-29 17:50:30 (+UTC) using RocksDB.
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* Update ParityDb weights
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* Fail if `MaxVoters` too small
* Fixing benchmarking test, better naming of error
* reverting accidental change
* use fully qualified syntax
no need to interate to calculate len
* Fail directly if too many voters
* Update `regex` to 1.5.5
* Update `libc` to 0.2.121
* Update `handlebars` to 4.2.2
* Update `lru` to 0.7.3
* Update `zeroize` to 1.5.4 and `zeroize_derive` to 1.3.2
* update lockfile for {"substrate"}
Co-authored-by: parity-processbot <>
* `seal_origin` + tests added
* `seal_origin` benchmark added
* `seal_code_hash` + tests added
* `seal_code_hash` benchmark added
* `seal_own_code_hash` + tests added
* `seal_own_code_hash` benchmark added
* fmt lil fix
* akward accident bug fix
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* benchmark fix
* `WasmModule::getter()` to take `module_name` arg
* test enhanced
* fixes based on review feedback
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Hash left as const to return a ref to it from mock
* HASH test val to local const in mock
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fixes to benchmarks according to review feedback
* cargo run --quiet --profile=production --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
* removed `seal_origin` from API
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Parity Bot <admin@parity.io>
* Implement transfer_asset on CurrencyAdapter
* Use Currency::transfer in transfer_asset
* Add a test to assert that Currency::transfer was indeed used
* Remove superfluous balance conversion to u128
* Rename transfer_asset and beam_asset
Co-authored-by: Giles Cope <gilescope@gmail.com>
* Fix doc
* Formatting fixes and bump prio if host functions are detected
* Add canvas
* Bump canvas-kusama's runtime version to 800
* Add db migrations
* Prepare for client releases
* Split the upload of the context artifact
* Rename of the srtool digests to match script default expectations
* Fix runtime name for canvas
* Fix jobs dependencies when skipping jobs/steps for client builds
* Fix CI for the client builds
* Fix issue when building in client mode
* Bump checkout action to v3 and gate some tests
* Fix notification
ref #851
* Adding `Fallback` on election failure
Use the newly introduced `BoundedOnChainSequentialPhragmen`
and `UnboundedOnChainSequentialPhragmen`
* Adding `BoundedOnchainExecution`
after changes in substrate
* Introducing `ExecutionConfig`
from `frame_election_provider_support::onchain`
* `OnChainSequentialPhragmen` > `OnChainSeqPhragmen`
Renaming to have a shorter name
* `BoundedOnchainExecution` -> `BoundedExecution`
And `UnboundedOnchainExecution` -> `UnboundedExecution`
* `Fallback` back to `NoFallback`
`UnboundedExecution` for `GovernanceFallback`
* Update runtime/test-runtime/src/lib.rs
* update lockfile for {"substrate"}
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: parity-processbot <>
* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478
* Fixing a typo
* Adding some more tests
Removing a seemingly outdated comment
* making it a URL
* Updating test name as per suggestion
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Updating documentation to be more explicit
And to follow the general guidelines
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Fixing formatting
* `Fallback` now of type `InstantElectionProvider`
Some cleanups
* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478
* Fixing a typo
* Adding some more tests
Removing a seemingly outdated comment
* making it a URL
* Updating test name as per suggestion
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Updating documentation to be more explicit
And to follow the general guidelines
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Fixing formatting
* `Fallback` now of type `InstantElectionProvider`
Some cleanups
* Merging types into one type with generics
* Removing `ConstUSize` and use `ConstU32`
* cleaning up the code
* deprecating `OnChainSequentialPhragmen`
Renaming it to `UnboundedSequentialPhragmen` which should only be used
at genesis and for testing.
Use preferrably `BoundedOnChainSequentialPhragmen`
* Amending docs
* Adding some explicit imports
* Implementing generic `BoundedOnchainExecution`
Removing the deprecated `OnChainSequentialPhragmen`
* Use the right Balancing strategy
* Refactoring `onchain::Config`
Creating `onchain::ExecutionConfig`
* Merge master
* fmt
* Name cleanups after review suggestions
* cosmetics
* renaming `instant_elect` to `elect_with_bounds`
Other corresponding changes as per @kianenigma feedback
* `BoundedOnchainExecution` -> `BoundedExecution`
And `UnboundedOnchainExecution` -> `UnboundedExecution`
* feedback from kian
* fmt + unneeded import
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: kianenigma <kian@parity.io>
Simplified BEEFY worker logic based on the invariant that GRANDPA
will always finalize 1st block of each new session, meaning BEEFY
worker is guaranteed to receive finality notification for the
BEEFY mandatory blocks.
Under these conditions the current design is as follows:
- session changes are detected based on BEEFY Digest present in
BEEFY mandatory blocks,
- on each new session new `Rounds` of voting is created, with old
rounds being dropped (for gossip rounds, last 3 are still alive
so votes are still being gossiped),
- after processing finality for a block, the worker votes if
a new voting target has become available as a result of said
block finality processing,
- incoming votes as well as self-created votes are processed
and signed commitments are created for completed BEEFY voting
rounds,
- the worker votes if a new voting target becomes available
once a round successfully completes.
On worker startup, the current validator set is retrieved from
the BEEFY pallet. If it is the genesis validator set, worker
starts voting right away considering Block #1 as session start.
Otherwise (not genesis), the worker will vote starting with
mandatory block of the next session.
Later on when we add the BEEFY initial-sync (catch-up) logic,
the worker will sync all past mandatory blocks Signed Commitments
and will be able to start voting right away.
BEEFY mandatory block is the block with header containing the BEEFY
`AuthoritiesChange` Digest, this block is guaranteed to be finalized
by GRANDPA.
This session-boundary block is signed by the ending-session's
validator set. Next blocks will be signed by the new session's
validator set. This behavior is consistent with what GRANDPA does
as well.
Also drop the limit N on active gossip rounds. In an adversarial
network, a bad actor could create and gossip N invalid votes with
round numbers larger than the current correct round number. This
would lead to votes for correct rounds to no longer be gossiped.
Add unit-tests for all components, including full voter consensus
tests.
Signed-off-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: David Salami <Wizdave97>
* pallet-conviction-voting: make the pallet instanceable
Signed-off-by: koushiro <koushiro.cqx@gmail.com>
* Add default type param for some type alias
Signed-off-by: koushiro <koushiro.cqx@gmail.com>