* emit a custom section from impl_runtime_apis!
This change emits a custom section from the impl_runtime_apis! proc macro.
Each implemented API will result to emitting a link section `runtime_apis`.
During linking all sections with this name will be concatenated and
placed into the final wasm binary under the same name.
* Introduce `runtime_version` proc macro
This macro takes an existing `RuntimeVersion` const declaration, parses
it and emits the version information in form of a linking section.
Ultimately such a linking section will result into a custom wasm
section.
* Parse custom wasm section for runtime version
* Apply suggestions from code review
Co-authored-by: David <dvdplm@gmail.com>
* Fix sc-executor integration tests
* Nits
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Refactor apis section deserialization
* Fix version decoding
* Reuse uncompressed value for CallInWasm
* Log on decompression error
* Simplify if
* Reexport proc-macro from sp_version
* Merge ReadRuntimeVersionExt
* Export `read_embedded_version`
* Fix test
* Simplify searching for custom section
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
We need this in order to be able to assemble more fine grained host
function sets.
E.g. we don't want to use `SubstrateHostFunctions` for PVF. We would
better whitelist certain host functions. However, we cannot do that
because we cannot refer to the `Allocator` runtime interface.
I have not been able to find the reason why it wasn't made `pub` in the
first place, but do not see any reason why not to.
* Update polkadot
* Migrate all uses of MQC heads to merkle proofs
* Mass rename `relay_parent_storage_root`
* Restore parachain-system tests
* Update polkadot and libp2p swarm for testing
* Collapse match into an if let
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Start with something
* Update Substrate & Polkadot
* Start to make it compile
* Make it compile
* Begin with something
* Yep
* I'm a hacker
* Bring back the builder
* Make it work in some way
* Compile
* Parachains use their own "slot"
* Adds cumulus-pallet-aura
* Wrap AuRa import queue to disable equivocation checking by default
* Pass slot duration
* Check the seal when validating a block
* Adds missing file
* Try to make the seal working
* Fix it
* Some fixes
* Bring in the latest features to cleanup the code
* Update and make it compile
* Improve the import
* Start fixing
* More work
* Fix fix fix
* Make everything compile
* Small cleanups
* Rename and more docs
* Docs
* Fixes fixes fixes
* Update rococo-parachains/src/chain_spec.rs
* Update client/consensus/aura/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update client/consensus/aura/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update primitives/parachain-inherent/Cargo.toml
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update primitives/parachain-inherent/Cargo.toml
* Update primitives/parachain-inherent/Cargo.toml
* Update primitives/parachain-inherent/Cargo.toml
Co-authored-by: Sergei Shulepov <sergei@parity.io>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Upgrade parachain info pallet to FRAMEv2
* Upgrade parachain system pallet to FRAMEv2
* Use Pallet<T> instead of Module<T>
* Upgrade XCMP queue pallet to FRAMEv2
* Correctly specify the metadata for events in xcmp-queue pallet
* Apply suggestions from code review
* Update pallets/parachain-system/src/tests.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* requiring users to maintain an unchecked invariant is unsafe
* relax trait restrictions on BoundedVec<T, S>
A normal `Vec<T>` can do many things without any particular trait
bounds on `T`. This commit relaxes the bounds on `BoundedVec<T, S>`
to give it similar capabilities.
* Make ParaId value of public paras non-discretionary
* Fixes
* Fixes
* fix tests
* fix benchmark tests
* dont use hardcoded number
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* contracts: Add default implementation for Executable::occupied_storage()
* contracts: Refactor the exec module
* Let runtime specify the backing type of the call stack
This removes the need for a runtime check of the specified
`MaxDepth`. We can now garantuee that we don't need to
allocate when a new call frame is pushed.
* Fix doc typo
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Review nits
* Fix defect in contract info caching behaviour
* Add more docs
* Fix wording and typos
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
* Reusable RunCmd struct
* wire new run command through service
* Fill in the rest of the methods
* attempt normalization
* Settle on the borrowing approach
* add the normalize call
* bump substrate
* Update client/cli/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Update docs
* Update client/cli/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Allow fallback names for protocols
* Apply suggestions from code review
Co-authored-by: Roman Proskuryakov <humbug@deeptown.org>
* Fix some issues
* Fix compilation after merging master
Co-authored-by: Roman Proskuryakov <humbug@deeptown.org>
* Add `BoundedBTreeMap` to `frame_support::storage`
Part of https://github.com/paritytech/substrate/issues/8719.
* max_encoded_len will never encode length > bound
* requiring users to maintain an unchecked invariant is unsafe
* only impl debug when std
* add some marker traits
* add tests