From 1f0f3c8f6b1fd038d12d0cf0e13844c9c5dc174a Mon Sep 17 00:00:00 2001 From: Sergey Pepyakin Date: Mon, 12 Nov 2018 20:44:05 +0100 Subject: [PATCH] srml-contract: Extract schedule (#1044) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rename Config → Schedule. * Fetch and pass config. * Integrate config everywhere. * <<::T as Trait> → < * Update roots * Cache existential_deposit * Update COMPLEXITY.md * Update roots. --- .../substrate_test_runtime.compact.wasm | Bin 44860 -> 44864 bytes substrate/node/cli/src/chain_spec.rs | 2 + substrate/node/executor/src/lib.rs | 10 +-- .../release/node_runtime.compact.wasm | Bin 624437 -> 619713 bytes substrate/srml/contract/COMPLEXITY.md | 39 ++++----- substrate/srml/contract/src/exec.rs | 39 +++++---- substrate/srml/contract/src/lib.rs | 81 +++++++++++++++++- substrate/srml/contract/src/tests.rs | 1 + .../srml/contract/src/vm/env_def/macros.rs | 4 +- substrate/srml/contract/src/vm/mod.rs | 62 ++------------ substrate/srml/contract/src/vm/prepare.rs | 35 ++++---- substrate/srml/contract/src/vm/runtime.rs | 24 +++--- 12 files changed, 164 insertions(+), 133 deletions(-) diff --git a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index fe88a3463d8679758db6c75f0f567cb6d335816b..cb5c02bbb90c5b4248fd0a3f071a730895cdf9a3 100644 GIT binary patch delta 1582 zcmZ`(T})g>6rP#8ccCn@BP>D%%cU%(lDg0~ZeyX+D~*I=%L67@O|=%Omb3w(DMUj7 zf9T3WyWwEFWvh}}W2>>*bYeoHHT$3mi6jzZ3=c|HZA?>ZLerNTW8ydWO2KG1x%p1c zoH^$^-#N3NFNoBFNPf%>ug6E1czD%REX8~S%$`!e^Pf3SsyTxT9;0u~p4^$y6bp+? z%dkaQWCN0_)!W5!I+L;8H}9N!EMdn~Ugo?v_u4<bJs=Kuw)0+NC+1D%wc- z58QC9N2q2^x*!!zF?+LIgPSW&wW;JP=eMY!beHNVtu{R-lQ|S$SDHTv#x^>TW%e7| z^l6i9f1dhj-9AH%MXA2B85ODWh_QM(rOZJEug#?&NKvvvFM>rR)WTErLueB&_^bA2 z@I^Wtu51`Qsr!x@==d7?`nLoT?I^T_7SZSk3k!zquotxe_vtnufTP4bErieUpc>k8 zOz`r{TXW6aX(zF?n3g*LNK&w_lFv|cT{S2S*426dSL)w0c^U0({Dqe(d*==gj>Aor zB@yTLw65&ZO6y5tG*>l7=$oed`J%esblQg`ueJWjAC9?=EZ@jH(boO&_TmABO{%G8(kzTH$^MF+G zof=RGc3Rh152J8}SP?qiy$^%9-MusG&I+Z}6FtYUF6!$e4ZL`41XEtCH^egC`B{D! zWjTe8ehG1I9X*L0ulEjRF9+KxCHszN@HrJ9_*9eKJyg1iPf^#%Q#I4hP$OXV7~djB z9R-|+5Z9&|7B@I>&WW1QrV$pi8fS;eh;BngJKBzlA4Y%8US2VKOr04$VDQ*@tfgkk zQAJDPj*7v8D9)f9;V}ug3ZaR9UrXDQ#q4=H5!-;~KZ}KU%LONmj&Rf5MO*n_Y2{Yt zL$*aE(A$XjQ|mY)R6D){>4(N^^ozVg9cX9$L`8MdDW!S3rSx8daS-6H3T9_vZL8t1 zFhUxbDCSW*J8{{Ul!DoVgZNkaMD2NdR@}o@{^)u+Ei?>N#|< zt-b1S=L@0k9=a5-RnMNO;AF=eNhI>=&B@JFkZ9(N4kSu=l7 zE}jGifG+_hun*{GY=9kykq5`5>tGjwI)OwY{d>!lOaS|U_X2OCnkJ~v^}VHnv#>q? lo9}n2jUV{3{stkAo45b~ delta 1572 zcmZ`(eMntp7=NGl+x!YKK3ps<^}(7FqqK@|A;8Ll~mL%iVA`n^n1^lQ>Yy{{2rd~ z=l4A4%r5eoMgIPI(%deGc$b11@#rjb_c1drf2MDUrsXw_I7P%~&d%()$Se!;bVD`Sg)jQcQ060hr!K=%t`;;mA!Pso!jo*Op5DS8|e>O?0wLgJ#|tg)8S4* z?gNBHkIz8C*L-(7{4rRKOheOs%x#8G%`!bl2}wr(Y*o`ni7lXNfegCSuAo<$b}fksM*F9Veb@RsjS zqm(!rEZg-Dh6(bhhKZLfaWw@4%9d+z7^7NikQ)&6Rx_mtxC6;&K!C->f>;c`LB%q( zrI%CDg{|4n?2D&uLYbo5XE4z1uPLKB(NI%?7W!+d9e_mb>rV2E{dM1xUz)pj5_&vQ zUse#dqCZlV?Y5F?lUU7?!m#+Xem$k+kM(EVNb+LSSF|}|MMPI3((M3`^0x-TWRRmA zgJ32z9fQc&zIqq>PChk3fES*w3S3776 zkEre<)`u{rL}!qv2smSTT~VSIFL3EB6L=0UOsp3A z+kg)PeZWIN9oPl*GS GenesisConfig { gas_price: 1 * MILLICENTS, max_depth: 1024, block_gas_limit: 10_000_000, + current_schedule: Default::default(), }), upgrade_key: Some(UpgradeKeyConfig { key: endowed_accounts[0].clone(), @@ -241,6 +242,7 @@ pub fn testnet_genesis( gas_price: 1, max_depth: 1024, block_gas_limit: 10_000_000, + current_schedule: Default::default(), }), upgrade_key: Some(UpgradeKeyConfig { key: upgrade_key, diff --git a/substrate/node/executor/src/lib.rs b/substrate/node/executor/src/lib.rs index fd68aadd51..fe491c7cfd 100644 --- a/substrate/node/executor/src/lib.rs +++ b/substrate/node/executor/src/lib.rs @@ -295,9 +295,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("978a3ff733a86638da39d36a349c693b5cf562bcc8db30fec6c2b6c40f925a9b").into() + hex!("a998cf2956b526aecc0887903df66457e640bb2debfd7976b5c7696da31cdaef").into() } else { - hex!("7bbad534e3de3db3c8cda015c4e8ed8ba10dde7e3fca21f4fd4fbc686e6c1410").into() + hex!("2caffd5fcc42934e6b758613ff0a7e624a8c5b7c67b7c405bf6985a7e3a19701").into() }, if support_changes_trie { Some(hex!("1f8f44dcae8982350c14dee720d34b147e73279f5a2ce1f9781195a991970978").into()) @@ -321,7 +321,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("7be30152ee2ee909047cffad5f0a28bf8c2b0a97c124b500aeac112f6917738e").into(), + hex!("72b2afc379ce2161aef95ef6f86a2321867f12b046703ea0af5aed158c2a4f30").into(), None, vec![ CheckedExtrinsic { @@ -344,7 +344,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("325a73726dc640af41becb42938e7152e218f130219c0695aae35b6a156f93f3").into(), + hex!("5f4461c584ce91dd6862313fd075ffc26dc702fcc1183634ee7b0c5de8b5b4d1").into(), None, vec![ CheckedExtrinsic { @@ -626,7 +626,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("cf0fee74c87ecff646804984bbdf85832a788b3ca2a2aa33e20da61fa7182b37").into(), + hex!("9885d4297ce0341ec07957d1de32848460565a17ef2ea400df0e2326634914ae").into(), None, vec![ CheckedExtrinsic { diff --git a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 8d53eefe478c3428a332b27b469e77d4e4617ef4..94c8b1f3b87d8fb0a5e210df1fe498c8ac6e2fa3 100644 GIT binary patch delta 167262 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
6`mSRsQ24w5BnrKjs~AgwXnm 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

4Nf2UzJ!bTViV34KRB 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 delta 169784 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К_L*e&;9Jn}21+1#>!+2eR}`k7Uf1`1=0# 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 D0(O>- diff --git a/substrate/srml/contract/COMPLEXITY.md b/substrate/srml/contract/COMPLEXITY.md index f805eb45f0..a6f1c3dca7 100644 --- a/substrate/srml/contract/COMPLEXITY.md +++ b/substrate/srml/contract/COMPLEXITY.md @@ -132,53 +132,48 @@ Consists of dropping (in the Rust sense) of the `AccountDb`. This function performs the following steps: 1. Querying source and destination balances from an overlay (see `get_balance`), -2. Querying fee for the case. (This hits DB unless pre-loaded) -2. Querying `existential_deposit`. (This hits DB unless pre-loaded) +2. Querying `existential_deposit`. 3. Executing `ensure_account_liquid` hook. 4. Updating source and destination balance in the overlay (see `set_balance`). **Note** that the complexity of executing `ensure_account_liquid` hook should be considered separately. -In the course of the execution this function can perform up to 4 DB reads: 2x `get_balance`, fee and `existential_deposit`. The last two can be pre-loaded pushing the cost of loading to a higher level and making it a one time. It can also induce up to 2 DB writes via `set_balance` if flushed to the storage. +In the course of the execution this function can perform up to 2 DB reads to `get_balance` of source and destination accounts. It can also induce up to 2 DB writes via `set_balance` if flushed to the storage. Moreover, if the source balance goes below `existential_deposit` then the account will be deleted along with all its storage which requires time proportional to the number of storage entries of that account. Assuming marshaled size of a balance value is of the constant size we can neglect its effect on the performance. -**complexity**: up to 4 DB reads and up to 2 DB writes (if flushed to the storage) in the standard case. If removal of the source account takes place then it will additionally perform a DB write per one storage entry that the account has. For the current `AccountDb` implementation computing complexity also depends on the depth of the `AccountDb` cascade. Memorywise it can be assumed to be constant. +**complexity**: up to 2 DB reads and up to 2 DB writes (if flushed to the storage) in the standard case. If removal of the source account takes place then it will additionally perform a DB write per one storage entry that the account has. For the current `AccountDb` implementation computing complexity also depends on the depth of the `AccountDb` cascade. Memorywise it can be assumed to be constant. ## Call This function receives input data for the contract execution. The execution consists of the following steps: -1. Querying `MaxDepth` and `call_base_fee`. (These hit DB unless pre-loaded) -2. Loading code from the DB. -3. `transfer`-ing funds between the caller and the destination account. -4. Executing the code of the destination account. -5. Committing overlayed changed to the underlying `AccountDb`. +1. Loading code from the DB. +2. `transfer`-ing funds between the caller and the destination account. +3. Executing the code of the destination account. +4. Committing overlayed changed to the underlying `AccountDb`. **Note** that the complexity of executing the contract code should be considered separately. -The execution of this function will involve 2 DB reads for querying `MaxDepth` and `MaxDepth` constants. These values can be pre-loaded pushing the cost of loading to a higher level and making it a one time. - Loading code most probably will trigger a DB read, since the code is immutable and therefore will not get into the cache (unless a suicide removes it). -Also, `transfer` can make up to 4 DB reads and up to 2 DB writes (if flushed to the storage) in the standard case. If removal of the source account takes place then it will additionally perform a DB write per one storage entry that the account has. +Also, `transfer` can make up to 2 DB reads and up to 2 DB writes (if flushed to the storage) in the standard case. If removal of the source account takes place then it will additionally perform a DB write per one storage entry that the account has. Finally, all changes are `commit`-ted into the underlying overlay. The complexity of this depends on the number of changes performed by the code. Thus, the pricing of storage modification should account for that. -**complexity**: Up to 7 DB reads. DB read of the code is of dynamic size. There can also be up to 2 DB writes (if flushed to the storage). Additionally, if the source account removal takes place a DB write will be performed per one storage entry that the account has. +**complexity**: Up to 3 DB reads. DB read of the code is of dynamic size. There can also be up to 2 DB writes (if flushed to the storage). Additionally, if the source account removal takes place a DB write will be performed per one storage entry that the account has. ## Create This function takes the code of the constructor and input data. Creation of a contract consists of the following steps: -1. Querying `MaxDepth` and `create_base_fee`. (These hit DB unless pre-loaded) -2. Calling `DetermineContractAddress` hook to determine an address for the contract, -3. `transfer`-ing funds between self and the newly created contract. -4. Executing the constructor code. This will yield the final code of the code. -5. Storing the code for the newly created contract in the overlay. -6. Committing overlayed changed to the underlying `AccountDb`. +1. Calling `DetermineContractAddress` hook to determine an address for the contract, +2. `transfer`-ing funds between self and the newly created contract. +3. Executing the constructor code. This will yield the final code of the code. +4. Storing the code for the newly created contract in the overlay. +5. Committing overlayed changed to the underlying `AccountDb`. **Note** that the complexity of executing the constructor code should be considered separately. @@ -186,15 +181,13 @@ This function takes the code of the constructor and input data. Creation of a co **Note** that the constructor returns code in the owned form and it's obtained via return facilities, which should have take fee for the return value. -The execution of this function involves 2 DB reads for querying `create_base_fee` and `MaxDepth` constants. These values can be pre-loaded pushing the cost of loading to a higher level and making it a one time. - -Also, `transfer` can make up to 4 DB reads and up to 2 DB writes (if flushed to the storage) in the standard case. If removal of the source account takes place then it will additionally perform a DB write per one storage entry that the account has. +Also, `transfer` can make up to 2 DB reads and up to 2 DB writes (if flushed to the storage) in the standard case. If removal of the source account takes place then it will additionally perform a DB write per one storage entry that the account has. Storing the code in the overlay may induce another DB write (if flushed to the storage) with the size proportional to the size of the constructor code. Finally, all changes are `commit`-ted into the underlying overlay. The complexity of this depends on the number of changes performed by the constructor code. Thus, the pricing of storage modification should account for that. -**complexity**: Up to 6 DB reads and induces up to 3 DB writes (if flushed to the storage), one of which is dependent on the size of the code. Additionally, if the source account removal takes place a DB write will be performed per one storage entry that the account has. +**complexity**: Up to 2 DB reads and induces up to 3 DB writes (if flushed to the storage), one of which is dependent on the size of the code. Additionally, if the source account removal takes place a DB write will be performed per one storage entry that the account has. # Externalities diff --git a/substrate/srml/contract/src/exec.rs b/substrate/srml/contract/src/exec.rs index cc74142947..f3cc2139bf 100644 --- a/substrate/srml/contract/src/exec.rs +++ b/substrate/srml/contract/src/exec.rs @@ -14,14 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . -use super::{MaxDepth, ContractAddressFor, Module, Trait, Event, RawEvent}; +use super::{ContractAddressFor, Trait, Event, RawEvent, Config}; use account_db::{AccountDb, OverlayAccountDb}; use gas::GasMeter; use vm; use rstd::prelude::*; use runtime_primitives::traits::{Zero, CheckedAdd, CheckedSub}; -use runtime_support::StorageValue; use balances::{self, EnsureAccountLiquid}; // TODO: Add logs @@ -38,6 +37,7 @@ pub struct ExecutionContext<'a, T: Trait + 'a> { pub overlay: OverlayAccountDb<'a, T>, pub depth: usize, pub events: Vec>, + pub config: &'a Config, } impl<'a, T: Trait> ExecutionContext<'a, T> { @@ -51,12 +51,11 @@ impl<'a, T: Trait> ExecutionContext<'a, T> { data: &[u8], output_data: &mut Vec, ) -> Result { - if self.depth == >::get() as usize { + if self.depth == self.config.max_depth as usize { return Err("reached maximum depth, cannot make a call"); } - let call_base_fee = >::call_base_fee(); - if gas_meter.charge(call_base_fee).is_out_of_gas() { + if gas_meter.charge(self.config.call_base_fee).is_out_of_gas() { return Err("not enough gas to pay base call fee"); } @@ -70,6 +69,7 @@ impl<'a, T: Trait> ExecutionContext<'a, T> { self_account: dest.clone(), depth: self.depth + 1, events: Vec::new(), + config: self.config, }; if value > T::Balance::zero() { @@ -92,7 +92,7 @@ impl<'a, T: Trait> ExecutionContext<'a, T> { ctx: &mut nested, _caller: caller, }, - &::vm::Config::default(), + &self.config.schedule, gas_meter, ).map_err(|_| "vm execute returned error while call")?; } @@ -114,12 +114,11 @@ impl<'a, T: Trait> ExecutionContext<'a, T> { init_code: &[u8], data: &[u8], ) -> Result, &'static str> { - if self.depth == >::get() as usize { + if self.depth == self.config.max_depth as usize { return Err("reached maximum depth, cannot create"); } - let create_base_fee = >::create_base_fee(); - if gas_meter.charge(create_base_fee).is_out_of_gas() { + if gas_meter.charge(self.config.create_base_fee).is_out_of_gas() { return Err("not enough gas to pay base create fee"); } @@ -138,6 +137,7 @@ impl<'a, T: Trait> ExecutionContext<'a, T> { self_account: dest.clone(), depth: self.depth + 1, events: Vec::new(), + config: self.config, }; if endowment > T::Balance::zero() { @@ -160,7 +160,7 @@ impl<'a, T: Trait> ExecutionContext<'a, T> { ctx: &mut nested, _caller: caller, }, - &::vm::Config::default(), + &self.config.schedule, gas_meter, ).map_err(|_| "vm execute returned error while create")?; @@ -213,14 +213,15 @@ fn transfer<'a, T: Trait>( // `contract_create` will be `false` but `would_create` will be `true`. let would_create = to_balance.is_zero(); - let fee: T::Balance = if contract_create { - >::contract_fee() - } else { - if would_create { - >::creation_fee() - } else { - >::transfer_fee() - } + let fee: T::Balance = match (contract_create, would_create) { + // If this function is called from `CREATE` routine, then we always + // charge contract account creation fee. + (true, _) => ctx.config.contract_account_create_fee, + + // Otherwise the fee depends on whether we create a new account or transfer + // to an existing one. + (false, true) => ctx.config.account_create_fee, + (false, false) => ctx.config.transfer_fee, }; if gas_meter.charge_by_balance(fee).is_out_of_gas() { @@ -233,7 +234,7 @@ fn transfer<'a, T: Trait>( Some(b) => b, None => return Err("balance too low to send value"), }; - if would_create && value < >::existential_deposit() { + if would_create && value < ctx.config.existential_deposit { return Err("value too low to create account"); } ::EnsureAccountLiquid::ensure_account_liquid(transactor)?; diff --git a/substrate/srml/contract/src/lib.rs b/substrate/srml/contract/src/lib.rs index e3f6a600b3..e87c289ed8 100644 --- a/substrate/srml/contract/src/lib.rs +++ b/substrate/srml/contract/src/lib.rs @@ -168,11 +168,13 @@ decl_module! { // paying for the gas. let mut gas_meter = gas::buy_gas::(&origin, gas_limit)?; + let cfg = Config::preload(); let mut ctx = ExecutionContext { self_account: origin.clone(), depth: 0, overlay: OverlayAccountDb::::new(&account_db::DirectAccountDb), events: Vec::new(), + config: &cfg, }; let mut output_data = Vec::new(); @@ -221,11 +223,13 @@ decl_module! { // paying for the gas. let mut gas_meter = gas::buy_gas::(&origin, gas_limit)?; + let cfg = Config::preload(); let mut ctx = ExecutionContext { self_account: origin.clone(), depth: 0, overlay: OverlayAccountDb::::new(&account_db::DirectAccountDb), events: Vec::new(), + config: &cfg, }; let result = ctx.create(origin.clone(), endowment, &mut gas_meter, &ctor_code, &data); @@ -284,7 +288,8 @@ decl_storage! { BlockGasLimit get(block_gas_limit) config(): T::Gas = T::Gas::sa(1_000_000); /// Gas spent so far in this block. GasSpent get(gas_spent): T::Gas; - + /// Current cost schedule for contracts. + CurrentSchedule get(current_schedule) config(): Schedule = Schedule::default(); /// The code associated with an account. pub CodeOf: map T::AccountId => Vec; // TODO Vec values should be optimised to not do a length prefix. } @@ -310,3 +315,77 @@ impl balances::OnFreeBalanceZero for Module { >::remove_prefix(who.clone()); } } + +/// In-memory cache of configuration values. +/// +/// We assume that these values can't be changed in the +/// course of transaction execution. +pub struct Config { + pub schedule: Schedule, + pub existential_deposit: T::Balance, + pub max_depth: u32, + pub contract_account_create_fee: T::Balance, + pub account_create_fee: T::Balance, + pub transfer_fee: T::Balance, + pub call_base_fee: T::Gas, + pub create_base_fee: T::Gas, +} + +impl Config { + fn preload() -> Config { + Config { + schedule: >::current_schedule(), + existential_deposit: >::existential_deposit(), + max_depth: >::max_depth(), + contract_account_create_fee: >::contract_fee(), + account_create_fee: >::creation_fee(), + transfer_fee: >::transfer_fee(), + call_base_fee: >::call_base_fee(), + create_base_fee: >::create_base_fee(), + } + } +} + +/// Definition of the cost schedule and other parameterizations for wasm vm. +#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[derive(Clone, Encode, Decode)] +pub struct Schedule { + /// Gas cost of a growing memory by single page. + pub grow_mem_cost: Gas, + + /// Gas cost of a regular operation. + pub regular_op_cost: Gas, + + /// Gas cost per one byte returned. + pub return_data_per_byte_cost: Gas, + + /// Gas cost per one byte read from the sandbox memory. + sandbox_data_read_cost: Gas, + + /// Gas cost per one byte written to the sandbox memory. + sandbox_data_write_cost: Gas, + + /// How tall the stack is allowed to grow? + /// + /// See https://wiki.parity.io/WebAssembly-StackHeight to find out + /// how the stack frame cost is calculated. + pub max_stack_height: u32, + + //// What is the maximal memory pages amount is allowed to have for + /// a contract. + pub max_memory_pages: u32, +} + +impl> Default for Schedule { + fn default() -> Schedule { + Schedule { + grow_mem_cost: Gas::sa(1), + regular_op_cost: Gas::sa(1), + return_data_per_byte_cost: Gas::sa(1), + sandbox_data_read_cost: Gas::sa(1), + sandbox_data_write_cost: Gas::sa(1), + max_stack_height: 64 * 1024, + max_memory_pages: 16, + } + } +} diff --git a/substrate/srml/contract/src/tests.rs b/substrate/srml/contract/src/tests.rs index 62683e0a95..27d6e59a95 100644 --- a/substrate/srml/contract/src/tests.rs +++ b/substrate/srml/contract/src/tests.rs @@ -142,6 +142,7 @@ impl ExtBuilder { gas_price: self.gas_price, max_depth: 100, block_gas_limit: self.block_gas_limit, + current_schedule: Default::default(), }.build_storage() .unwrap().0, ); diff --git a/substrate/srml/contract/src/vm/env_def/macros.rs b/substrate/srml/contract/src/vm/env_def/macros.rs index 16ba669daf..c751bd0c12 100644 --- a/substrate/srml/contract/src/vm/env_def/macros.rs +++ b/substrate/srml/contract/src/vm/env_def/macros.rs @@ -219,7 +219,7 @@ mod tests { #[test] fn macro_define_func() { define_func!( ext_gas (_ctx, amount: u32) => { - let amount = <<::T as Trait>::Gas as As>::sa(amount); + let amount = <::Gas as As>::sa(amount); if !amount.is_zero() { Ok(()) } else { @@ -269,7 +269,7 @@ mod tests { fn macro_define_env() { define_env!(init_env, , ext_gas( _ctx, amount: u32 ) => { - let amount = <<::T as Trait>::Gas as As>::sa(amount); + let amount = <::Gas as As>::sa(amount); if !amount.is_zero() { Ok(()) } else { diff --git a/substrate/srml/contract/src/vm/mod.rs b/substrate/srml/contract/src/vm/mod.rs index 63cdc5861d..dc59154266 100644 --- a/substrate/srml/contract/src/vm/mod.rs +++ b/substrate/srml/contract/src/vm/mod.rs @@ -20,8 +20,7 @@ use exec::CreateReceipt; use gas::GasMeter; use rstd::prelude::*; -use runtime_primitives::traits::As; -use Trait; +use {Trait, Schedule}; use {balances, sandbox, system}; type BalanceOf = ::Balance; @@ -118,7 +117,7 @@ pub fn execute<'a, E: Ext>( input_data: &[u8], output_data: &mut Vec, ext: &'a mut E, - config: &Config, + schedule: &Schedule<::Gas>, gas_meter: &mut GasMeter, ) -> Result<(), Error> { let env = runtime::init_env(); @@ -126,7 +125,7 @@ pub fn execute<'a, E: Ext>( let PreparedContract { instrumented_code, memory, - } = prepare_contract(code, &config, &env)?; + } = prepare_contract(code, &schedule, &env)?; let mut imports = sandbox::EnvironmentDefinitionBuilder::new(); for (func_name, ext_func) in &env.funcs { @@ -134,7 +133,7 @@ pub fn execute<'a, E: Ext>( } imports.add_memory("env", "memory", memory.clone()); - let mut runtime = Runtime::new(ext, input_data, output_data, &config, memory, gas_meter); + let mut runtime = Runtime::new(ext, input_data, output_data, &schedule, memory, gas_meter); // Instantiate the instance from the instrumented module code. match sandbox::Instance::new(&instrumented_code, &imports, &mut runtime) { @@ -152,49 +151,6 @@ pub fn execute<'a, E: Ext>( } } -// TODO: Extract it to the root of the crate -#[derive(Clone)] -pub struct Config { - /// Gas cost of a growing memory by single page. - grow_mem_cost: T::Gas, - - /// Gas cost of a regular operation. - regular_op_cost: T::Gas, - - /// Gas cost per one byte returned. - return_data_per_byte_cost: T::Gas, - - /// Gas cost per one byte read from the sandbox memory. - sandbox_data_read_cost: T::Gas, - - /// Gas cost per one byte written to the sandbox memory. - sandbox_data_write_cost: T::Gas, - - /// How tall the stack is allowed to grow? - /// - /// See https://wiki.parity.io/WebAssembly-StackHeight to find out - /// how the stack frame cost is calculated. - max_stack_height: u32, - - //// What is the maximal memory pages amount is allowed to have for - /// a contract. - max_memory_pages: u32, -} - -impl Default for Config { - fn default() -> Config { - Config { - grow_mem_cost: T::Gas::sa(1), - regular_op_cost: T::Gas::sa(1), - return_data_per_byte_cost: T::Gas::sa(1), - sandbox_data_read_cost: T::Gas::sa(1), - sandbox_data_write_cost: T::Gas::sa(1), - max_stack_height: 64 * 1024, - max_memory_pages: 16, - } - } -} - #[cfg(test)] mod tests { use super::*; @@ -318,7 +274,7 @@ mod tests { &[], &mut Vec::new(), &mut mock_ext, - &::vm::Config::default(), + &Schedule::::default(), &mut GasMeter::with_limit(50_000, 1), ).unwrap(); @@ -381,7 +337,7 @@ mod tests { &[], &mut Vec::new(), &mut mock_ext, - &::vm::Config::default(), + &Schedule::default(), &mut GasMeter::with_limit(50_000, 1), ).unwrap(); @@ -421,7 +377,7 @@ mod tests { &[], &mut Vec::new(), &mut mock_ext, - &::vm::Config::default(), + &Schedule::default(), &mut GasMeter::with_limit(100_000, 1) ), Err(_) @@ -475,7 +431,7 @@ mod tests { &[], &mut Vec::new(), &mut mock_ext, - &::vm::Config::default(), + &Schedule::default(), &mut GasMeter::with_limit(50_000, 1), ).unwrap(); @@ -568,7 +524,7 @@ mod tests { &[], &mut return_buf, &mut mock_ext, - &Config::default(), + &Schedule::default(), &mut GasMeter::with_limit(50_000, 1), ).unwrap(); diff --git a/substrate/srml/contract/src/vm/prepare.rs b/substrate/srml/contract/src/vm/prepare.rs index b79ce8336d..8ec056dfc7 100644 --- a/substrate/srml/contract/src/vm/prepare.rs +++ b/substrate/srml/contract/src/vm/prepare.rs @@ -18,30 +18,30 @@ //! wasm module before execution. use super::env_def::HostFunctionSet; -use super::{Config, Error, Ext}; +use super::{Error, Ext}; use rstd::prelude::*; use parity_wasm::elements::{self, External, MemoryType, Type}; use pwasm_utils; use pwasm_utils::rules; use runtime_primitives::traits::As; use sandbox; -use Trait; +use {Trait, Schedule}; -struct ContractModule<'a, T: Trait + 'a> { +struct ContractModule<'a, Gas: 'a> { // An `Option` is used here for loaning (`take()`-ing) the module. // Invariant: Can't be `None` (i.e. on enter and on exit from the function // the value *must* be `Some`). module: Option, - config: &'a Config, + schedule: &'a Schedule, } -impl<'a, T: Trait> ContractModule<'a, T> { - fn new(original_code: &[u8], config: &'a Config) -> Result, Error> { +impl<'a, Gas: 'a + As + Clone> ContractModule<'a, Gas> { + fn new(original_code: &[u8], schedule: &'a Schedule) -> Result, Error> { let module = elements::deserialize_buffer(original_code).map_err(|_| Error::Deserialization)?; Ok(ContractModule { module: Some(module), - config, + schedule, }) } @@ -65,8 +65,8 @@ impl<'a, T: Trait> ContractModule<'a, T> { } fn inject_gas_metering(&mut self) -> Result<(), Error> { - let gas_rules = rules::Set::new(self.config.regular_op_cost.as_(), Default::default()) - .with_grow_cost(self.config.grow_mem_cost.as_()) + let gas_rules = rules::Set::new(self.schedule.regular_op_cost.clone().as_(), Default::default()) + .with_grow_cost(self.schedule.grow_mem_cost.clone().as_()) .with_forbidden_floats(); let module = self @@ -88,7 +88,7 @@ impl<'a, T: Trait> ContractModule<'a, T> { .expect("On entry to the function `module` can't be `None`; qed"); let contract_module = - pwasm_utils::stack_height::inject_limiter(module, self.config.max_stack_height) + pwasm_utils::stack_height::inject_limiter(module, self.schedule.max_stack_height) .map_err(|_| Error::StackHeightInstrumentation)?; self.module = Some(contract_module); @@ -167,16 +167,16 @@ pub(super) struct PreparedContract { /// The checks are: /// /// - module doesn't define an internal memory instance, -/// - imported memory (if any) doesn't reserve more memory than permitted by the `config`, +/// - imported memory (if any) doesn't reserve more memory than permitted by the `schedule`, /// - all imported functions from the external environment matches defined by `env` module, /// /// The preprocessing includes injecting code for gas metering and metering the height of stack. pub(super) fn prepare_contract( original_code: &[u8], - config: &Config, + schedule: &Schedule<::Gas>, env: &HostFunctionSet, ) -> Result { - let mut contract_module = ContractModule::new(original_code, config)?; + let mut contract_module = ContractModule::new(original_code, schedule)?; contract_module.ensure_no_internal_memory()?; contract_module.inject_gas_metering()?; contract_module.inject_stack_height_metering()?; @@ -189,7 +189,7 @@ pub(super) fn prepare_contract( // Requested initial number of pages should not exceed the requested maximum. return Err(Error::Memory); } - (_, Some(maximum)) if maximum > config.max_memory_pages => { + (_, Some(maximum)) if maximum > schedule.max_memory_pages => { // Maximum number of pages should not exceed the configured maximum. return Err(Error::Memory); } @@ -218,7 +218,6 @@ pub(super) fn prepare_contract( mod tests { use super::*; use std::fmt; - use tests::Test; use vm::tests::MockExt; use wabt; @@ -230,9 +229,9 @@ mod tests { fn parse_and_prepare_wat(wat: &str) -> Result { let wasm = wabt::Wat2Wasm::new().validate(false).convert(wat).unwrap(); - let config = Config::::default(); + let schedule = Schedule::::default(); let env = ::vm::runtime::init_env(); - prepare_contract::(wasm.as_ref(), &config, &env) + prepare_contract::(wasm.as_ref(), &schedule, &env) } #[test] @@ -244,7 +243,7 @@ mod tests { #[test] fn memory() { // This test assumes that maximum page number is configured to a certain number. - assert_eq!(Config::::default().max_memory_pages, 16); + assert_eq!(Schedule::::default().max_memory_pages, 16); let r = parse_and_prepare_wat(r#"(module (import "env" "memory" (memory 1 1)))"#); assert_matches!(r, Ok(_)); diff --git a/substrate/srml/contract/src/vm/runtime.rs b/substrate/srml/contract/src/vm/runtime.rs index 3bdc9bf12a..c56953fcdb 100644 --- a/substrate/srml/contract/src/vm/runtime.rs +++ b/substrate/srml/contract/src/vm/runtime.rs @@ -16,7 +16,7 @@ //! Environment definition of the wasm smart-contract runtime. -use super::{BalanceOf, Config, CreateReceipt, Error, Ext}; +use super::{BalanceOf, Schedule, CreateReceipt, Error, Ext}; use rstd::prelude::*; use codec::{Decode, Encode}; use gas::{GasMeter, GasMeterResult}; @@ -41,7 +41,7 @@ pub(crate) struct Runtime<'a, 'data, E: Ext + 'a> { input_data: &'data [u8], output_data: &'data mut Vec, scratch_buf: Vec, - config: &'a Config, + schedule: &'a Schedule<::Gas>, memory: sandbox::Memory, gas_meter: &'a mut GasMeter, special_trap: Option, @@ -51,7 +51,7 @@ impl<'a, 'data, E: Ext + 'a> Runtime<'a, 'data, E> { ext: &'a mut E, input_data: &'data [u8], output_data: &'data mut Vec, - config: &'a Config, + schedule: &'a Schedule<::Gas>, memory: sandbox::Memory, gas_meter: &'a mut GasMeter, ) -> Self { @@ -60,7 +60,7 @@ impl<'a, 'data, E: Ext + 'a> Runtime<'a, 'data, E> { input_data, output_data, scratch_buf: Vec::new(), - config, + schedule, memory, gas_meter, special_trap: None, @@ -117,7 +117,7 @@ fn read_sandbox_memory( ptr: u32, len: u32, ) -> Result, sandbox::HostError> { - let price = (ctx.config.sandbox_data_read_cost) + let price = (ctx.schedule.sandbox_data_read_cost) .checked_mul(& as As>::sa(len)) .ok_or(sandbox::HostError)?; charge_gas(ctx.gas_meter, price)?; @@ -169,7 +169,7 @@ define_env!(init_env, , // // - amount: How much gas is used. gas(ctx, amount: u32) => { - let amount = <<::T as Trait>::Gas as As>::sa(amount); + let amount = <::Gas as As>::sa(amount); charge_gas(&mut ctx.gas_meter, amount)?; Ok(()) @@ -257,7 +257,7 @@ define_env!(init_env, , let nested_gas_limit = if gas == 0 { ctx.gas_meter.gas_left() } else { - <<::T as Trait>::Gas as As>::sa(gas) + <::Gas as As>::sa(gas) }; let ext = &mut ctx.ext; let scratch_buf = &mut ctx.scratch_buf; @@ -316,7 +316,7 @@ define_env!(init_env, , let nested_gas_limit = if gas == 0 { ctx.gas_meter.gas_left() } else { - <<::T as Trait>::Gas as As>::sa(gas) + <::Gas as As>::sa(gas) }; let ext = &mut ctx.ext; let create_outcome = ctx.gas_meter.with_nested(nested_gas_limit, |nested_meter| { @@ -339,8 +339,8 @@ define_env!(init_env, , // Save a data buffer as a result of the execution, terminate the execution and return a // successful result to the caller. ext_return(ctx, data_ptr: u32, data_len: u32) => { - let data_len_in_gas = <<::T as Trait>::Gas as As>::sa(data_len as u64); - let price = (ctx.config.return_data_per_byte_cost) + let data_len_in_gas = <::Gas as As>::sa(data_len as u64); + let price = (ctx.schedule.return_data_per_byte_cost) .checked_mul(&data_len_in_gas) .ok_or(sandbox::HostError)?; @@ -382,7 +382,7 @@ define_env!(init_env, , // Finally, perform the write. write_sandbox_memory( - ctx.config.sandbox_data_write_cost, + ctx.schedule.sandbox_data_write_cost, ctx.gas_meter, &ctx.memory, dest_ptr, @@ -414,7 +414,7 @@ define_env!(init_env, , // Finally, perform the write. write_sandbox_memory( - ctx.config.sandbox_data_write_cost, + ctx.schedule.sandbox_data_write_cost, ctx.gas_meter, &ctx.memory, dest_ptr,