* 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
* tweaks from template downstream review #80
* more tweaks
* Update parachain-template/node/src/command.rs
* tweaks to template and other chainspecs
* fmt
* update more tweaks from downstream
* fix build
* Look at the upgrade go-ahead and restriction signals
* Update Cargo.toml
* Drop old docs for validation code
* Update tests
* Fix typo
* Add doc-comments for read_optional_entry
* Add a note about ValidationData
* Introduce migration for removing unused storage entry
* Fix indentation
* Use intra-doc link syntax
* Double-check that GoAhead signal is not spurious
* fmt
* Drop commented code
* Fix typos
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* Add a weight for StorageVersion write
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Chris Sosnin <chris125_@live.com>
Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com>
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Use DecodeLimit for decoding XCM messages
* Use decode_all_with_depth_limit in appropriate places
* Use decode_all while decoding byte vector
* cargo 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>
This is basically a hack that prevents the inclusion of `:code` in the
storage proof. A proper fix requires some changes to the trie crate to
not include nodes that aren't read.
* Start with a failing integration test & some refactorings
* More work
* Make it "work"
* Add `NullConsensus` for the test
* More refactorings
* Move stuff over to its own crate
* Refactorings
* Integrate it into `service` and make the test working
* Docs and some exit condition
* Use the real import queue
* Fix tests
* Update client/pov-recovery/src/active_candidate_recovery.rs
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* Fetch slot duration from the relay chain
* Docs
* Fixes
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>