* Use primitives reexported from `polkadot_primitives` crate root
* restart CI
* Fixes after merge
* update lockfile for {"polkadot", "substrate"}
Co-authored-by: parity-processbot <>
* Refactor `validate_block`
This pull request changes the `validate_block` implementation. One of the key changes are that we
free data structures as early as possible. The memory while validating the block is scarce and we
need to give as much as possible to the actual execution of the block. Besides that the pr moves the
validation of the `validation_data` into the `validate_block` implementation completely instead of
using this machinery with putting the data into some global variable that would then be read while
executing the block. There are also some new docs to explain the internals of `validate_block`.
* No clone wars!!
* Integrate more feedback
* FMT
* Delay the header encoding
* Ensure that inherents are first and unsigned
* Update pallets/parachain-system/src/validate_block/tests.rs
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: Sergei Shulepov <sergei@parity.io>
* Align to changes in substrate: `sp_io::storage::get` now returns `Bytes`
* Update substrate and polkadot to the newest master
* update lockfile for {"substrate", "polkadot"}
Co-authored-by: parity-processbot <>
* Ensure relay chain block number strictly increases
This is a safeguard for when async backing is enabled on the relay chain and multiple parachain
blocks per relay chain block are legal. We will need to later change this to support then multiple
parachain blocks per relay chain block.
* Make the check configurable
* Fix compilation
* Update pallets/parachain-system/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update pallets/parachain-system/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Fix test
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* state-update4 branch
* new ref
* Update to latest.
* update deps
* switch to host state version
* update
* fmt
* up
* remove trie patch
* remove patch
* fmt
* update
* set state_versions in runtimes
* state version from storage
* state version from storage
* seedling compat
* restore lock
* update lockfile for substrate
* update lockfile for polkadot
Co-authored-by: parity-processbot <>
* Adds support for returning a custom header from `validate_block`
This adds support for returning a custom header from `validate_block`. Before this, we always
returned the header of the block that was validated (and still do it by default). However, after
this pr it is possible to set a custom header or better custom head data that will be returned
instead from `validate_block`. This can be for example when a chain wants to fork.
* FMT
* Adds support for checking the timestamp inherent while validating a block
This adds support for checking the timestamp inherent while validating a
block. This will use the relay chain slot number * relay chain slot
duration to calculate a timestamp. This timestamp is used to check the
timestamp in the timestamp inherent.
* Update polkadot-parachains/rococo-runtime/src/lib.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update polkadot-parachains/statemine-runtime/src/lib.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Update primitives/timestamp/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Fix warnings
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Introduce `CollectCollationInfo` runtime api
Instead of using well known keys to communicate information about a
collation between the runtime and the collator, we now use a runtime api
for this.
* Fixes bug
* Apply suggestions from code review
Co-authored-by: Sergei Shulepov <sergei@parity.io>
* Doc update
Co-authored-by: Sergei Shulepov <sergei@parity.io>
* Add a command to purge the relay chain only
* WIP
* Update rococo-parachains/src/cli.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Move cli stuff to its own crate
* Copyright dates
* Test not working for some reason...
* WIP
* Revert "WIP"
This reverts commit f97cd63742c7df822e4a6e52a29db5e0f56b7bfa.
* Fix test to use provided relay chain
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Add hint about which database could not be purged
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Currently validation data is shared by using a well known key between
the parachain system pallet and the validate block implementation. This
pr changes this by passing the parachain system directly to the validate
block implementation to make use of it. Besides that, we also store the
validation params in some thread local variable to make it inspectable
by parachain system. This moves the validation of validation data and
validation params to the parachain system pallet directly, instead of
having this hidden inside the validate block implementation.
Fixes: https://github.com/paritytech/cumulus/issues/217
* Move pallets to pallets folder and rename them
* Move genesis file to service
* Rename primitives to primitives-core
* Delete cumulus-runtime
* Move stuff to client folder and rename