From 6fd19a630a03fbcc31f5bac23ad461cf64a3fa0f Mon Sep 17 00:00:00 2001 From: Gav Date: Wed, 31 Jan 2018 12:33:40 +0000 Subject: [PATCH] Test multiple blocks/txs per block. Better debug tracing. --- substrate/executor/src/native_executor.rs | 69 +++++++++++++++--- substrate/executor/src/wasm_executor.rs | 30 +++++--- .../polkadot/src/codec/slicable.rs | 5 +- substrate/wasm-runtime/polkadot/src/lib.rs | 13 +++- .../polkadot/src/runtime/staking.rs | 1 + .../polkadot/src/runtime/system.rs | 26 +++++-- substrate/wasm-runtime/std/src/lib.rs | 2 + .../release/runtime_polkadot.compact.wasm | Bin 66916 -> 68080 bytes .../release/runtime_polkadot.wasm | Bin 66965 -> 68130 bytes 9 files changed, 116 insertions(+), 30 deletions(-) diff --git a/substrate/executor/src/native_executor.rs b/substrate/executor/src/native_executor.rs index afa72e7aaa..92045ee976 100644 --- a/substrate/executor/src/native_executor.rs +++ b/substrate/executor/src/native_executor.rs @@ -145,8 +145,6 @@ mod tests { fn construct_block(number: BlockNumber, parent_hash: Hash, state_root: Hash, txs: Vec) -> (Vec, Hash) { use triehash::ordered_trie_root; - let one = one(); - let two = two(); let transactions = txs.into_iter().map(|transaction| { let signature = secret_for(&transaction.signed).unwrap() @@ -169,36 +167,85 @@ mod tests { (Block { header, transactions }.to_vec(), hash) } - fn block1() -> Vec { - construct_block(1, [69u8; 32], hex!("2481853da20b9f4322f34650fea5f240dcbfb266d02db94bfa0153c31f4a29db"), vec![Transaction { - signed: one(), - nonce: 0, - function: Function::StakingTransfer, - input_data: vec![].join(&two()).join(&69u64), - }]).0 + fn block1() -> (Vec, Hash) { + construct_block( + 1, + [69u8; 32], + hex!("2481853da20b9f4322f34650fea5f240dcbfb266d02db94bfa0153c31f4a29db"), + vec![Transaction { + signed: one(), + nonce: 0, + function: Function::StakingTransfer, + input_data: vec![].join(&two()).join(&69u64), + }] + ) + } + + fn block2() -> (Vec, Hash) { + construct_block( + 2, + block1().1, + hex!("244289aaa48ad6aa39db860d8ec09295ee7f06d1addac3dc02aa993db8644008"), + vec![ + Transaction { + signed: two(), + nonce: 0, + function: Function::StakingTransfer, + input_data: vec![].join(&one()).join(&5u64), + }, + Transaction { + signed: one(), + nonce: 1, + function: Function::StakingTransfer, + input_data: vec![].join(&two()).join(&15u64), + } + ] + ) + } + + #[test] + fn test_execution_works() { + let mut t = new_test_ext(); + println!("Testing Wasm..."); + let r = WasmExecutor.call(&mut t, COMPACT_CODE, "run_tests", &CallData(block2().0)); + assert!(r.is_ok()); } #[test] fn full_native_block_import_works() { let mut t = new_test_ext(); - NativeExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block1())).unwrap(); + NativeExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block1().0)).unwrap(); runtime_std::with_externalities(&mut t, || { assert_eq!(balance(&one()), 42); assert_eq!(balance(&two()), 69); }); + + NativeExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block2().0)).unwrap(); + + runtime_std::with_externalities(&mut t, || { + assert_eq!(balance(&one()), 32); + assert_eq!(balance(&two()), 79); + }); } #[test] fn full_wasm_block_import_works() { let mut t = new_test_ext(); - WasmExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block1())).unwrap(); + WasmExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block1().0)).unwrap(); runtime_std::with_externalities(&mut t, || { assert_eq!(balance(&one()), 42); assert_eq!(balance(&two()), 69); }); + + WasmExecutor.call(&mut t, COMPACT_CODE, "execute_block", &CallData(block2().0)).unwrap(); + + runtime_std::with_externalities(&mut t, || { + assert_eq!(balance(&one()), 32); + assert_eq!(balance(&two()), 79); + }); } } diff --git a/substrate/executor/src/wasm_executor.rs b/substrate/executor/src/wasm_executor.rs index ff1b35250e..d1875b6371 100644 --- a/substrate/executor/src/wasm_executor.rs +++ b/substrate/executor/src/wasm_executor.rs @@ -38,7 +38,7 @@ struct Heap { impl Heap { fn new() -> Self { Heap { - end: 1024, + end: 32768, } } fn allocate(&mut self, size: u32) -> u32 { @@ -118,34 +118,35 @@ impl_function_executor!(this: FunctionExecutor<'e, E>, ext_memcpy(dest: *mut u8, src: *const u8, count: usize) -> *mut u8 => { this.memory.copy_nonoverlapping(src as usize, dest as usize, count as usize) .map_err(|_| DummyUserError)?; - println!("memcpy {} from {}, {} bytes", dest, src, count); +// println!("memcpy {} from {}, {} bytes", dest, src, count); dest }, ext_memmove(dest: *mut u8, src: *const u8, count: usize) -> *mut u8 => { this.memory.copy(src as usize, dest as usize, count as usize) .map_err(|_| DummyUserError)?; - println!("memmove {} from {}, {} bytes", dest, src, count); +// println!("memmove {} from {}, {} bytes", dest, src, count); dest }, ext_memset(dest: *mut u8, val: u32, count: usize) -> *mut u8 => { this.memory.clear(dest as usize, val as u8, count as usize) .map_err(|_| DummyUserError)?; - println!("memset {} with {}, {} bytes", dest, val, count); +// println!("memset {} with {}, {} bytes", dest, val, count); dest }, ext_malloc(size: usize) -> *mut u8 => { let r = this.heap.allocate(size); - println!("malloc {} bytes at {}", size, r); +// println!("malloc {} bytes at {}", size, r); r }, ext_free(addr: *mut u8) => { this.heap.deallocate(addr); - println!("free {}", addr) +// println!("free {}", addr) }, ext_set_storage(key_data: *const u8, key_len: u32, value_data: *const u8, value_len: u32) => { - if let (Ok(key), Ok(value)) = (this.memory.get(key_data, key_len as usize), this.memory.get(value_data, value_len as usize)) { - this.ext.set_storage(key, value); - } + let key = this.memory.get(key_data, key_len as usize).map_err(|_| DummyUserError)?; + let value = this.memory.get(value_data, value_len as usize).map_err(|_| DummyUserError)?; + println!("Runtime: Setting storage: {} -> {}", HexDisplay::from(&key), HexDisplay::from(&value)); + this.ext.set_storage(key, value); }, ext_get_allocated_storage(key_data: *const u8, key_len: u32, written_out: *mut u32) -> *mut u8 => { let key = this.memory.get(key_data, key_len as usize).map_err(|_| DummyUserError)?; @@ -160,6 +161,7 @@ impl_function_executor!(this: FunctionExecutor<'e, E>, ext_get_storage_into(key_data: *const u8, key_len: u32, value_data: *mut u8, value_len: u32, value_offset: u32) -> u32 => { let key = this.memory.get(key_data, key_len as usize).map_err(|_| DummyUserError)?; let value = this.ext.storage(&key).map_err(|_| DummyUserError)?; + println!("Runtime: Getting storage: {} ( -> {})", HexDisplay::from(&key), HexDisplay::from(&value)); let value = &value[value_offset as usize..]; let written = ::std::cmp::min(value_len as usize, value.len()); this.memory.set(value_data, &value[..written]).map_err(|_| DummyUserError)?; @@ -188,9 +190,17 @@ impl_function_executor!(this: FunctionExecutor<'e, E>, }, ext_twox_128(data: *const u8, len: u32, out: *mut u8) => { let result = if len == 0 { + println!("Runtime: XXhash: ''"); twox_128(&[0u8; 0]) } else { - twox_128(&this.memory.get(data, len as usize).map_err(|_| DummyUserError)?) + let key = this.memory.get(data, len as usize).map_err(|_| DummyUserError)?; + let hashed_key = twox_128(&key); + if let Ok(skey) = ::std::str::from_utf8(&key) { + println!("Runtime: XXhash: {} -> {}", skey, HexDisplay::from(&hashed_key)); + } else { + println!("Runtime: XXhash: {} -> {}", HexDisplay::from(&key), HexDisplay::from(&hashed_key)); + } + hashed_key }; this.memory.set(out, &result).map_err(|_| DummyUserError)?; }, diff --git a/substrate/wasm-runtime/polkadot/src/codec/slicable.rs b/substrate/wasm-runtime/polkadot/src/codec/slicable.rs index 0f1ef812a6..8f062bc654 100644 --- a/substrate/wasm-runtime/polkadot/src/codec/slicable.rs +++ b/substrate/wasm-runtime/polkadot/src/codec/slicable.rs @@ -84,7 +84,8 @@ impl Slicable for Vec { fn set_as_slice bool>(fill_slice: &F) -> Option { u32::set_as_slice(fill_slice).and_then(|len| { let mut v = Vec::with_capacity(len as usize); - unsafe { v.set_len(len as usize); } + v.resize(len as usize, 0); +// unsafe { v.set_len(len as usize); } if fill_slice(&mut v, 4) { Some(v) } else { @@ -106,7 +107,7 @@ impl NonTrivialSlicable for Vec where Vec: Slicable {} impl Slicable for Vec { fn from_slice(value: &[u8]) -> Option { - let len = Self::size_of(&value[0..4])?; + let len = Self::size_of(value)?; let mut off = 4; let mut r = Vec::new(); while off < len { diff --git a/substrate/wasm-runtime/polkadot/src/lib.rs b/substrate/wasm-runtime/polkadot/src/lib.rs index 677272e93f..33bf554676 100644 --- a/substrate/wasm-runtime/polkadot/src/lib.rs +++ b/substrate/wasm-runtime/polkadot/src/lib.rs @@ -37,6 +37,7 @@ pub mod runtime; use runtime_std::prelude::*; use codec::Slicable; +use runtime_std::print; use primitives::{Block, UncheckedTransaction}; /// Execute a block, with `input` being the canonical serialisation of the block. Returns the @@ -53,4 +54,14 @@ pub fn execute_transaction(input: &[u8]) -> Vec { Vec::new() } -impl_stubs!(execute_block, execute_transaction); +/// Run whatever tests we have. +pub fn run_tests(input: &[u8]) -> Vec { + print("run_tests..."); + let block = Block::from_slice(input).unwrap(); + print("deserialised block."); + let stxs = block.transactions.iter().map(Slicable::to_vec).collect::>(); + print("reserialised transactions."); + [stxs.len() as u8].to_vec() +} + +impl_stubs!(execute_block, execute_transaction, run_tests); diff --git a/substrate/wasm-runtime/polkadot/src/runtime/staking.rs b/substrate/wasm-runtime/polkadot/src/runtime/staking.rs index df8d4d632f..004480b91b 100644 --- a/substrate/wasm-runtime/polkadot/src/runtime/staking.rs +++ b/substrate/wasm-runtime/polkadot/src/runtime/staking.rs @@ -18,6 +18,7 @@ use runtime_std::prelude::*; use runtime_std::cell::RefCell; +use runtime_std::print; use codec::KeyedVec; use support::{storage, StorageVec}; use primitives::{BlockNumber, AccountID}; diff --git a/substrate/wasm-runtime/polkadot/src/runtime/system.rs b/substrate/wasm-runtime/polkadot/src/runtime/system.rs index 8df20f138e..1847a7b311 100644 --- a/substrate/wasm-runtime/polkadot/src/runtime/system.rs +++ b/substrate/wasm-runtime/polkadot/src/runtime/system.rs @@ -18,7 +18,7 @@ //! and depositing logs. use runtime_std::prelude::*; -use runtime_std::{mem, print, storage_root, enumerated_trie_root}; +use runtime_std::{mem, storage_root, enumerated_trie_root}; use codec::{KeyedVec, Slicable}; use support::{Hashable, storage, with_env}; use primitives::{Block, BlockNumber, Hash, UncheckedTransaction, TxOrder}; @@ -76,12 +76,14 @@ pub mod internal { // check transaction trie root represents the transactions. let txs = block.transactions.iter().map(Slicable::to_vec).collect::>(); - let txs_root = enumerated_trie_root(&txs.iter().map(Vec::as_slice).collect::>()); -// println!("TR: {}", ::support::HexDisplay::from(&txs_root)); + let txs = txs.iter().map(Vec::as_slice).collect::>(); + let txs_root = enumerated_trie_root(&txs); assert!(header.transaction_root == txs_root, "Transaction trie root must be valid."); // execute transactions - block.transactions.iter().for_each(execute_transaction); + for tx in &block.transactions { + execute_transaction(tx); + } staking::internal::check_new_era(); session::internal::check_rotate_session(); @@ -89,9 +91,10 @@ pub mod internal { // any final checks final_checks(&block); - // check storage root. - assert!(header.state_root == storage_root(), "Storage root must match that calculated."); + let storage_root = storage_root(); + debug_assert_hash(&header.state_root, &storage_root); + assert!(header.state_root == storage_root, "Storage root must match that calculated."); // store the header hash in storage; we can't do it before otherwise there would be a // cyclic dependency. @@ -117,6 +120,17 @@ pub mod internal { // decode parameters and dispatch tx.function.dispatch(&tx.signed, &tx.input_data); } + + #[cfg(feature = "with-std")] + fn debug_assert_hash(given: &Hash, expected: &Hash) { + use support::HexDisplay; + if given != expected { + println!("Hash: given={}, expected={}", HexDisplay::from(given), HexDisplay::from(expected)); + } + } + + #[cfg(not(feature = "with-std"))] + fn debug_assert_hash(_given: &Hash, _expected: &Hash) {} } fn final_checks(_block: &Block) { diff --git a/substrate/wasm-runtime/std/src/lib.rs b/substrate/wasm-runtime/std/src/lib.rs index 7bf583af7d..d04fbd532d 100644 --- a/substrate/wasm-runtime/std/src/lib.rs +++ b/substrate/wasm-runtime/std/src/lib.rs @@ -4,6 +4,8 @@ #![feature(alloc)] #![cfg_attr(feature = "strict", deny(warnings))] +#[macro_use] +#[macro_export] extern crate alloc; pub use alloc::vec; diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.compact.wasm index 112a5c0223c49219fec1b962d9a9aacbddd90d17..4981abe023ba02771458483d19be3a1fac13e9ef 100644 GIT binary patch literal 68080 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 delta 26667 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

J6?RbwQx<|-}vBsyWG48B{pXOc;3f&HY<&v zZjd3HOsO zpKx)LnefskGhy=DrgC_RMuPP@e$cMK{N(0t>E|ifW=cOv=>uz5uJ75N(wS`4=Qfv{ zA#KOin{=4;k61Ng#`rI%;|sP=&}qUHU)o&WxbU&OKVCk0{DkG``D+&5-S0=i;x!8o z_xsJ@;xz_A$!ph?xlL=w*WhB-AK}Nc(NkNXZQb)WX;@eLo~-s+YA*uQWKZqSWVIKz zKzUTe@gpCC@)x(1Cx86Z@e>CgIvAZee*9E)^pTVNTKE^f-^kBR_R2(ZX0qH|V%BSW z#yymcdw$Z6d(3du5^d*cdqYp#hqJb?P`is-@yx@d%Sm{7(rS%|PaH=-&@`mU76J&~ z12C20KKfanoS!N;FHwrw$!hP+YM-Zeky>elwC_Dx?Gm+f)M`Cx?Vhamm8o*k>aK^u z)1|5Mre;WELTy>&y;Li$#BDaPiuO>Hus$ciqCR1O5%c;&lrL2mBj@ zOV=$tJ>YK*=C5D)=72wyN9|m1*!A-DRzBvpF8sOg-xMruT_^-}yu5YcV*!`K&fKu@ J+kwCS{{g@OgCYO` diff --git a/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.wasm b/substrate/wasm-runtime/target/wasm32-unknown-unknown/release/runtime_polkadot.wasm index c0a1caa639953c6c95e73fc03694f5daea48e9a1..65624ef9865c0ee6fe11fddd1c679a987d70e300 100644 GIT binary patch delta 27906 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 delta 26674 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