Don't include :code by default in storage proofs (#5179)

* Don't include `:code` by default in storage proofs (#5060)

* Adds test to verify that the runtime currently is always contained in
the proof

* Start passing the runtime wasm code from the outside

* Fix compilation

* More build fixes

* Make the test work as expected now :)

* Last fixes

* Fixes benchmarks

* Review feedback

* Apply suggestions from code review

Co-Authored-By: Sergei Pepyakin <sergei@parity.io>

* Review feedback

* Fix compilation

Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>

* Fix compilation and change the way `RuntimeCode` works

* Fix tests

* Switch to `Cow`

Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org>
Co-authored-by: Sergei Pepyakin <s.pepyakin@gmail.com>
This commit is contained in:
Bastian Köcher
2020-03-10 11:13:20 +01:00
committed by GitHub
parent 0cc3b96076
commit 1cfcf5cbfe
39 changed files with 597 additions and 363 deletions
+14
View File
@@ -89,6 +89,8 @@ mod tests {
};
let hash = header.hash();
let mut overlay = OverlayedChanges::default();
let backend_runtime_code = sp_state_machine::backend::BackendRuntimeCode::new(&backend);
let runtime_code = backend_runtime_code.runtime_code().expect("Code is part of the backend");
StateMachine::new(
backend,
@@ -98,6 +100,7 @@ mod tests {
"Core_initialize_block",
&header.encode(),
Default::default(),
&runtime_code,
).execute(
ExecutionStrategy::NativeElseWasm,
).unwrap();
@@ -111,6 +114,7 @@ mod tests {
"BlockBuilder_apply_extrinsic",
&tx.encode(),
Default::default(),
&runtime_code,
).execute(
ExecutionStrategy::NativeElseWasm,
).unwrap();
@@ -124,6 +128,7 @@ mod tests {
"BlockBuilder_finalize_block",
&[],
Default::default(),
&runtime_code,
).execute(
ExecutionStrategy::NativeElseWasm,
).unwrap();
@@ -161,6 +166,8 @@ mod tests {
let backend = InMemoryBackend::from(storage);
let (b1data, _b1hash) = block1(genesis_hash, &backend);
let backend_runtime_code = sp_state_machine::backend::BackendRuntimeCode::new(&backend);
let runtime_code = backend_runtime_code.runtime_code().expect("Code is part of the backend");
let mut overlay = OverlayedChanges::default();
let _ = StateMachine::new(
@@ -171,6 +178,7 @@ mod tests {
"Core_execute_block",
&b1data,
Default::default(),
&runtime_code,
).execute(
ExecutionStrategy::NativeElseWasm,
).unwrap();
@@ -189,6 +197,8 @@ mod tests {
let backend = InMemoryBackend::from(storage);
let (b1data, _b1hash) = block1(genesis_hash, &backend);
let backend_runtime_code = sp_state_machine::backend::BackendRuntimeCode::new(&backend);
let runtime_code = backend_runtime_code.runtime_code().expect("Code is part of the backend");
let mut overlay = OverlayedChanges::default();
let _ = StateMachine::new(
@@ -199,6 +209,7 @@ mod tests {
"Core_execute_block",
&b1data,
Default::default(),
&runtime_code,
).execute(
ExecutionStrategy::AlwaysWasm,
).unwrap();
@@ -217,6 +228,8 @@ mod tests {
let backend = InMemoryBackend::from(storage);
let (b1data, _b1hash) = block1(genesis_hash, &backend);
let backend_runtime_code = sp_state_machine::backend::BackendRuntimeCode::new(&backend);
let runtime_code = backend_runtime_code.runtime_code().expect("Code is part of the backend");
let mut overlay = OverlayedChanges::default();
let r = StateMachine::new(
@@ -227,6 +240,7 @@ mod tests {
"Core_execute_block",
&b1data,
Default::default(),
&runtime_code,
).execute(
ExecutionStrategy::NativeElseWasm,
);