* Update polkadot
* Extend cumulus primitives with some relay chain exports
Follow https://github.com/paritytech/polkadot/pull/2194 to see the
polkadot PR
* collator: collect the state proof
This commit changes cumulus-collator so that it takes the relay chain
state at the relay parent and creates a storage proof that contains all
the required data for PVF.
* parachain-upgrade: use the proofs instead
This change is needed to make cumulus logic to not longer depend on the
transient validation data. As part of this change, in order to preserve
the current behavior `code_upgrade_allowed` now is computed on the
parachain side, rather than provided by polkadot.
Turned out that this requires to know the self parachain id so it was
added where needed.
* message-broker: use relay state to track limits
this should make sending messages safe from accidentally running over
the relay chain limits that were previously unknown.
* Update polkadot
So that `relay_storage_root` is available through `ValidationParams`
* Check `relay_storage_root` matches expected
Check that `relay_storage_root` submitted by the collator matches the
one that we receive in `validate_block` through `ValidationParams`
* Add a missing check for `dmq_mqc_head` while we are at it
* Update polkadot
* Fix tests that use the relay storage root
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update message-broker/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Remove unneeded (&_)
* Fix unwraps
* Polish basti's suggestion
* Fix merge
* Bring back the System::can_set_code check
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Wait for block import in parachain consensus
There was a bug in the parachain consensus that when importing a relay
chain block that sets a new best parachain block, but the required
parachain block was not yet imported. This pr fixes this by waiting for
the block to be imported.
* Finish docs
* The problem in the nutshell
* Make it compile
* make tests pass
* Update the parachain-upgrade module
* Fix collator tests
Co-authored-by: Bastian Köcher <git@kchr.de>
* HRMP message ingestion
* Plumb hrmp_watermark to build_collation
* Plumb hrmp_watermark to ValidationResult
* Plumb hrmp outbound messages
* Implement message-broker part of HRMP
* Kill UPWARD_MESSAGES as well
Otherwise, they will get resent each block
* Add sudo versions for easier testing
* Remove the xcmp module
Not useful for the moment
* Doc for HRMP message handler
* Estimate the weight upper bound for on_finalize
* Remove a redundant type annotation
* fix spelling of a method
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Deabbreviate dmp and hrmp in the message ingestion type
* Don't use binary_search since it's broken by a following rotate
Instead use the linear search. We can afford linear search here since
due to limited scalability of HRMP we can only have at most a couple of
dozens of channels.
* Fix the watermark
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* plumb polkadot_client into Collator
* plumb para_id into Collator
* promote retrieve_dmq_contents to a method
* remove the retrieve_dmq_contents closure
* Start with something
* Whatever
* Update
* MOARE
* Make cumulus-network compile and tests work
* Update more and fixes
* More stuff
* More fixes
* Make collator build
* Make test almost work
* Remove contracts runtime
* More test work
* Make service compile
* Fix test-service
* Fix test client
* More fixes
* Fix collator test
* Fix network tests (again)
* Make everything compile, finally
* Fix tests
* Write test that should fail
* Add `WaitOnRelayChainBlock`
* Update git versions
* Make it all work
* Update logging
* Switch to provided method for pushing an extrinsic
* Try to debug CI
* Aaaa
* Only use Debug
* Updates
* Use native execution to hopefully make CI happy...
This is mostly a copy of the predating version with exception of some
renaming and alterations (e.g. the message handler takes an inbound
downward message by value, not by reference).
* Add --raw flag to export-genesis-state
* Switch export-genesis-wasm to hex by default
Also add --raw flag. This makes it similar to `export-genesis-state`.
* test
* switch to branch
* Use modified.
* Use sp_externalities environmental primitives
* Change to latest no_std version, add missing host function boilerplate.
* remove comment (was used for debugging).
* fixes
* with_externalities factor
* Read merged change from overlay.
* Start with something
* Whatever
* Update
* MOARE
* Make cumulus-network compile and tests work
* Update more and fixes
* More stuff
* More fixes
* Make collator build
* Make test almost work
* Remove contracts runtime
* More test work
* Make service compile
* Fix test-service
* Fix test client
* More fixes
* Fix collator test
* Fix network tests (again)
* Make everything compile, finally
* Fix tests
* Update to latest masters
* Remove ignore
* Switch to different branch in polkadot for now
* Update reference
* Make it compile with latest changes
* Update collator/src/lib.rs
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
* Update to latest upstream
* Update to latest master
* Fix test
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>