Implement runtime version checks in set_code (#4548)

* Implement runtime version checks in `set_code`

Check that the new runtime code given to `set_code` fullfills some
requirements:

- `spec_name` matches
- `spec_version` does not decreases
- `impl_version` does not decreases
- Either `spec_version` and `impl_version` increase

* Make tests almost work

* Some fixes after master merge

* Fix tests

* Add missed file

* Make depedency check happy?

* Remove leftover `sc-executor`

* AHHHHH

* Reset debug stuff

* Remove some 'static

* More 'static

* Some docs

* Update `Cargo.lock`
This commit is contained in:
Bastian Köcher
2020-01-16 13:58:37 +01:00
committed by Gavin Wood
parent 437772be9e
commit afc3318f21
38 changed files with 584 additions and 279 deletions
+3 -3
View File
@@ -165,7 +165,7 @@ impl<Executor, Backend, G: GenesisInit> TestClientBuilder<Executor, Backend, G>
>,
sc_client::LongestChain<Backend, Block>,
) where
Executor: sc_client::CallExecutor<Block>,
Executor: sc_client::CallExecutor<Block> + 'static,
Backend: sc_client_api::backend::Backend<Block>,
Block: BlockT,
{
@@ -224,8 +224,8 @@ impl<E, Backend, G: GenesisInit> TestClientBuilder<
sc_client::LongestChain<Backend, Block>,
) where
I: Into<Option<NativeExecutor<E>>>,
E: sc_executor::NativeExecutionDispatch,
Backend: sc_client_api::backend::Backend<Block>,
E: sc_executor::NativeExecutionDispatch + 'static,
Backend: sc_client_api::backend::Backend<Block> + 'static,
Block: BlockT,
{
let executor = executor.into().unwrap_or_else(||