* Draft of new sessions
* Reintroduce tuple impls
* Move staking module to new session API
* More work on staking and grandpa.
* Use iterator to avoid cloning and tuple macro
* Make runtime build again
* Polish the OpaqueKeys devex
* Move consensus logic into system & aura.
* Fix up system module
* Get build mostly going. Stuck at service.rs
* Building again
* Update srml/staking/src/lib.rs
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
* Refactoring out Consensus module, AuthorityIdOf, &c.
* Refactored out DigestItem::AuthoritiesChanged. Building.
* Remove tentative code
* Remove invalid comment
* Make Seal opaque and introduce nice methods for handling opaque items.
* Start to use proper digest for Aura authorities tracking.
* Fix up grandpa, remove system::Raw/Log
* Refactor Grandpa to use new logging infrastructure.
Also make authorityid/sessionkey static. Switch over to storing
authorities in a straight Vec.
* Building again
* Tidy up some AuthorityIds
* Expunge most of the rest of the AuthorityKey confusion.
Also, de-generify Babe and re-generify Aura.
* Remove cruft
* Untangle last of the `AuthorityId`s.
* Sort out finality_tracker
* Refactor median getting
* Apply suggestions from code review
Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>
* Session tests works
* Update core/sr-primitives/src/generic/digest.rs
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
* Session tests works
* Fix for staking from @dvc94ch
* log an error
* fix test runtime build
* Some test fixes
* Staking mock update to new session api.
* Fix build.
* Move OpaqueKeys to primitives.
* Use on_initialize instead of check_rotate_session.
* Update tests to new staking api.
* fixup mock
* Fix bond_extra_and_withdraw_unbonded_works.
* Fix bond_with_little_staked_value_bounded_by_slot_stake.
* Fix bond_with_no_staked_value.
* Fix change_controller_works.
* Fix less_than_needed_candidates_works.
* Fix multi_era_reward_should_work.
* Fix nominating_and_rewards_should_work.
* Fix nominators_also_get_slashed.
* Fix phragmen_large_scale_test.
* Fix phragmen_poc_works.
* Fix phragmen_score_should_be_accurate_on_large_stakes.
* Fix phragmen_should_not_overflow.
* Fix reward_destination_works.
* Fix rewards_should_work.
* Fix sessions_and_eras_should_work.
* Fix slot_stake_is_least_staked_validator.
* Fix too_many_unbond_calls_should_not_work.
* Fix wrong_vote_is_null.
* Fix runtime.
* Fix wasm runtime build.
* Update Cargo.lock
* Fix warnings.
* Fix grandpa tests.
* Fix test-runtime build.
* Fix template node build.
* Fix stuff.
* Update Cargo.lock to fix CI
* Re-add missing AuRa logs
Runtimes are required to know about every digest they receive ― they
panic otherwise. This re-adds support for AuRa pre-runtime digests.
* Update core/consensus/babe/src/digest.rs
Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>
* Kill log trait and all that jazz.
* Refactor staking tests.
* Fix ci runtime wasm check.
* Line length 120.
* Make tests build again
* Remove trailing commas in function declarations
The `extern_functions!` macro doesn’t like them, perhaps due to a bug in
rustc.
* Fix type error
* Fix compilation errors
* Fix a test
* Another couple of fixes
* Fix another test
* More test fixes
* Another test fix
* Bump runtime.
* Wrap long line
* Fix build, remove redundant code.
* Issue to track TODO
* Leave the benchmark code alone.
* Fix missing `std::time::{Instant, Duration}`
* Indentation
* Aura ConsensusLog as enum
* Require --locked when building runtime
* Update locks
* Do it in a different way
* Accidentally reverted Cargo.lock
* pass on arguments in build.sh scripts
* Introduce inherent digests
* Implement inherent digests
* fix silly error
* Implementation of inherent digests in BABE
All tests pass. There are still limitations:
1. The runtime strips out inherent digests, so BABE must re-add them.
2. The test runtime checks that it can re-compute all digests. It
can’t, so I had to comment out that test.
* Fix compilation and seal import
Seals were not imported correctly: the pre-digest was imported twice,
instead of both it and the seal being imported. Also, other parts of
the code did not compile due to incomplete refactoring.
* Remove bogus assertion
* Fix testsuite compilation
* Remove unused import
* Fix compiler diagnostics
* Add inherent digest parameters to block constructors
This enforces that inherent digests are added first.
* Fixup Cargo.lock
* Fix build errors
* Re-add an incorrectly removed import
* Bump primitive-types version
* Update Cargo.lock
* Refactoring
* Use inherent digests for AuRa
They do reach the runtime, but get stripped. I have not figured out
where.
* Fix compilation errors
* Fix compilation errors due to incorrect types
* Fix whitespace
Suggested-by: Tomasz Drwiega <tomasz@parity.io>
* Add preamble
Suggested-by: Tomasz Drwiega <tomasz@parity.io>
* Fix silly compile error
* Refactor pre-digest finding code into a separate function
* Remove unwanted assertion
It is too likely to bring down the entire blockchain.
Suggested-by: Tomasz Drwiega <tomasz@parity.io>
* Use `find_pre_digest` after runtime, too
Also, use `Member` trait rather than rolling our own requirements.
Suggested-by: Tomasz Drwiega <tomasz@parity.io>
* Fix various warnings
mostly due to upgrading the dependency on `error_chain`.
* Pre-digests nearly complete
This nearly completes the implementation of pre-runtime digests.
* `Seal2` → `Seal` and fix test suite
* Try to fix the storage error
* Try to fix storage (again)
* Fix tests
* Hopefully finish pre-runtime digests
The key is to pass *only* the pre-runtime digests to the runtime. The
others must be stripped out by `initialize_block`.
* Fix silly typo
* Fix another silly mistake
* Remove unnecessary filtering of BABE pre-digests
We no longer get duplicate BABE pre-digests, so if they appear, the
header should be rejected outright.
* Update Cargo.lock files
* Reformatting
* Fix silly typo in inherent digest code
Also, revert `error.rs` files that contained calls to the `error_chain!`
macro.
* Try to keep the runtime from stripping pre-digests
Currently runs into the “Storage root must match that calculated”
assertion.
* Don’t compute storage root until storage changes are done.
Also, fix a compilation error.
* Fix compile-time error
* Fix compilation errors
* Fix more compile errors
* Hopefully it compiles this time…
* Fix compilation and add docs
* Prevent BABE from adding duplicate pre-runtime digests
Found by comparing with the AuRa code. I also did some refactoring.
* Respond to review and fix some warnings
* Delete some dead code introduced earlier
* More dead code goes away
* `ref mut` → `&mut`
* Respond to review and fix some warnings
* Fix compilation error
* Remove unneeded `HashT` type parameter
Suggested-by: Robert Habermeier <robert@parity.io>
* Remove spurious #[allow(deprecated)]
* Document inherent digest parameter to `build_block`
* Delete `Simple` trait
It wasn’t needed
* delete wrongly added files
* Fix trait bounds
* Digest serialization tests
I also did some reformatting and cleanup.
* Apply suggestions from code review
Reformatting
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Swap two arguments to `propose` and `propose_with`
Also, remove some needless unsafe code.
* Remove bogus `#![allow(deprecated)]` annotations
With the removal of the deprecated `Seal` variant, these are not needed.
* Add a missing `#[allow(deprecated)]` in the AuRa tests
* Fix silly compile error
* Fix silly compiler error
RLS did not tell me that I hadn’t fixed `babe/lib.rs`, so I missed it.
* Fixes made automatically by Cargo
* Start to remove the `As` bound on `SimpleArtithmetic`
This just introduces standard numeric bounds, assuming a minimum of
`u32`. Also included is a saturating from/into trait allowing ergonomic
infallible conversion when you don't care if it saturates.
* Remove As from Balances trait
* Remove As from Aura module
* Remove As from Babe module
* Expunge `As` from contract
* Council module
* Democracy
* Finality tracker
* Grandpa
* First bit of indices
* indices
* Line lengths
* session
* system
* Staking
* Square up all other uses of As.
* RHD update
* Fix build/test
* Remove As trait
* line widths
* Remove final As ref
* Update srml/staking/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Update core/client/src/cht.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Update core/client/db/src/light.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* whitespace
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Bring back u32 check for number on CLI
`impl_runtime_apis!` is not only implementing the apis, it also calls
them internally and thus generates the warning. So, we just allow
depracted calls in the generated code.
* ensure imbalances are properly accounted for (#2183)
* ensure imbalances are properly accounted for
* bump runtime version
* Update node/runtime/src/lib.rs
* implement contract events (#2161)
* implement contract events
* update runtime
* renaming
* update test code hash
* improve complexity details
* add deposit event base cost
* add test
* Revert "add deposit event base cost"
This reverts commit 58ec010c0f4f4f0e16935ad41da32aedd17a8c57.
* update test
* Revert "update test"
This reverts commit 6fe61a593ccf0d41f09a0b97472b28ed8751a999.
* Revert "Revert "add deposit event base cost""
This reverts commit 145e8a9bac15313a4c380aa66b94fd4d36fa3f6d.
* Fix format a bit
* Replace Vec<u8> with [u8; 32] for contract storage key (#2184)
* Replace Vec<u8> with [u8; 32] for contract storage key
* Read storage keys from sandbox memory into fixed size buffer
* Increment `impl_version`
* Remove redundant Ok(()) and explicitly specify StorageKey buffer type (#2188)
* Switch to `derive(Encode, Decode)` for `Call` (#2178)
* Add some tests
* More tests
* Switch to `derive(Encode, Decode)` for `Call`
* Update lock files
* Simplify the macro cases
* Cache changes trie config in db storage (#2170)
* cache changes trie config in db storage
* Update core/client/db/src/lib.rs
Co-Authored-By: svyatonik <svyatonik@gmail.com>
* Update core/client/db/src/lib.rs
Co-Authored-By: svyatonik <svyatonik@gmail.com>
* Fix version check for renamed runtime api methods (#2190)
* Add feature to disable including the test-runtime wasm blob
* Enable `std` feature for `consensus_authorities`
* Implement `skip_initialize_block` and `initialize_block` for runtime api
* Add test and fixes bug
* Begin to implement support for passing the `ProofRecorder`
* Make sure proof generation works as intended
* Fixes tests
* Make `BlockBuilder` generate proofs on request.
* Adds `TestClientBuilder` to simplify creating a test client
* Add `include-wasm-blob` to `test-client` as well
* Make `test-client` compile without including the wasm file
* Disable more stuff in test-client without wasm
* Reorganize the re-exports
* Use correct bounds
* Update docs
* Update core/client/src/block_builder/block_builder.rs
Co-Authored-By: bkchr <bkchr@users.noreply.github.com>
* Extend test to actually generated proof
* Switch to enum for `skip_initialize_block`
* Some wasm files updates
* Adds deposit event benchmark
* Add `StorageValue::append`
`StorageValue::append` can be used by types that implement `EncodeAppend` to speed-up situations where you just want to append
an item to storage without wanting to decode all previous items.
* Stay at 100 events
* Fixes compilation
* Use correct year and increase spec version
* Move authorities interface from Core to consensus
f
* notify all caches of block insert + create with up-to-date best_fin
* merged authorities_are_cached from light_grandpa_import2
* Add ProvideCache trait
* Create helper function for 'get_cache'
* Fix some formatting
* Bump impl version
* Resolve wasm conflicts
* Apply review comments
* Use try_for_each
* Move authorities interface from Core to consensus
f
* notify all caches of block insert + create with up-to-date best_fin
* merged authorities_are_cached from light_grandpa_import2
* Add ProvideCache trait
* Create helper function for 'get_cache'
* Fix some formatting
* Bump impl version
* Resolve wasm conflicts
* Apply review comments
* Use try_for_each
* Move authorities interface from Core to consensus
f
* notify all caches of block insert + create with up-to-date best_fin
* merged authorities_are_cached from light_grandpa_import2
* Add ProvideCache trait
* Create helper function for 'get_cache'
* Fix some formatting
* Bump impl version
* Resolve wasm conflicts
* Apply review comments
* Use try_for_each
* Increment impl_version
* Update lib.rs
* Add `start_aura2`.
* .gitignore patch conflict files
and remove one that accidentally got committed
* Fix build
The tests still don’t work.
* Fix compilation errors
* Fix compile errors (again)
* Try (and fail) to fix tests
* Properly deserialize data
Previously, `DigestItem::Consensus` had no separate `DigestItemType`,
so it did not get properly serialized and deserialized.
* Add extra debug logging. Always allow old seals.
A `RUST_LOG=substrate_aura_consensus cargo test --all -- --nocapture \
tests::authoring_blocks` revealed that old seals were being and
rejected, causing the test to hang. As a temporary debug measure, allow
old seals unconditionally, so that CI can test if this fixes the
problem.
* Forcibly disable rejection of old seals
* Use old trait, but newer serialization
The old trait for `CompatibleDigestItem` actually worked. By changing
its implementation, one can ensure that all *new* seals have the modern
form, but *legacy* seals are still decoded correctly.
* Bump impl version
* Squash spurious deprecation warning
`rustc` should not be emitting a deprecation warning in deprecated
code, but it does, so silence it.
* Rip out unused Cargo feature
* Move AURA to aura_primitives
* Respond to code review
* Wrap overly-long line
* Reduce logging verbosity and add target
* Add dependency on `sr-primitives` to `aura_primitives`
* Fix build
It failed with a message about Cargo.lock being out of date.
* core: aura: rename aura engine id const
* core: aura: remove superfluous logging
* core: primitives: add removed semicolons
* core: aura: remove unused import
* core: network: style fix
* runtime: update wasm blobs
* runtime: bump impl_version
* core: primitives: tag all DigestItemType variants explicitly
* Refactor state-machine stuff.
* Fix tests.
* WiP
* WiP2
* Service support for offchain workers.
* Service support for offchain workers.
* Testing offchain worker.
* Initial version working.
* Pass side effects in call.
* Pass OffchainExt in context.
* Submit extrinsics to the pool.
* Support inherents.
* Insert to inherents pool.
* Inserting to the pool asynchronously.
* Add test to offchain worker.
* Implement convenience syntax for modules.
* Dispatching offchain worker through executive.
* Fix offchain test.
* Remove offchain worker from timestamp.
* Update Cargo.lock.
* Address review comments.
* Use latest patch version for futures.
* Add CLI parameter for offchain worker.
* Fix compilation.
* Fix test.
* Fix extrinsics format for tests.
* Fix RPC test.
* Bump spec version.
* Fix executive.
* Fix support macro.
* Address grumbles.
* Bump runtime
* expose linked map info to metadata
* Make it non breaking change
* another way
* change to option 1
* bump metadata version
* fix test
* bump version and update wasm
* Be a little safer with total issuance.
* PairT instead of _Pair
* Remove rev causing upset
* Remove fees stuff.
* Fix build (including tests)
* Update runtime, bump version
* Fix
* Handle gas refunds properly.
* Rename identifier
ala #2025
* Address grumbles
* New not-quite-linear-typing API
* Slimmer API
* More linear-type test fixes
* Fix tests
* Tidy
* Fix some grumbles
* Keep unchecked functions private
* Remove another less-than-safe currency function and ensure that
contracts module can never create cash.
* Address a few grumbles and fix tests
* first implementation
* remove done comment
* origin done
* impl log for instance
* impl inherent for instance
* Fix wasm build + full example build
this requires parity codec implements codec for core::marker::PhantomData
* patch parity-codec link to github branch
* improve internal names and fix instance prefix
* Fix in macros
* add test modules for support
this allow to test for construct_runtime as well.
The reason to have put that in another crate is:
* if we put test in `tests/` dir of srml/support then decl_storage fails to get
srml-support access because it believes it is inside srml-support
crate and so derive access to `quote!{ crate }` but this is wrong
(and I don't see any way to prevent that, and it only bother us so I
don't think that matters that much)
* if we put test inside lib.rs then contruct_runtime cannot be used
because it call some macros that are defined with macros
(decl_outer_event and decl_outer_origin) and thus rustc complains.
* defaultinstance to its own struct to avoid errors
* enforce <T, I> for Event and Config, impl test
* add origin, log, inherent to test
* test more code generation
* basic storage test
* fix typo
* rename a few imports and field
* delete wip test in example and runtime
* change default prefix to make it backward compatible with test
* rename Instance to I and Instantiable to Instance
note: the name of generic parameter I is only enforce by decl_module!
and this could be rewritten
* doc
* clean old TODOs
* update parity-codec to 3.2
* update node impl version + builds
* fix warning
* fix unrelated grandpa test
* refactor code
* Clean up session key rotation
* Fix build
* Bump version
* Introduce feature to balances.
* Move staking locking logic over to central point
* ^^^ rest
* First part of assimilation
* More assimilation
* More assimilation
* Fix most tests
* Fix build
* Move Balances to new locking system
* :q!
* Bump runtime version
* Build runtime
* Convenience function
* Test fix.
* Whitespace
* Improve type legibility.
* Fix comment.
* More tests.
* More tests.
* Bump version
* Caps
* Whitespace
* Whitespace
* Remove unneeded function.
* Make use of parity-codec "derive" crate feature
* Bump impl_version
* Update wasm files and Cargo.lock files
* Transferred to parity_codec derive feature for the rest of the crates
* Update wasm binaries and lock files
* Update core and node wasm binaries
* First steps to stash/controller separation
* More drafting
* More drafting
* Finish draft.
* Optimisation
* Remove accidental commit
* Make it build.
* Fix linked map for traits.
* Fix Option<_> variant.
* Improve naming a tad
* Rebuild runtime
* Builds!
* First test.
* Bump RT version
* Minor fix
* Update Mock
* adds the correct reward testcase (+staking eras which was already ok)
* fixes the basic staking testcase to work properly (along with a small fix in the module)
* New logic to avoid controller transferring stash.
* Fix some build issues.
* adding some comments to tests
* Fix impls.
* adds a few more lines to explain the test case
* More fixes.
* gets the basic test up and running again
* Fix rest of build
* Rebuild wasm
* Fix docs.
* fix staking test with new chnages
* updating some tests, pending questions
* More working tests
* adds double staking test
* Docs
* remove invalid slashing test
* Payee stuff.
* Fix build
* Docs
* Fix test
* Fix a couple of tests
* Layout plan for finishing tests before Pragmen
* Add some working tests
* re-build staking and reward tests
* Add more tests
* fix offline grace test
* Nominator should have payee checked for cleanup
* adds more nomination tets
* adds validator prefs tests
* Fix and clean up some TODOs
* Fix a couple of issues
* Fix tests
* noting warnings from tests
* final fix of local tests
* Fix slot_stake bug
* Half baked test
* Add logic to limit `unstake_threshold` set in storage
* Make sure to check before writing!
Almost forgot this one
* Move a couple of comments
* fix last broken slot_stake test
* Ignore broken test
* first draft of ristretto crypto module #1685
* adds better comments and code-style
* remove the last evil unwrap
* remove a mistakenly committed lockfile
* add a fresh new lockfile --will probably need a manual merge later
* fix an invalid old test vector
* Wire in ristretto
* Update comment
* Fix use.
* new Signature type api alias to be compatible with substrate
* Add new keyring, fix node executor tests
* Bump version.
* Remove all hashes.
* Update core/primitives/src/sr25519.rs
Co-Authored-By: gavofyork <github@gavwood.com>
* Revert back to Ed25519 (until JS UI is ready)
* Fix test
Procedural do not support `$crate` to get access to the crate where the
macro is defined. We use a hack to re-export the crate under a known
name. With rust edition 2018, people started to rename their crates in
`Cargo.toml`, but that breaks the re-export. This commit introduces
`proc-maco-crate` that supports finding the requested crate name, even
if it was renamed.