* 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
* A clean new attempt
* Checkpoint to move remote.
* A lot of dependency wiring to make it feature gated.
* bad macro, bad macro.
* Undo the DB mess.
* Update frame/support/src/traits.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* unbreak the build
* Better logging and ids for migrations
* Fix doc.
* Test
* Update frame/try-runtime/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update utils/frame/try-runtime/cli/Cargo.toml
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update frame/try-runtime/Cargo.toml
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Address most review grumbles.
* Fix build
* Add some comments
* Remove allowing one pallet at a time.
* Rework the PR
* nit
* Slightly better error handling.
* Remove files
* Update utils/frame/remote-externalities/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update frame/support/src/dispatch.rs
* Update frame/support/src/dispatch.rs
* Fix test
* Make extension trait.
* Bring back try-runtime/std
* remove bincode
* Remove warning
* Change test features
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* A clean new attempt
* Checkpoint to move remote.
* A lot of dependency wiring to make it feature gated.
* bad macro, bad macro.
* Undo the DB mess.
* Update frame/support/src/traits.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* unbreak the build
* Update frame/try-runtime/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update utils/frame/try-runtime/cli/Cargo.toml
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update frame/try-runtime/Cargo.toml
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Address most review grumbles.
* Fix build
* Add some comments
* Remove allowing one pallet at a time.
* More grumbles.
* relocate remote-ext
* Fix build
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Attempt to remove the where bounds.
* Fix further and further.
* Format better.
* Update primitives/npos-elections/src/lib.rs
* fix build
* remove unused
* fix periodic session
* Allow staking tests to run with session lengths other than 1.
* Update frame/staking/src/mock.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Fix all tests with session length 5.
* Test for active != current
* Better doc
* Update frame/staking/src/lib.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* also set the timestamp properly.
* trigger CI
* Revert "trigger CI"
This reverts commit 0f254944cdad848aa6e63bd8a618db95447a8e68.
* Update frame/staking/src/lib.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* prevent bond_extra to cause staking actve lower than ed
* prevent bond_extra to cause staking actve lower than ed
* Check in post conditions.
* check rebond as well.
* also change withdraw_unbonded.
* Fix build
* change check format.
* Apply suggestions from code review
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Revamp npos-elections and implement phragmms
* Update primitives/npos-elections/src/phragmms.rs
* Fix build
* Some review grumbles
* Add some stuff for remote testing
* fix some of the grumbles.
* Add remote testing stuff.
* Cleanup
* fix docs
* Update primitives/arithmetic/src/rational.rs
Co-authored-by: Dan Forbes <dan@danforbes.dev>
* Small config change
* Better handling of approval_stake == 0
* Final touhces.
* Clean fuzzer a bit
* Clean fuzzer a bit
* Update primitives/npos-elections/src/balancing.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Fix fuzzer.
* Better api for normalize
* Add noramlize_up
* A large number of small fixes.
* make it merge ready
* Fix warns
* bump
* Fix fuzzers a bit.
* Fix warns as well.
* Fix more tests.
Co-authored-by: Dan Forbes <dan@danforbes.dev>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Fix the benchmarks
* Migrate staking to weightInfo
* Fix global benchmarks
* re-calculate the submit solution weight.
* Fix some refund.
* Get rid of all the extra parameters.
* Fix staking tests.
* new values from the bench machine.
* Fix some grumbles
* better macro
* Some better doc
* Move to interpreted wasm
* Make it work temporarily
* Final fix of default ones.
* Fix payout benchmarks
* Fix payout stuff
* One last fix
* use benchmarking machine for numbers
* update weight docs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Make SlashingSpans Public
Offchain Applications will often need to inspect this type because it is directly used in staking election, thus worthy of being `pub`. Rest of the slashing api can remain private, only this and the `fn last_non_zero_slash()` of `SlashingSpans` are of interest.
* Update frame/staking/src/lib.rs
This edge count is used for weighing, and it is somewhat trivial to review and verify that the current implementation was ignoring `votes16` field of the struct. As reminder, the struct is like this:
```rust
struct Compact {
votes1: ... ,
votes2: ...,
...,
votes16: ...,
}
```
I already will fix this in https://github.com/paritytech/substrate/pull/7007, but since it might take a while, this one can go in asap and make it to the very next runtime.
* Better prime election.
* improve docs
* more sensible variable names
* link to Borda count wiki
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update CODEOWNERS
* Cleanup CODEOWNERS
* Remove myself as a code owner
I don’t work on consensus anymore.
* Update CODEOWNERS
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: Demi M. Obenour <demi@parity.io>
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* add normalize
* better api for normalize
* Some grumbles
* Update primitives/arithmetic/src/lib.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* More great review grumbles
* Way better doc for everything.
* Some improvement
* Update primitives/arithmetic/src/lib.rs
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* Initial draft, has some todos left
* remove ununsed import
* Apply suggestions from code review
* Some refactors with migration
* Fix more test and cleanup
* Fix for companion
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update bin/node/runtime/src/impls.rs
* Fix weight
* Add integrity test
* length is not affected.
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Fist draft of offchain weights
* Round of review feedback
* Update frame/staking/src/lib.rs
* Fix fuzzer
* Remove some redundant comment
* Weight refund for submit solution -- potentially revert.
* First version with custom trimming of the result.
* Update frame/staking/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update frame/staking/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Update frame/staking/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update frame/staking/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Some improvements
* Benchmark submit solution without phragmen (PR for First draft of offchain phragmen weights) (#6073)
* implementation of new benchmark
* address comments
* replace test
* Update frame/staking/src/lib.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* update weight
* Fix refund
* Clean and rady for final bench
* Fix line-wdith
* Fix gitlab build
* Fix line-wdith
* Fix test macro
* Update frame/staking/src/lib.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update frame/staking/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Better length check
* Update frame/staking/src/lib.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update final weight coefficients
* Update frame/staking/src/lib.rs
* Apply suggestions from code review
* Update frame/staking/src/testing_utils.rs
* Try and fix the line-width
* Revert "Try and fix the line-width"
This reverts commit b4e284727220085b9b3daf7682c4bbf29621da09.
* Try and fix the line-width the correct way
* Revert "Try and fix the line-width the correct way"
This reverts commit 04fce128e851c9584f9f0d708a5a73cae799d8c8.
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>
* Fist benchmark barely working
* Debug checkpoint
* add rest of benchmarks
* Add to runtime
* Fix build
* Update frame/elections-phragmen/src/benchmarking.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update frame/elections-phragmen/src/benchmarking.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* major imp
* Make them run on release
* Help finish phragmen benchmarks (#5886)
* update caller, account, and member/runner-up creation
* remove stuff
* ocd
* make it work with real run
* relax the numbers a bit
* New and improved version
* Make elections-phragmen weighable and secure. (#5949)
* Make elections-phragmen weighable.
* Update frame/elections-phragmen/src/lib.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update frame/elections-phragmen/src/lib.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Fix all tests
* Fix everything
* Add note
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Doc update
* Fix some complexity params
* Once more ready to benchmark
* ready for bench
* final tunes
* Update frame/elections-phragmen/src/lib.rs
* Fix fix
* Update frame/elections-phragmen/src/lib.rs
* Update frame/elections-phragmen/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update frame/elections-phragmen/src/benchmarking.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update to latest weights
* Some fixes
* Fix dual voter read from @thiolliere
* Remove todos
* review from @shawntabrizi
* Fix bench tests.
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Update README.md
I didn't do a good job at making the gif, but this is just a proposal.
If accepted, I can make a better one or ask Max to help with it.
* better gif file
* New file
* Clean phragmen API and equalise()
* Stabilize new api
* Fix phragmen fuzzers
* More fixes
* Make fuzzers reproducible
* improvements
* Make equalize update assignments as well.
* total function for staked_assignment.
* Fix fuzzer build
* remvoe TODO
* Fix a bunch more.
* clean stray debug stuff
* Update primitives/phragmen/src/lib.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* fix range function
* fix number generator
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
* Initial skeleton for offchain phragmen
* Basic compact encoding decoding for results
* add compact files
* Bring back Self::ensure_storage_upgraded();
* Make staking use compact stuff.
* First seemingly working version of reduce, full of todos
* Everything phragmen related works again.
* Signing made easier, still issues.
* Signing from offchain compile fine 😎
* make compact work with staked asssignment
* Evaluation basics are in place.
* Move reduce into crate. Document stuff
* move reduce into no_std
* Add files
* Remove other std deps. Runtime compiles
* Seemingly it is al stable; cycle implemented but not integrated.
* Add fuzzing code.
* Cleanup reduce a bit more.
* a metric ton of tests for staking; wip 🔨
* Implement a lot more of the tests.
* wip getting the unsigned stuff to work
* A bit gleanup for unsigned debug
* Clean and finalize compact code.
* Document reduce.
* Still problems with signing
* We officaly duct taped the transaction submission stuff. 🤓
* Deadlock with keys again
* Runtime builds
* Unsigned test works 🙌
* Some cleanups
* Make all the tests compile and stuff
* Minor cleanup
* fix more merge stuff
* Most tests work again.
* a very nasty bug in reduce
* Fix all integrations
* Fix more todos
* Revamp everything and everything
* Remove bogus test
* Some review grumbles.
* Some fixes
* Fix doc test
* loop for submission
* Fix cli, keyring etc.
* some cleanup
* Fix staking tests again
* fix per-things; bring patches from benchmarking
* better score prediction
* Add fuzzer, more patches.
* Some fixes
* More docs
* Remove unused generics
* Remove max-nominator footgun
* Better fuzzer
* Disable it ❌
* Bump.
* Another round of self-review
* Refactor a lot
* More major fixes in perThing
* Add new fuzz file
* Update lock
* fix fuzzing code.
* Fix nominator retain test
* Add slashing check
* Update frame/staking/src/tests.rs
Co-Authored-By: Joshy Orndorff <JoshOrndorff@users.noreply.github.com>
* Some formatting nits
* Review comments.
* Fix cargo file
* Almost all tests work again
* Update frame/staking/src/tests.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* Fix review comments
* More review stuff
* Some nits
* Fix new staking / session / babe relation
* Update primitives/phragmen/src/lib.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* Update primitives/phragmen/src/lib.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* Update primitives/phragmen/compact/src/lib.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* Some doc updates to slashing
* Fix derive
* Remove imports
* Remove unimplemented tests
* nits
* Remove dbg
* Better fuzzing params
* Remove unused pref map
* Deferred Slashing/Offence for offchain Phragmen (#5151)
* Some boilerplate
* Add test
* One more test
* Review comments
* Fix build
* review comments
* fix more
* fix build
* Some cleanups and self-reviews
* More minor self reviews
* Final nits
* Some merge fixes.
* opt comment
* Fix build
* Fix build again.
* Update frame/staking/fuzz/fuzz_targets/submit_solution.rs
Co-Authored-By: Gavin Wood <gavin@parity.io>
* Update frame/staking/src/slashing.rs
Co-Authored-By: Gavin Wood <gavin@parity.io>
* Update frame/staking/src/offchain_election.rs
Co-Authored-By: Gavin Wood <gavin@parity.io>
* Fix review comments
* fix test
* === 🔑 Revamp without staking key.
* final round of changes.
* Fix cargo-deny
* Update frame/staking/src/lib.rs
Co-Authored-By: Gavin Wood <gavin@parity.io>
Co-authored-by: Joshy Orndorff <JoshOrndorff@users.noreply.github.com>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>
* Give perthigns the trait it always deserved.
* Make staking and phragmen work with the new generic per_thing
* Make everything work together 🔨
* a bit of cleanup
* Clean usage
* Bump.
* Fix name
* fix grumbles
* hopefully fix the ui test
* Some grumbles
* revamp traits again
* Better naming again.
* Add serde to phragmen
* Update lock file
* and bump a version
* and bump a version again
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* revert impl-tarit for tuple update
* revert session.
* Revert "revert session."
This reverts commit 98086c9db56677068db85f74320868b2c10d1c00.
* Revert "revert impl-tarit for tuple update"
This reverts commit 28a7fddee2e09c5785b19883f743065e0be8f331.
* initial version for testing
* New version that compiles
* optional at block parameter
* Fix some more view grumbles.
* Update srml/transaction-payment/src/lib.rs
* Initial draft that compiles
* Extract payment stuff from balances
* Extract multiplier update stuff from system
* Some fixes.
* Update len-fee as well
* some review comments.
* Remove todo
* bump
* First working version of all operations.
* New and improved version of everything.
* Minor cleanup.
* Fix build
* Finalize nignum
* Some final works on refactors and tests.
* fix build
* Some review comments
* Bench, better try into and nits
* mutify the API
* rename to big_uint
* unmutify.
* Remove resize
* Apply suggestions from code review
* Update core/sr-primitives/src/sr_arithmetic.rs
Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
* BEtter proof
* Fix panic doc.
* Bump.