* 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>
* Adds new event phase `Initialization`
Every event that was deposited inside of `on_initialize` was assigned to
the `ApplyExtrinsic(0)` phase which wasn't correct. This pr introduces a
new phase `Initialization`. This is the new phase while initializing
a block. After initialization we switch to `ApplyExtrinsic(N)` and at
the end to `Finalization` as before.
* Set `ExecutionPhase` in `initialize`
* Increment `spec_version`
* Version bump
* Split generate_changelog.sh into separate script
Can be run in the format `generate_changelog.sh $previous_version $version`.
* remove early exit from publish_draft_release.sh
* adding changelog
* ci: change last_github_release to also find pre-releases
Co-authored-by: Martin Pugh <pugh@s3kr.it>
This updates `parity-scale-codec` to `1.2.0`, which includes multiple
performance improvements and a fix that bounds the capacity of a vector
at decoding.
* setting first batch of descriptions
* fix what I just broke
* next batch
* and pallets, too
* last batch
* set cargo.lock
* keep'em dev-deps
* bump version to alpha.2
* setting versions to development pre-release
fixing version in dependencies
* unset already released wasm-builder
* do not publish test crates
* adding licenses
* setting homepage metadata
* set repository url
* Make `decl_error!` errors usable
This pr implements support for returning errors of different pallets in
a pallet. These errors need to be declared with `decl_error!`.
The pr changes the following:
- Each dispatchable function now returns a `DispatchResult` which is an
alias for `Result<(), DispatchError>`.
- `DispatchError` is an enum that has 4 variants:
- `Other`: For storing string error messages
- `CannotLookup`: Variant that is returned when something returns a
`sp_runtime::LookupError`
- `BadOrigin`: Variant that is returned for any kind of bad origin
- `Module`: The error of a specific module. Contains the `index`,
`error` and the `message`. The index is the index of the module in
`construct_runtime!`. `error` is the index of the error in the error
enum declared by `decl_error!`. `message` is the message to the error
variant (this will not be encoded).
- `construct_runtime!` now creates a new struct `ModuleToIndex`. This
struct implements the trait `ModuleToIndex`.
- `frame_system::Trait` has a new associated type: `ModuleToIndex` that
expects the `ModuleToIndex` generated by `construct_runtime!`.
- All error strings returned in any module are being converted now to `DispatchError`.
- `BadOrigin` is the default error returned by any type that implements `EnsureOrigin`.
* Fix frame system benchmarks
* clean up cargo.toml syntax
* bumping versions to 2.0
* bump networking to 0.8
* move consensus down to 0.8
* bump consensus pallets to 0.8.0, too
* Upping babe and aura pallets
* add remaining, missing version definitions
* missed some
* Adding script for rename, could be applicable for nodes on top of it, too
* add stderr and gitlab ci features
* apply script
* fix now minor details in expected stderr
* Update the Cargo.lock
* fix name: sc-transaction -> sc-tracing
* fix rename in script, too
* define slashing spans
* tests and pruning for slashing-spans record
* validators get slashed before nominators
* apply slash to nominators as well
* chill and end slashing spans
* actually perform slashes
* integration (tests failing)
* prune metadata
* fix compilation
* some tests for slashing and metadata garbage collection
* correctly pass session index to slash handler
* test span-max property for nominators and validators
* test that slashes are summed correctly
* reward value computation
* implement rewarding
* add comment about rewards
* do not adjust slash fraction in offences module
* fix offences tests
* remove unused new_offenders field
* update runtime version
* fix up some docs
* fix some CI failures
* remove no-std incompatible vec! invocation
* try to fix span-max rounding error
* Update srml/staking/src/slashing.rs
Fix type: winow -> window
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* slashes from prior spans don't kick validator again
* more information for nominators, suppression
* ensure ledger is consistent with itself post-slash
* implement slash out of unlocking funds also
* slashing: create records to be applied after-the-fact
* queue slashes for a few eras later
* method for canceling deferred slashes
* attempt to fix test in CI
* storage migration for `Nominators`
* update node-runtime to use SlashDeferDuration
* adjust migration entry-points somewhat
* fix migration compilation
* add manual Vec import to migration
* enable migrations feature in node-runtime
* bump runtime version
* update to latest master crate renames
* update to use ensure-origin
* Apply suggestions from code review
use `ensure!`
Co-Authored-By: Gavin Wood <gavin@parity.io>
* fix multi-slash removal
* initialize storage version to current in genesis
* add test for version initialization