* not climate
* explain the intent of the bool in the unsigned phase
* remove glob imports from unsigned.rs
* add OffchainRepeat parameter to ElectionProviderMultiPhase
* migrate core logic from #7976
This is a much smaller diff than that PR contained, but I think
it contains all the essentials.
* improve formatting
* fix test build failures
* cause test to pass
* Apply suggestions from code review
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* collapse imports
* threshold acquired directly within try_acquire_offchain_lock
* add test of resubmission after interval
* add test that ocw can regenerate a failed cache when resubmitting
* ensure that OCW solutions are of the correct round
This should help prevent stale cached solutions from persisting
past the election for which they are intended.
* add test of pre-dispatch round check
* use `RawSolution.round` instead of redundantly externally
* unpack imports
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* rename `OFFCHAIN_HEAD_DB` -> `OFFCHAIN_LOCK`
* rename `mine_call` -> `mine_checked_call`
* eliminate extraneous comma
* check cached call is current before submitting
* remove unused consts introduced by bad merge.
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* resubmit when our solution beats queued solution
* clear call cache if solution fails to submit
* use local storage; clear on ElectionFinalized
* Revert "use local storage; clear on ElectionFinalized"
This reverts commit 4b46a9388532d0c09b337dc7c7edf76044a6cee8.
* BROKEN: try to filter local events in OCW
* use local storage; simplify score fetching
* fix event filter
* mutate storage instead of setting it
* StorageValueRef::local isn't actually implemented yet
* add logging for some events of interest in OCW miner
* rename kill_solution -> kill_ocw_solution to avoid ambiguity
* defensive err instead of unreachable given unreachable code
* doc punctuation
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* distinguish miner errors between "out of date" and "call invalid"
* downgrade info logs -> debug
* ensure encoded call decodes as a call
* fix semantics of validation of pre-dispatch failure for wrong round
* move score check within `and_then`
* add test that offchain workers clear their cache after election
* ensure that bad ocw submissions are not retained for resubmission
* simplify fn ocw_solution_exists
* add feasibility check when restoring cached solution
should address https://github.com/paritytech/substrate/pull/8290/files#r617533358
restructures how the checks are sequenced, which simplifies legibility.
* simplify checks again
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* 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 <gui.thiolliere@gmail.com>
* 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 <gui.thiolliere@gmail.com>
* 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
* It all works
* Some self cleanup
* Update frame/staking/src/lib.rs
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* remove most todos.
* Round of self-review.
* Fix migration
* clean macro
* Revert wrong merge
* Make the number of nominations configurable
* Self reivew
* renmae.
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
* 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
We were using the wrong syntax and that will be dropped with Rust 2021.
The compiler already starts to hint the wrong syntax with warnings. So,
we fix this here.