From 1d8a9a6dd3f30383f61dee0c2d94db142e94798d Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 5 Apr 2018 17:13:12 +0200 Subject: [PATCH] Make Polkadot use the Substrate traity libraries (#105) * Initial stuff. * Various fixes. * Fix tests. * Fix another test * Fix another test. * Docs in polkadot runtime. * Fix up ser/de tests. * Update god keys * Syntax * Fix * Merge remote-tracking branch 'origin/master' into gav-merge-runtime * Permissions on init.sh * Port-over the whitespace from @rphmeier * Rename * Merge branch 'master' into gav-merge-runtime * Fix typo. * Fix grumbles. * Make more idiomatic. * Move `Ed25519Signature` out of traits. --- substrate/Cargo.lock | 28 +- substrate/demo/cli/src/lib.rs | 1 + substrate/demo/executor/src/lib.rs | 4 +- substrate/demo/primitives/src/lib.rs | 2 +- substrate/demo/runtime/src/lib.rs | 31 +- substrate/demo/runtime/wasm/Cargo.lock | 5 + .../release/demo_runtime.compact.wasm | Bin 236029 -> 196909 bytes .../release/demo_runtime.wasm | Bin 236080 -> 212625 bytes substrate/polkadot/api/Cargo.toml | 3 + substrate/polkadot/api/src/lib.rs | 176 ++++--- substrate/polkadot/consensus/Cargo.toml | 1 + substrate/polkadot/consensus/src/lib.rs | 55 +- substrate/polkadot/executor/src/lib.rs | 278 ---------- substrate/polkadot/primitives/Cargo.toml | 2 + substrate/polkadot/primitives/src/block.rs | 375 ------------- substrate/polkadot/primitives/src/lib.rs | 35 +- .../polkadot/primitives/src/parachain.rs | 42 +- .../polkadot/primitives/src/transaction.rs | 487 ----------------- .../polkadot/primitives/src/validator.rs | 8 +- substrate/polkadot/runtime/Cargo.toml | 35 +- substrate/polkadot/runtime/src/api.rs | 29 - substrate/polkadot/runtime/src/environment.rs | 81 --- substrate/polkadot/runtime/src/genesismap.rs | 91 ---- substrate/polkadot/runtime/src/lib.rs | 334 +++++++++--- substrate/polkadot/runtime/src/parachains.rs | 210 ++++++++ .../polkadot/runtime/src/runtime/consensus.rs | 48 -- .../runtime/src/runtime/governance.rs | 371 ------------- substrate/polkadot/runtime/src/runtime/mod.rs | 34 -- .../runtime/src/runtime/parachains.rs | 123 ----- .../polkadot/runtime/src/runtime/session.rs | 294 ----------- .../polkadot/runtime/src/runtime/staking.rs | 496 ------------------ .../polkadot/runtime/src/runtime/system.rs | 450 ---------------- .../polkadot/runtime/src/runtime/timestamp.rs | 63 --- substrate/polkadot/runtime/wasm/Cargo.lock | 198 ++++++- substrate/polkadot/runtime/wasm/Cargo.toml | 31 +- substrate/polkadot/runtime/wasm/genesis.wasm | Bin 76656 -> 134951 bytes .../release/polkadot_runtime.compact.wasm | Bin 134951 -> 190956 bytes .../release/polkadot_runtime.wasm | Bin 135000 -> 206587 bytes substrate/polkadot/service/Cargo.toml | 5 +- substrate/polkadot/service/src/lib.rs | 76 ++- .../polkadot/transaction-pool/Cargo.toml | 2 + .../polkadot/transaction-pool/src/lib.rs | 160 ++++-- .../release/runtime_test.compact.wasm | Bin 14298 -> 4422 bytes .../release/runtime_test.wasm | Bin 14394 -> 5096 bytes substrate/substrate/primitives/src/block.rs | 2 +- .../substrate/runtime/consensus/Cargo.toml | 4 + .../substrate/runtime/consensus/src/lib.rs | 26 +- .../substrate/runtime/council/src/lib.rs | 3 +- .../substrate/runtime/democracy/src/lib.rs | 3 +- .../substrate/runtime/executive/src/lib.rs | 35 +- .../runtime/primitives/src/generic.rs | 41 +- .../substrate/runtime/primitives/src/lib.rs | 25 +- .../runtime/primitives/src/traits.rs | 35 +- .../substrate/runtime/session/src/lib.rs | 28 +- .../substrate/runtime/staking/src/lib.rs | 3 +- substrate/substrate/runtime/system/src/lib.rs | 20 +- .../substrate/runtime/timestamp/Cargo.toml | 6 + .../substrate/runtime/timestamp/src/lib.rs | 76 ++- .../substrate_test_runtime.compact.wasm | Bin 33039 -> 16318 bytes .../release/substrate_test_runtime.wasm | Bin 33119 -> 17828 bytes 60 files changed, 1335 insertions(+), 3636 deletions(-) mode change 100644 => 100755 substrate/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm delete mode 100644 substrate/polkadot/primitives/src/block.rs delete mode 100644 substrate/polkadot/primitives/src/transaction.rs delete mode 100644 substrate/polkadot/runtime/src/api.rs delete mode 100644 substrate/polkadot/runtime/src/environment.rs delete mode 100644 substrate/polkadot/runtime/src/genesismap.rs create mode 100644 substrate/polkadot/runtime/src/parachains.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/consensus.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/governance.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/mod.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/parachains.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/session.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/staking.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/system.rs delete mode 100644 substrate/polkadot/runtime/src/runtime/timestamp.rs mode change 100644 => 100755 substrate/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm mode change 100644 => 100755 substrate/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm mode change 100644 => 100755 substrate/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock index ddedd8ca97..40ed4b6f19 100644 --- a/substrate/Cargo.lock +++ b/substrate/Cargo.lock @@ -1126,8 +1126,11 @@ dependencies = [ "polkadot-primitives 0.1.0", "polkadot-runtime 0.1.0", "substrate-client 0.1.0", + "substrate-codec 0.1.0", "substrate-executor 0.1.0", "substrate-keyring 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", "substrate-state-machine 0.1.0", ] @@ -1177,6 +1180,7 @@ dependencies = [ "polkadot-api 0.1.0", "polkadot-collator 0.1.0", "polkadot-primitives 0.1.0", + "polkadot-runtime 0.1.0", "polkadot-statement-table 0.1.0", "polkadot-transaction-pool 0.1.0", "substrate-bft 0.1.0", @@ -1233,6 +1237,7 @@ dependencies = [ "serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", "substrate-primitives 0.1.0", + "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-serializer 0.1.0", ] @@ -1245,13 +1250,25 @@ dependencies = [ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "polkadot-primitives 0.1.0", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 0.1.0", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", "substrate-keyring 0.1.0", - "substrate-misbehavior-check 0.1.0", "substrate-primitives 0.1.0", + "substrate-runtime-consensus 0.1.0", + "substrate-runtime-council 0.1.0", + "substrate-runtime-democracy 0.1.0", + "substrate-runtime-executive 0.1.0", "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-session 0.1.0", + "substrate-runtime-staking 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", + "substrate-runtime-timestamp 0.1.0", + "substrate-serializer 0.1.0", ] [[package]] @@ -1261,6 +1278,7 @@ dependencies = [ "ed25519 0.1.0", "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "polkadot-api 0.1.0", @@ -1273,9 +1291,9 @@ dependencies = [ "substrate-client 0.1.0", "substrate-codec 0.1.0", "substrate-executor 0.1.0", - "substrate-keyring 0.1.0", "substrate-network 0.1.0", "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", "tokio-core 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1297,8 +1315,10 @@ dependencies = [ "ethereum-types 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "polkadot-api 0.1.0", "polkadot-primitives 0.1.0", + "polkadot-runtime 0.1.0", "substrate-codec 0.1.0", "substrate-primitives 0.1.0", + "substrate-runtime-primitives 0.1.0", "transaction-pool 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1819,10 +1839,12 @@ dependencies = [ "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", "substrate-runtime-io 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", ] [[package]] @@ -1995,10 +2017,12 @@ dependencies = [ "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", "substrate-runtime-io 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", ] [[package]] diff --git a/substrate/demo/cli/src/lib.rs b/substrate/demo/cli/src/lib.rs index b58295775b..7aa948f1a0 100644 --- a/substrate/demo/cli/src/lib.rs +++ b/substrate/demo/cli/src/lib.rs @@ -75,6 +75,7 @@ pub fn run(args: I) -> error::Result<()> where let genesis_config = GenesisConfig { consensus: Some(ConsensusConfig { + code: vec![], // TODO authorities: vec![god_key.clone()], }), system: None, diff --git a/substrate/demo/executor/src/lib.rs b/substrate/demo/executor/src/lib.rs index c64855a3d3..17351de138 100644 --- a/substrate/demo/executor/src/lib.rs +++ b/substrate/demo/executor/src/lib.rs @@ -197,7 +197,7 @@ mod tests { construct_block( 1, [69u8; 32].into(), - hex!("4d58afeca0dec7604a0bcfb29573e6ad202efe65c8535b013c0c79b5a8c9114d").into(), + hex!("57ba67304318efaee95c4f9ab95ed5704eafe030bc8db2df00acb08c2f4979c8").into(), vec![Extrinsic { signed: Alice.into(), index: 0, @@ -210,7 +210,7 @@ mod tests { construct_block( 2, block1().1, - hex!("218ce7bdf2350713aa52dbf0a12d1e8b0a3a9f1623e7c95aa4800886e96397d1").into(), + hex!("ead4c60c0cad06b7ee73e64efeec2d4eb82c651469fb2ec748cfe5026bea5c49").into(), vec![ Extrinsic { signed: Bob.into(), diff --git a/substrate/demo/primitives/src/lib.rs b/substrate/demo/primitives/src/lib.rs index ecfb5f7e7d..86945c733f 100644 --- a/substrate/demo/primitives/src/lib.rs +++ b/substrate/demo/primitives/src/lib.rs @@ -49,4 +49,4 @@ pub type Index = u64; pub type Hash = primitives::H256; /// Alias to 512-bit hash when used in the context of a signature on the relay chain. -pub type Signature = runtime_primitives::traits::Ed25519Signature; +pub type Signature = runtime_primitives::Ed25519Signature; diff --git a/substrate/demo/runtime/src/lib.rs b/substrate/demo/runtime/src/lib.rs index e6ac39823b..1f7248f68e 100644 --- a/substrate/demo/runtime/src/lib.rs +++ b/substrate/demo/runtime/src/lib.rs @@ -54,20 +54,6 @@ impl HasPublicAux for Concrete { type PublicAux = AccountId; } -impl timestamp::Trait for Concrete { - type Value = u64; -} - -/// Timestamp module for this concrete runtime. -pub type Timestamp = timestamp::Module; - -impl consensus::Trait for Concrete { - type SessionKey = SessionKey; -} - -/// Consensus module for this concrete runtime. -pub type Consensus = consensus::Module; - impl system::Trait for Concrete { type Index = Index; type BlockNumber = BlockNumber; @@ -81,8 +67,22 @@ impl system::Trait for Concrete { /// System module for this concrete runtime. pub type System = system::Module; -impl session::Trait for Concrete { +impl consensus::Trait for Concrete { type PublicAux = ::PublicAux; + type SessionKey = SessionKey; +} + +/// Consensus module for this concrete runtime. +pub type Consensus = consensus::Module; + +impl timestamp::Trait for Concrete { + type Value = u64; +} + +/// Timestamp module for this concrete runtime. +pub type Timestamp = timestamp::Module; + +impl session::Trait for Concrete { type ConvertAccountIdToSessionKey = Identity; } @@ -113,6 +113,7 @@ pub type CouncilVoting = council::voting::Module; impl_outer_dispatch! { pub enum Call where aux: ::PublicAux { + Consensus = 0, Session = 1, Staking = 2, Timestamp = 3, diff --git a/substrate/demo/runtime/wasm/Cargo.lock b/substrate/demo/runtime/wasm/Cargo.lock index bc627b63e0..45cc1fee9a 100644 --- a/substrate/demo/runtime/wasm/Cargo.lock +++ b/substrate/demo/runtime/wasm/Cargo.lock @@ -666,10 +666,12 @@ dependencies = [ "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", "substrate-runtime-io 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", ] [[package]] @@ -838,9 +840,12 @@ dependencies = [ "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", ] [[package]] diff --git a/substrate/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm b/substrate/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.compact.wasm index e380c8c8f16566cb541db8f57b732f27f7cc33f6..678cce19cb9ae31f9bb6759d50928d0c285e4fa7 100644 GIT binary patch literal 196909 zcmeFa4X|ZbmEU*HxgYPo``+!oufNoyC3Nnkf!8zAr~x7MfE@Q}(+EZom_U&9!hb20T$ZXG`?mj3^JsCQuj}H%FzQp;Zy^A0C=#h&byL9i*UA%PfhcA8b;rIO9#e47nz@-lsrEZOM>t`Rnc(LfK zI9Bof?|JaS55Bh;sN#Ss9(tG;?)}K6pFL9)s+=q;Kk$+F7i)_*FTVf15B+@6TdH{f zLs7BewlBW_{U7}3#pOpneDP9L9MU5f-}lCb%d zWB0!1wP%V-RR>kYn|V^jNVQw4eeZ)8-}7)=?;(30Kl9*w9=Q10dtdwd+oOr8n@BKu z_=6w36hJtx>Wj?m;=}K`bn$)nUV8Zci}(7ryXegRzKb6NBEMMvf>2yly`tam7X|+> zdi*!6`n^HFQjz-jUsV-VFi;a!VVo>>we#JwT9w_>g0k?SLKv8UrivB?^i(*0@l_|m;UbMfcy|G>Q;`M{sK{{!zUUO7z2KGio7{K&?8K62^44?cYVrTZ^_xcGDB z^!^WU`JM;w|M10oe+Hs>pm@AI_@0LzdhqA(1xS#^hwp!H@#jlGa`C+%xs;#z_sau6 zd;bTzZ~cYx;72LH?>zwf-uHg+BOka_e6k$3RUa#tu4Vr#M(M%th zS0{_QI#=A$E1F`~tIk$u>vFp)=6(J2=YzUxM!Fo$htp!d);#v+Nl~xOdi7efcK4** zsLN)wQ}^oO&h1rE)5z`BChtslP8J8_=6qBSd1l_z1J$WsFPx&?y+C1pMKq= zi+*&`pRLvXrvDCgF{;<<-oEYA`lfGIjGKW~bvZr6G*mp#V2hfbNBpcaNq#hhI~Ziq z9NE$Ac6iQ1%Y$B;#K!OSdxF;JG2r#pA^}XpKfN!&PVX?6)iCSr12cw2>kFVUslFx^ z^Ef>peg53wm*(r|>c^j+sB-=3d9QiwZMvq^(>#0AYCfL8B^ymS8*c!I(d|{ApK$_p zKz+pXBRxNCPVNX?4Z}UYGvftaO?PI(A6KKD*@P(`=$)-MOd$1U{7mAJ9MzYEiydfFDC{DY~W5%6xgGhb6by`~m$57eW#P7p(NCOeIQ z2bah$<6Tgn9tVA2A2nOk6UD}V-z(QecBg~t^kyP)(cgAmoh$F?)ihS`G)2>&9?`5Q zZ&%y%K1_K#Bd)|nOr58BUHr^lBS15(0sMl33bn4WZ$3B!05JV*4eWROr6*eHn|=56 ze-tw4)5d%h#0%qUKzSs>FE5Y$Om_&=+C57w0NxQTK+H#ZyXV4uOpkhgtmdY3;J3~L z$3Xjbb;KNxtcckc^Ywb5A*|65l{_?nR{DXK>TIyeNJuXb8_agt2;Gwcl7SFBXZ;|h zTFG_W=L>D9VKM6Q{p%8NAx|{bVC9~E8YEmGPs1%7pJtbEf@&@z} z-Q2|^2kC~2>Mq9oxtpi2mLA=BR?}1W@vog8y~gzDoyjprrUu9MG^ajuriLkLY@S;2 zmPwVG@DxoI47%>ob={v;n`<%JiqUS0yBRqIt|v4_Pp${nDNhEVPXlKXF>r>(u*;3b zxS4OYG~bOelhoL+7TMwhUdD z5O-Tfrj!VlR2E2Tm{UEJ&9=E5$-SD(kE+AO<-MJ{A6(vRxjeWG!M=;pr&3AvjM<6H zOw4__40r`O50mIJ=TDiC@X~S_wc;erIVMbDXAY5!q`OVbG6NC^3_~H6qLy-@r%F|u z+_Ij6ydZ+xtCRdddrT`$+A@u2Q-9mAMrkqTi6K*fwgwmCG))!6NTy}AX=Z>LLHy0cCB+|7AnggL?4%x`asl+?7fkbW0!opXV74#+2oR+e1ZYf|< z*uhUsuZM|zYvaEtgMP5F%9BNPcJZ&}4;rSM=JMss(+^GhAq1t6hj0f!gG=*)2){QQ zN}pX8-~cT098Q35`zjlM18~qc^~;6=ZRaNfENnL8Ib>W*<)(L0Vwh(Fg^l3m_kUE- z_&*0WcGmVcc7#x4J76Qb4XqC{R+@bJ@

eTOx~IvnGQ^gU5I|pr35np2o6WHkI5dPfWWe z)1vhnY!&kZYPg~)ETvvOk)<@L4_YJ$Zxz^5F9*W#u=Jq@OX=VqOKJK%mJ+C%-bib^ zETw@gC8(vfJp+Yd^u+4hFE zWmNT0?66@wot`W#+fmG|C*gD;n|lnlV^j?hjbL)}qKv9Myp7LZGlPD$cu?4XTjo)i zj8?WE4EF2?dp@IM$ii8dv{!~y z7|H;avw^TA+7N30^reTIHQn<<4QY+so(%zB4e&5y1Uv+UfQM#kfoJO>0WaH= zj6GzDu`|VneK9tLY-1X-IgFg4XMx+svABvV8^)Gq|B0vPz1CyolPoGjYf5ELjWr5H{}dVaSgVUb;y78$aHZJOPRJHs1pKR-DDbbx>*bJ^Um15cfw3^pZ^_4MHRTvzve^%lB-`5B4e z-a}N+F}%Tz6$_@V&}20zt7-3`cMlna{NRQ>+-Jykk7U`HjyK;tfo7$XDyA32u&qK1 z$U=av7CZ(1g_`P!m(G4%OpQM;JH+%`ngUg-&pApDScn!%0h=%ppeDh2(RDnmZ0A-9+S zl;gGl90zTIk@Rz6FM^D-x5$bKoY8OxMG3>2<^sz>1*+>%f+;1ykvr2cGvK051kr6? z(@&4I&5OQLUE91VBbw?^N89Csf;2xSBj(&SRV1C;ZTs0v%x8MYGn@5BKN6|_!6pjQ5zKed)zfy5BQLwP++w>trkE<&M zl4N=^?1N!5RAg1p$%G{c@3$(yHJtS}Z4$UYIdUSv0BqHKt$-y@RZ9_FqO#3zP(SL{ z18N2QzCr!CTaVIHi{GMtvs;fonNa^b)E{6<7Kc!5^|mm58GmyImk7l;!`3?0J3HIr z@l8bB&ioKpe@s{0wJBOxw-$fwjin;pdT|r}k!OO4#gP{0amA`bx*FH(>1s3lEAAes zCwUajcY)oZwrQ~N7EFw-I|Nsmejnp!`i9~WeyUr`%{LYw2Wwlx$cSctN>+ylEHPFv ziPje)@+-#H2v09Gh-HN8wik6~MAc>HqakY^)pZ!u46V9WP(=L1eYA|;k`S$!rb@w4 z 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 diff --git a/substrate/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm b/substrate/demo/runtime/wasm/target/wasm32-unknown-unknown/release/demo_runtime.wasm old mode 100644 new mode 100755 index 528b6f61ec2d123d4d29bc7951f86463bfd25cdf..c386dfdcdd0eb467338f9111fa45912212d6fad3 GIT binary patch literal 212625 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

!FGTXG=izx?;NfbmacZhO8Jql15QEAe0Lv9*c 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 z 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 literal 236080 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

~%R6tGK0 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
k=)9j~H?F5*1)>sRDpaVy*B~&t?Q-Cm7vl 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 diff --git a/substrate/polkadot/api/Cargo.toml b/substrate/polkadot/api/Cargo.toml index 5e78af8c12..13c19b7570 100644 --- a/substrate/polkadot/api/Cargo.toml +++ b/substrate/polkadot/api/Cargo.toml @@ -8,7 +8,10 @@ error-chain = "0.11" polkadot-executor = { path = "../executor" } polkadot-runtime = { path = "../runtime" } polkadot-primitives = { path = "../primitives" } +substrate-codec = { path = "../../substrate/codec" } +substrate-runtime-io = { path = "../../substrate/runtime-io" } substrate-client = { path = "../../substrate/client" } +substrate-primitives = { path = "../../substrate/primitives" } substrate-executor = { path = "../../substrate/executor" } substrate-state-machine = { path = "../../substrate/state-machine" } diff --git a/substrate/polkadot/api/src/lib.rs b/substrate/polkadot/api/src/lib.rs index 049e59e197..848bf0c72c 100644 --- a/substrate/polkadot/api/src/lib.rs +++ b/substrate/polkadot/api/src/lib.rs @@ -18,10 +18,13 @@ //! runtime. extern crate polkadot_executor; -extern crate polkadot_runtime; +extern crate polkadot_runtime as runtime; extern crate polkadot_primitives as primitives; +extern crate substrate_codec as codec; +extern crate substrate_runtime_io as runtime_io; extern crate substrate_client as client; extern crate substrate_executor as substrate_executor; +extern crate substrate_primitives; extern crate substrate_state_machine as state_machine; #[macro_use] @@ -32,14 +35,12 @@ extern crate substrate_keyring as keyring; use client::backend::Backend; use client::Client; -use polkadot_runtime::runtime; use polkadot_executor::Executor as LocalDispatch; use substrate_executor::{NativeExecutionDispatch, NativeExecutor}; use state_machine::OverlayedChanges; -use primitives::{AccountId, SessionKey, Timestamp, TxOrder}; -use primitives::block::{Id as BlockId, Block, Header, Body}; -use primitives::transaction::UncheckedTransaction; +use primitives::{AccountId, BlockId, Index, SessionKey, Timestamp}; use primitives::parachain::DutyRoster; +use runtime::{Block, Header, UncheckedExtrinsic, Extrinsic, Call, TimestampCall}; error_chain! { errors { @@ -53,15 +54,15 @@ error_chain! { description("Unknown block") display("Unknown block") } - /// Attempted to push an inherent transaction manually. - PushedInherentTransaction(tx: UncheckedTransaction) { - description("Attempted to push an inherent transaction to a block."), - display("Pushed inherent transaction to a block: {:?}", tx), + /// Attempted to push an inherent extrinsic manually. + PushedInherentTransaction(xt: UncheckedExtrinsic) { + description("Attempted to push an inherent extrinsic to a block."), + display("Pushed inherent extrinsic to a block: {:?}", xt), } - /// Badly-formed transaction. - BadlyFormedTransaction(tx: UncheckedTransaction) { - description("Attempted to push a badly-formed transaction to a block."), - display("Pushed badly-formed transaction to a block: {:?}", tx), + /// Badly-formed extrinsic. + BadlyFormedTransaction(xt: UncheckedExtrinsic) { + description("Attempted to push a badly-formed extrinsic to a block."), + display("Pushed badly-formed extrinsic to a block: {:?}", xt), } /// Some other error. // TODO: allow to be specified as associated type of PolkadotApi @@ -87,8 +88,8 @@ impl From for Error { /// A builder for blocks. pub trait BlockBuilder: Sized { - /// Push a non-inherent transaction. - fn push_transaction(&mut self, transaction: UncheckedTransaction) -> Result<()>; + /// Push a non-inherent extrinsic. + fn push_extrinsic(&mut self, extrinsic: UncheckedExtrinsic) -> Result<()>; /// Finalise the block. fn bake(self) -> Block; @@ -127,8 +128,8 @@ pub trait PolkadotApi { /// Get the timestamp registered at a block. fn timestamp(&self, at: &Self::CheckedBlockId) -> Result; - /// Get the nonce of an account at a block. - fn nonce(&self, at: &Self::CheckedBlockId, account: AccountId) -> Result; + /// Get the index of an account at a block. + fn index(&self, at: &Self::CheckedBlockId, account: AccountId) -> Result; /// Evaluate a block and see if it gives an error. @@ -179,27 +180,27 @@ impl PolkadotApi for Client> } fn session_keys(&self, at: &CheckedId) -> Result> { - with_runtime!(self, at, ::runtime::consensus::authorities) + with_runtime!(self, at, ::runtime::Consensus::authorities) } fn validators(&self, at: &CheckedId) -> Result> { - with_runtime!(self, at, ::runtime::session::validators) + with_runtime!(self, at, ::runtime::Session::validators) } fn duty_roster(&self, at: &CheckedId) -> Result { - with_runtime!(self, at, ::runtime::parachains::calculate_duty_roster) + with_runtime!(self, at, ::runtime::Parachains::calculate_duty_roster) } fn timestamp(&self, at: &CheckedId) -> Result { - with_runtime!(self, at, ::runtime::timestamp::get) + with_runtime!(self, at, ::runtime::Timestamp::now) } fn evaluate_block(&self, at: &CheckedId, block: Block) -> Result<()> { - with_runtime!(self, at, || ::runtime::system::internal::execute_block(block)) + with_runtime!(self, at, || ::runtime::Executive::execute_block(block)) } - fn nonce(&self, at: &Self::CheckedBlockId, account: AccountId) -> Result { - with_runtime!(self, at, || ::runtime::system::nonce(account)) + fn index(&self, at: &Self::CheckedBlockId, account: AccountId) -> Result { + with_runtime!(self, at, || ::runtime::System::account_index(account)) } fn build_block(&self, parent: &CheckedId, timestamp: Timestamp) -> Result { @@ -208,14 +209,20 @@ impl PolkadotApi for Client> parent_hash: self.block_hash_from_id(parent)?.ok_or(ErrorKind::UnknownBlock(*parent))?, number: self.block_number_from_id(parent)?.ok_or(ErrorKind::UnknownBlock(*parent))? + 1, state_root: Default::default(), - transaction_root: Default::default(), + extrinsics_root: Default::default(), digest: Default::default(), }; - let body = Body { - timestamp: timestamp, - transactions: Vec::new(), - }; + let extrinsics = vec![ + UncheckedExtrinsic { + extrinsic: Extrinsic { + signed: Default::default(), + index: Default::default(), + function: Call::Timestamp(TimestampCall::set(timestamp)), + }, + signature: Default::default(), + } + ]; let mut builder = ClientBlockBuilder { parent: *parent, @@ -223,11 +230,13 @@ impl PolkadotApi for Client> state: self.state_at(parent)?, header, timestamp, - transactions: Vec::new(), + extrinsics: extrinsics.clone(), }; - for inherent in body.inherent_transactions() { - builder.execute_transaction(inherent)?; + builder.initialise_block()?; + + for inherent in extrinsics { + builder.apply_extrinsic(inherent)?; } Ok(builder) @@ -242,34 +251,53 @@ pub struct ClientBlockBuilder { state: S, header: Header, timestamp: Timestamp, - transactions: Vec, + extrinsics: Vec, } impl ClientBlockBuilder where S::Error: Into { - // executes a transaction, inherent or otherwise, without appending to the list - fn execute_transaction(&mut self, transaction: UncheckedTransaction) -> Result<()> { - if !transaction.is_well_formed() { - bail!(ErrorKind::BadlyFormedTransaction(transaction)); - } - + // executes a extrinsic, inherent or otherwise, without appending to the list + fn initialise_block(&mut self) -> Result<()> { let mut ext = state_machine::Ext { overlay: &mut self.changes, backend: &self.state, }; - // TODO: avoid clone - let header = self.header.clone(); + let h = self.header.clone(); + let result = ::substrate_executor::with_native_environment( &mut ext, - move || runtime::system::internal::execute_transaction(transaction, header), + || runtime::Executive::initialise_block(&h), ).map_err(Into::into); match result { - Ok(header) => { + Ok(_) => { + ext.overlay.commit_prospective(); + Ok(()) + } + Err(e) => { + ext.overlay.discard_prospective(); + Err(e) + } + } + } + + // executes a extrinsic, inherent or otherwise, without appending to the list + fn apply_extrinsic(&mut self, extrinsic: UncheckedExtrinsic) -> Result<()> { + let mut ext = state_machine::Ext { + overlay: &mut self.changes, + backend: &self.state, + }; + + let result = ::substrate_executor::with_native_environment( + &mut ext, + move || runtime::Executive::apply_extrinsic(extrinsic), + ).map_err(Into::into); + + match result { + Ok(_) => { ext.overlay.commit_prospective(); - self.header = header; Ok(()) } Err(e) => { @@ -283,12 +311,13 @@ impl ClientBlockBuilder impl BlockBuilder for ClientBlockBuilder where S::Error: Into { - fn push_transaction(&mut self, transaction: UncheckedTransaction) -> Result<()> { - if transaction.transaction.function.is_inherent() { - bail!(ErrorKind::PushedInherentTransaction(transaction)); + fn push_extrinsic(&mut self, extrinsic: UncheckedExtrinsic) -> Result<()> { + // Check that this is not an "inherent" extrinsic. + if extrinsic.signature == Default::default() { + bail!(ErrorKind::PushedInherentTransaction(extrinsic)); } else { - self.execute_transaction(transaction.clone())?; - self.transactions.push(transaction); + self.apply_extrinsic(extrinsic.clone())?; + self.extrinsics.push(extrinsic); Ok(()) } } @@ -299,18 +328,14 @@ impl BlockBuilder for ClientBlockBuilder backend: &self.state, }; - let old_header = self.header; let final_header = ::substrate_executor::with_native_environment( &mut ext, - move || runtime::system::internal::finalise_block(old_header) - ).expect("all inherent transactions pushed; all other transactions executed correctly; qed"); + move || runtime::Executive::finalise_block() + ).expect("all inherent extrinsics pushed; all other extrinsics executed correctly; qed"); Block { header: final_header, - body: Body { - timestamp: self.timestamp, - transactions: self.transactions, - } + extrinsics: self.extrinsics, } } } @@ -318,10 +343,12 @@ impl BlockBuilder for ClientBlockBuilder #[cfg(test)] mod tests { use super::*; - use client::in_mem::Backend as InMemory; - use polkadot_runtime::genesismap::{additional_storage_with_genesis, GenesisConfig}; - use substrate_executor::NativeExecutionDispatch; + use runtime_io::with_externalities; use keyring::Keyring; + use codec::Slicable; + use client::in_mem::Backend as InMemory; + use substrate_executor::NativeExecutionDispatch; + use runtime::{GenesisConfig, ConsensusConfig, SessionConfig, BuildExternalities}; fn validators() -> Vec { vec![ @@ -331,20 +358,31 @@ mod tests { } fn client() -> Client> { + let genesis_config = GenesisConfig { + consensus: Some(ConsensusConfig { + code: LocalDispatch::native_equivalent().to_vec(), + authorities: validators(), + }), + system: None, + session: Some(SessionConfig { + validators: validators(), + session_length: 100, + }), + council: Some(Default::default()), + democracy: Some(Default::default()), + parachains: Some(Default::default()), + staking: Some(Default::default()), + }; ::client::new_in_mem( LocalDispatch::new(), || { - let config = GenesisConfig::new_simple(validators(), 100); - - // override code entry. - let mut storage = config.genesis_map(); - storage.insert(b":code".to_vec(), LocalDispatch::native_equivalent().to_vec()); - - let block = ::client::genesis::construct_genesis_block( - &config.genesis_map() + let mut storage = genesis_config.build_externalities(); + let block = ::client::genesis::construct_genesis_block(&storage); + with_externalities(&mut storage, || + // TODO: use api.rs to dispatch instead + runtime::System::initialise_genesis_state(&block.header) ); - storage.extend(additional_storage_with_genesis(&block)); - (block.header, storage.into_iter().collect()) + (substrate_primitives::block::Header::decode(&mut block.header.encode().as_ref()).expect("to_vec() always gives a valid serialisation; qed"), storage.into_iter().collect()) } ).unwrap() } diff --git a/substrate/polkadot/consensus/Cargo.toml b/substrate/polkadot/consensus/Cargo.toml index 103ae1a913..f87a63b87e 100644 --- a/substrate/polkadot/consensus/Cargo.toml +++ b/substrate/polkadot/consensus/Cargo.toml @@ -13,6 +13,7 @@ log = "0.4" polkadot-api = { path = "../api" } polkadot-collator = { path = "../collator" } polkadot-primitives = { path = "../primitives" } +polkadot-runtime = { path = "../runtime" } polkadot-statement-table = { path = "../statement-table" } polkadot-transaction-pool = { path = "../transaction-pool" } substrate-bft = { path = "../../substrate/bft" } diff --git a/substrate/polkadot/consensus/src/lib.rs b/substrate/polkadot/consensus/src/lib.rs index ba1e05b05e..1fc6c441f2 100644 --- a/substrate/polkadot/consensus/src/lib.rs +++ b/substrate/polkadot/consensus/src/lib.rs @@ -38,6 +38,7 @@ extern crate polkadot_collator as collator; extern crate polkadot_statement_table as table; extern crate polkadot_primitives; extern crate polkadot_transaction_pool as transaction_pool; +extern crate polkadot_runtime; extern crate substrate_bft as bft; extern crate substrate_codec as codec; extern crate substrate_primitives as primitives; @@ -62,11 +63,11 @@ use table::generic::Statement as GenericStatement; use runtime_support::Hashable; use polkadot_api::{PolkadotApi, BlockBuilder}; use polkadot_primitives::{Hash, Timestamp}; -use polkadot_primitives::block::Block as PolkadotBlock; use polkadot_primitives::parachain::{Id as ParaId, DutyRoster, BlockData, Extrinsic, CandidateReceipt}; +use polkadot_runtime::Block as PolkadotGenericBlock; use primitives::block::{Block as SubstrateBlock, Header as SubstrateHeader, HeaderHash, Id as BlockId, Number as BlockNumber}; use primitives::AuthorityId; -use transaction_pool::{Ready, TransactionPool}; +use transaction_pool::{Ready, TransactionPool, PolkadotBlock}; use futures::prelude::*; use futures::future; @@ -152,7 +153,7 @@ impl TableContext { } fn sign_statement(&self, statement: table::Statement) -> table::SignedStatement { - let signature = sign_table_statement(&statement, &self.key, &self.parent_hash); + let signature = sign_table_statement(&statement, &self.key, &self.parent_hash).into(); let local_id = self.key.public().0; table::SignedStatement { @@ -552,7 +553,7 @@ impl bft::Proposer for Proposer { if pending_size + pending.encoded_size() >= MAX_TRANSACTIONS_SIZE { break } - match block_builder.push_transaction(pending.as_transaction().clone()) { + match block_builder.push_extrinsic(pending.as_transaction().clone()) { Ok(()) => { pending_size += pending.encoded_size(); } @@ -582,23 +583,23 @@ impl bft::Proposer for Proposer { fn import_misbehavior(&self, misbehavior: Vec<(AuthorityId, bft::Misbehavior)>) { use bft::generic::Misbehavior as GenericMisbehavior; use primitives::bft::{MisbehaviorKind, MisbehaviorReport}; - use polkadot_primitives::transaction::{Function, Transaction, UncheckedTransaction}; + use polkadot_runtime::{Call, Extrinsic, UncheckedExtrinsic, ConsensusCall}; let local_id = self.local_key.public().0; let mut pool = self.transaction_pool.lock(); - let mut next_nonce = { + let mut next_index = { let readiness_evaluator = Ready::create(self.parent_id.clone(), &*self.client); - let cur_nonce = pool.pending(readiness_evaluator) - .filter(|tx| tx.as_transaction().transaction.signed == local_id) + let cur_index = pool.pending(readiness_evaluator) + .filter(|tx| tx.as_ref().as_ref().signed == local_id) .last() - .map(|tx| Ok(tx.as_transaction().transaction.nonce)) - .unwrap_or_else(|| self.client.nonce(&self.parent_id, local_id)); + .map(|tx| Ok(tx.as_ref().as_ref().index)) + .unwrap_or_else(|| self.client.index(&self.parent_id, local_id)); - match cur_nonce { - Ok(cur_nonce) => cur_nonce + 1, + match cur_index { + Ok(cur_index) => cur_index + 1, Err(e) => { - warn!(target: "consensus", "Error computing next transaction nonce: {}", e); + warn!(target: "consensus", "Error computing next transaction index: {}", e); return; } } @@ -618,23 +619,18 @@ impl bft::Proposer for Proposer { => MisbehaviorKind::BftDoubleCommit(round as u32, (h1, s1.signature), (h2, s2.signature)), } }; - - let tx = Transaction { + let extrinsic = Extrinsic { signed: local_id, - nonce: next_nonce, - function: Function::ReportMisbehavior(report), + index: next_index, + function: Call::Consensus(ConsensusCall::report_misbehavior(report)), }; - next_nonce += 1; + next_index += 1; - let message = tx.encode(); - let signature = self.local_key.sign(&message); - let tx = UncheckedTransaction { - transaction: tx, - signature, - }; + let signature = self.local_key.sign(&extrinsic.encode()).into(); + let uxt = UncheckedExtrinsic { extrinsic, signature }; - pool.import(tx).expect("locally signed transaction is valid; qed"); + pool.import(uxt).expect("locally signed extrinsic is valid; qed"); } } } @@ -649,10 +645,11 @@ fn evaluate_proposal( const MAX_TIMESTAMP_DRIFT: Timestamp = 4; let encoded = Slicable::encode(proposal); - let proposal = PolkadotBlock::decode(&mut &encoded[..]) + let proposal = PolkadotGenericBlock::decode(&mut &encoded[..]) + .and_then(|b| PolkadotBlock::from(b).ok()) .ok_or_else(|| ErrorKind::ProposalNotForPolkadot)?; - let transactions_size = proposal.body.transactions.iter().fold(0, |a, tx| { + let transactions_size = proposal.extrinsics.iter().fold(0, |a, tx| { a + Slicable::encode(tx).len() }); @@ -668,7 +665,7 @@ fn evaluate_proposal( // a) we assume the parent is valid. // b) the runtime checks that `proposal.parent_hash` == `block_hash(proposal.number - 1)` - let block_timestamp = proposal.body.timestamp; + let block_timestamp = proposal.timestamp(); // TODO: just defer using `tokio_timer` to delay prepare vote. if block_timestamp > now + MAX_TIMESTAMP_DRIFT { @@ -676,6 +673,6 @@ fn evaluate_proposal( } // execute the block. - client.evaluate_block(parent_id, proposal)?; + client.evaluate_block(parent_id, proposal.into())?; Ok(true) } diff --git a/substrate/polkadot/executor/src/lib.rs b/substrate/polkadot/executor/src/lib.rs index 186e5469cc..e5e096418b 100644 --- a/substrate/polkadot/executor/src/lib.rs +++ b/substrate/polkadot/executor/src/lib.rs @@ -27,282 +27,4 @@ extern crate polkadot_primitives as polkadot_primitives; extern crate ed25519; extern crate triehash; -#[cfg(test)] extern crate substrate_keyring as keyring; -#[cfg(test)] extern crate substrate_runtime_support as runtime_support; -#[cfg(test)] #[macro_use] extern crate hex_literal; - native_executor_instance!(pub Executor, polkadot_runtime::api::dispatch, include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm")); - -#[cfg(test)] -mod tests { - use runtime_io; - use super::Executor; - use substrate_executor::WasmExecutor; - use codec::{KeyedVec, Slicable, Joiner}; - use keyring::Keyring; - use runtime_support::Hashable; - use polkadot_runtime::runtime::staking::balance; - use state_machine::{CodeExecutor, TestExternalities}; - use primitives::twox_128; - use polkadot_primitives::{ - Hash, Header, Body, BlockNumber, Block, Digest, Transaction, - UncheckedTransaction, Function, InherentFunction, - }; - use ed25519::{Public, Pair}; - - const BLOATY_CODE: &[u8] = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm"); - const COMPACT_CODE: &[u8] = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm"); - - // TODO: move into own crate. - macro_rules! map { - ($( $name:expr => $value:expr ),*) => ( - vec![ $( ( $name, $value ) ),* ].into_iter().collect() - ) - } - - fn new_test_ext() -> TestExternalities { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - - map![ - twox_128(&0u64.to_keyed_vec(b"sys:old:")).to_vec() => [69u8; 32].encode(), - twox_128(b"gov:apr").to_vec() => vec![].and(&667u32), - twox_128(b"ses:len").to_vec() => vec![].and(&2u64), - twox_128(b"ses:val:len").to_vec() => vec![].and(&3u32), - twox_128(&0u32.to_keyed_vec(b"ses:val:")).to_vec() => one.to_vec(), - twox_128(&1u32.to_keyed_vec(b"ses:val:")).to_vec() => two.to_vec(), - twox_128(&2u32.to_keyed_vec(b"ses:val:")).to_vec() => three.to_vec(), - twox_128(b"sta:wil:len").to_vec() => vec![].and(&3u32), - twox_128(&0u32.to_keyed_vec(b"sta:wil:")).to_vec() => one.to_vec(), - twox_128(&1u32.to_keyed_vec(b"sta:wil:")).to_vec() => two.to_vec(), - twox_128(&2u32.to_keyed_vec(b"sta:wil:")).to_vec() => three.to_vec(), - twox_128(b"sta:spe").to_vec() => vec![].and(&2u64), - twox_128(b"sta:vac").to_vec() => vec![].and(&3u64), - twox_128(b"sta:era").to_vec() => vec![].and(&0u64), - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ] - } - - fn set_timestamp(timestamp: u64) -> UncheckedTransaction { - UncheckedTransaction::inherent(InherentFunction::TimestampSet(timestamp)) - } - - fn tx() -> UncheckedTransaction { - let transaction = Transaction { - signed: Keyring::One.to_raw_public(), - nonce: 0, - function: Function::StakingTransfer(Keyring::Two.to_raw_public(), 69), - }; - let signature = Keyring::from_raw_public(transaction.signed).unwrap() - .sign(&transaction.encode()); - - UncheckedTransaction { transaction, signature } - } - - fn execute_tx_on(executor: C, ext: &mut TestExternalities, code: &[u8], tx: UncheckedTransaction, header: Header) - -> Result, C::Error> - where C: CodeExecutor - { - let next_header = executor.call(ext, code, "execute_transaction", &vec![].and(&header).and(&set_timestamp(100_000))).unwrap(); - let next_input = next_header.and(&tx); - - executor.call(ext, code, "execute_transaction", &next_input[..]) - } - - fn construct_block(number: BlockNumber, parent_hash: Hash, state_root: Hash, timestamp: u64, txs: Vec) -> (Vec, Hash) { - use triehash::ordered_trie_root; - - - let transactions = txs.into_iter().map(|transaction| { - let signature = Pair::from(Keyring::from_public(Public::from_raw(transaction.signed)).unwrap()) - .sign(&transaction.encode()); - - UncheckedTransaction { transaction, signature } - }).collect(); - - let header = Header { - parent_hash, - number, - state_root, - transaction_root: Default::default(), - digest: Digest { logs: vec![], }, - }; - - let mut block = Block { - header, - body: Body { timestamp, transactions }, - }; - - let transaction_root = ordered_trie_root(block.all_transactions().map(|tx| Slicable::encode(&tx))).0.into(); - block.header.transaction_root = transaction_root; - - let hash = block.header.blake2_256(); - - (block.encode(), hash.into()) - } - - fn block1() -> (Vec, Hash) { - construct_block( - 1, - [69u8; 32].into(), - hex!("3df569d47a0d7f4a448486f04fba4eea3e9dfca001319c609f88b3a67b0dd1ea").into(), - 100_000, - vec![ - Transaction { - signed: Keyring::One.to_raw_public(), - nonce: 0, - function: Function::StakingTransfer(Keyring::Two.to_raw_public(), 69), - } - ] - ) - } - - fn block2() -> (Vec, Hash) { - construct_block( - 2, - block1().1, - hex!("5604fe023cd6effd93aec9b4a008398abdd32afb3fec988a19aa853ab0424a7c").into(), - 200_000, - vec![ - Transaction { - signed: Keyring::Two.to_raw_public(), - nonce: 0, - function: Function::StakingTransfer(Keyring::One.to_raw_public(), 5), - }, - Transaction { - signed: Keyring::One.to_raw_public(), - nonce: 1, - function: Function::StakingTransfer(Keyring::Two.to_raw_public(), 15), - } - ] - ) - } - - #[test] - fn panic_execution_with_foreign_code_gives_error() { - let one = Keyring::One.to_raw_public(); - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![68u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let r = execute_tx_on(Executor::new(), &mut t, BLOATY_CODE, tx(), Header::from_block_number(1)); - assert!(r.is_err()); - } - - #[test] - fn panic_execution_with_native_equivalent_code_gives_error() { - let one = Keyring::One.to_raw_public(); - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![68u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let r = execute_tx_on(Executor::new(), &mut t, COMPACT_CODE, tx(), Header::from_block_number(1)); - assert!(r.is_err()); - } - - #[test] - fn successful_execution_with_native_equivalent_code_gives_ok() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let r = execute_tx_on(Executor::new(), &mut t, COMPACT_CODE, tx(), Header::from_block_number(1)); - assert!(r.is_ok()); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&one), 42); - assert_eq!(balance(&two), 69); - }); - } - - #[test] - fn successful_execution_with_foreign_code_gives_ok() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let r = execute_tx_on(Executor::new(), &mut t, BLOATY_CODE, tx(), Header::from_block_number(1)); - assert!(r.is_ok()); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&one), 42); - assert_eq!(balance(&two), 69); - }); - } - - #[test] - fn full_native_block_import_works() { - let mut t = new_test_ext(); - - Executor::new().call(&mut t, COMPACT_CODE, "execute_block", &block1().0).unwrap(); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&Keyring::One.to_raw_public()), 42); - assert_eq!(balance(&Keyring::Two.to_raw_public()), 69); - }); - - Executor::new().call(&mut t, COMPACT_CODE, "execute_block", &block2().0).unwrap(); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&Keyring::One.to_raw_public()), 32); - assert_eq!(balance(&Keyring::Two.to_raw_public()), 79); - }); - } - - #[test] - fn full_wasm_block_import_works() { - let mut t = new_test_ext(); - - WasmExecutor.call(&mut t, COMPACT_CODE, "execute_block", &block1().0).unwrap(); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&Keyring::One.to_raw_public()), 42); - assert_eq!(balance(&Keyring::Two.to_raw_public()), 69); - }); - - WasmExecutor.call(&mut t, COMPACT_CODE, "execute_block", &block2().0).unwrap(); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&Keyring::One.to_raw_public()), 32); - assert_eq!(balance(&Keyring::Two.to_raw_public()), 79); - }); - } - - #[test] - fn panic_execution_gives_error() { - let one = Keyring::One.to_raw_public(); - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![68u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm"); - let r = execute_tx_on(WasmExecutor, &mut t, &foreign_code[..], tx(), Header::from_block_number(1)); - assert!(r.is_err()); - } - - #[test] - fn successful_execution_gives_ok() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm"); - let r = execute_tx_on(WasmExecutor, &mut t, &foreign_code[..], tx(), Header::from_block_number(1)); - assert!(r.is_ok()); - - runtime_io::with_externalities(&mut t, || { - assert_eq!(balance(&one), 42); - assert_eq!(balance(&two), 69); - }); - } -} diff --git a/substrate/polkadot/primitives/Cargo.toml b/substrate/polkadot/primitives/Cargo.toml index ec2433c9a7..dc424468dc 100644 --- a/substrate/polkadot/primitives/Cargo.toml +++ b/substrate/polkadot/primitives/Cargo.toml @@ -9,6 +9,7 @@ serde_derive = { version = "1.0", optional = true } substrate-codec = { path = "../../substrate/codec", default_features = false } substrate-primitives = { path = "../../substrate/primitives", default_features = false } substrate-runtime-std = { path = "../../substrate/runtime-std", default_features = false } +substrate-runtime-primitives = { path = "../../substrate/runtime/primitives", default_features = false } [dev-dependencies] substrate-serializer = { path = "../../substrate/serializer" } @@ -20,6 +21,7 @@ std = [ "substrate-codec/std", "substrate-primitives/std", "substrate-runtime-std/std", + "substrate-runtime-primitives/std", "serde_derive", "serde/std", ] diff --git a/substrate/polkadot/primitives/src/block.rs b/substrate/polkadot/primitives/src/block.rs deleted file mode 100644 index e74dd19f4c..0000000000 --- a/substrate/polkadot/primitives/src/block.rs +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Block and header type definitions. - -#[cfg(feature = "std")] -use primitives::bytes; -use primitives::H256; -use rstd::vec::Vec; -use codec::{Input, Slicable}; -use transaction::{UncheckedTransaction, Function, InherentFunction}; - -pub use primitives::block::Id; - -/// Used to refer to a block number. -pub type Number = u64; - -/// Hash used to refer to a block hash. -pub type HeaderHash = H256; - -/// Hash used to refer to a transaction hash. -pub type TransactionHash = H256; - -/// Execution log (event) -#[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub struct Log(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); - -impl Slicable for Log { - fn decode(input: &mut I) -> Option { - Vec::::decode(input).map(Log) - } - - fn using_encoded R>(&self, f: F) -> R { - self.0.using_encoded(f) - } -} - - - -/// The digest of a block, useful for light-clients. -#[derive(Clone, Default, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub struct Digest { - /// All logs that have happened in the block. - pub logs: Vec, -} - -impl Slicable for Digest { - fn decode(input: &mut I) -> Option { - Vec::::decode(input).map(|logs| Digest { logs }) - } - - fn using_encoded R>(&self, f: F) -> R { - self.logs.using_encoded(f) - } -} - -/// Iterator over all inherent transactions. -pub struct InherentTransactions<'a> { - number: u64, - body: &'a Body, -} - -impl<'a> Iterator for InherentTransactions<'a> { - type Item = UncheckedTransaction; - - fn next(&mut self) -> Option { - if self.number == InherentFunction::count() { - return None - } - - self.number += 1; - - let function = match self.number { - 1 => Some(InherentFunction::TimestampSet(self.body.timestamp)), - _ => None, - }; - - function.map(UncheckedTransaction::inherent) - } -} - -/// Type alias for an iterator over all transactions in a block. -pub type AllTransactions<'a> = ::rstd::iter::Chain< - InherentTransactions<'a>, - ::rstd::iter::Cloned<::rstd::slice::Iter<'a, UncheckedTransaction>>, ->; - -/// The block body. Contains timestamp and transactions. -// TODO: add candidates update as well. -#[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] -#[cfg_attr(feature = "std", serde(deny_unknown_fields))] -pub struct Body { - /// The timestamp of the block. - pub timestamp: u64, - /// The transactions in the block. - pub transactions: Vec, -} - -impl Body { - /// Get an iterator over all inherent transactions of the body. - pub fn inherent_transactions(&self) -> InherentTransactions { - InherentTransactions { - number: 0, - body: self, - } - } - - /// Get an iterator over all transactions in a block. - pub fn all_transactions(&self) -> AllTransactions { - self.inherent_transactions().chain(self.transactions.iter().cloned()) - } -} - - -/// A Polkadot relay chain block. -#[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub struct Block { - /// The block header. - pub header: Header, - /// The block body. - pub body: Body, -} - -impl Block { - /// Get an iterator over all inherent transactions of the body. - pub fn inherent_transactions(&self) -> InherentTransactions { - self.body.inherent_transactions() - } - - /// Get an iterator over all transactions in a block. - pub fn all_transactions(&self) -> AllTransactions { - self.body.all_transactions() - } -} - -impl Slicable for Block { - fn decode(input: &mut I) -> Option { - let header = try_opt!(Slicable::decode(input)); - - let transactions_len: u32 = try_opt!(Slicable::decode(input)); - let regular_transactions_len = try_opt!(transactions_len.checked_sub(InherentFunction::count() as u32)); - - let timestamp_tx = try_opt!(UncheckedTransaction::decode(input)); - let timestamp = match timestamp_tx.transaction.function { - Function::Inherent(InherentFunction::TimestampSet(ref t)) if timestamp_tx.is_well_formed() => { t.clone() } - _ => return None, - }; - - let transactions: Option> = (0..regular_transactions_len) - .map(|_| UncheckedTransaction::decode(input)) - .filter(|tx| tx.as_ref().map_or(true, |tx| tx.is_well_formed())) - .collect(); - - let body = Body { - timestamp, - transactions: try_opt!(transactions), - }; - - Some(Block { header, body }) - } - - fn encode(&self) -> Vec { - let mut v = Vec::new(); - - v.extend(self.header.encode()); - - // encode inherent transactions before non-inherent. - let transactions_len = self.body.transactions.len() as u64 + InherentFunction::count(); - (transactions_len as u32).using_encoded(|s| v.extend(s)); - - let timestamp_set_tx = UncheckedTransaction::inherent( - InherentFunction::TimestampSet(self.body.timestamp) - ); - - v.extend(timestamp_set_tx.encode()); - for non_inherent_transaction in &self.body.transactions { - v.extend(non_inherent_transaction.encode()); - } - - v - } -} - -/// A relay chain block header. -/// -/// https://github.com/w3f/polkadot-spec/blob/master/spec.md#header -#[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] -#[cfg_attr(feature = "std", serde(deny_unknown_fields))] -pub struct Header { - /// Block parent's hash. - pub parent_hash: HeaderHash, - /// Block number. - pub number: Number, - /// State root after this transition. - pub state_root: H256, - /// The root of the trie that represents this block's transactions, indexed by a 32-byte integer. - pub transaction_root: H256, - /// The digest of activity on the block. - pub digest: Digest, -} - -impl Header { - /// Create a new instance with default fields except `number`, which is given as an argument. - pub fn from_block_number(number: Number) -> Self { - Header { - parent_hash: Default::default(), - number, - state_root: Default::default(), - transaction_root: Default::default(), - digest: Default::default(), - } - } -} - -impl Slicable for Header { - fn decode(input: &mut I) -> Option { - Some(Header { - parent_hash: try_opt!(Slicable::decode(input)), - number: try_opt!(Slicable::decode(input)), - state_root: try_opt!(Slicable::decode(input)), - transaction_root: try_opt!(Slicable::decode(input)), - digest: try_opt!(Slicable::decode(input)), - }) - } - - fn encode(&self) -> Vec { - let mut v = Vec::new(); - - self.parent_hash.using_encoded(|s| v.extend(s)); - self.number.using_encoded(|s| v.extend(s)); - self.state_root.using_encoded(|s| v.extend(s)); - self.transaction_root.using_encoded(|s| v.extend(s)); - self.digest.using_encoded(|s| v.extend(s)); - - v - } -} - -#[cfg(test)] -mod tests { - use super::*; - use codec::Slicable; - use substrate_serializer as ser; - - #[test] - fn test_header_serialization() { - let header = Header { - parent_hash: 5.into(), - number: 67, - state_root: 3.into(), - transaction_root: 6.into(), - digest: Digest { logs: vec![Log(vec![1])] }, - }; - - assert_eq!(ser::to_string_pretty(&header), r#"{ - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000005", - "number": 67, - "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000003", - "transactionRoot": "0x0000000000000000000000000000000000000000000000000000000000000006", - "digest": { - "logs": [ - "0x01" - ] - } -}"#); - - let v = header.encode(); - assert_eq!(Header::decode(&mut &v[..]).unwrap(), header); - } - - #[test] - fn block_encoding_round_trip() { - let mut block = Block { - header: Header::from_block_number(1), - body: Body { - timestamp: 100_000_000, - transactions: Vec::new(), - } - }; - - let raw = block.encode(); - let decoded = Block::decode(&mut &raw[..]).unwrap(); - - assert_eq!(block, decoded); - - block.body.transactions.push(UncheckedTransaction { - transaction: ::transaction::Transaction { - function: Function::StakingStake, - signed: Default::default(), - nonce: 10101, - }, - signature: Default::default(), - }); - - let raw = block.encode(); - let decoded = Block::decode(&mut &raw[..]).unwrap(); - - assert_eq!(block, decoded); - } - - #[test] - fn block_encoding_substrate_round_trip() { - let mut block = Block { - header: Header::from_block_number(1), - body: Body { - timestamp: 100_000_000, - transactions: Vec::new(), - } - }; - - block.body.transactions.push(UncheckedTransaction { - transaction: ::transaction::Transaction { - function: Function::StakingStake, - signed: Default::default(), - nonce: 10101, - }, - signature: Default::default(), - }); - - let raw = block.encode(); - let decoded_substrate = ::primitives::block::Block::decode(&mut &raw[..]).unwrap(); - let encoded_substrate = decoded_substrate.encode(); - let decoded = Block::decode(&mut &encoded_substrate[..]).unwrap(); - - assert_eq!(block, decoded); - } - - #[test] - fn decode_body_without_inherents_fails() { - let substrate_blank = ::primitives::block::Block { - header: ::primitives::block::Header::from_block_number(1), - transactions: Vec::new(), - }; - - let encoded_substrate = substrate_blank.encode(); - assert!(Block::decode(&mut &encoded_substrate[..]).is_none()); - } - - #[test] - fn inherent_transactions_iter_contains_all_inherent() { - let block = Block { - header: Header::from_block_number(1), - body: Body { - timestamp: 10101, - transactions: Vec::new(), - } - }; - - let mut iter = block.inherent_transactions(); - - assert_eq!(InherentFunction::count(), 1); // following depends on this assertion. - assert_eq!(iter.next().unwrap(), UncheckedTransaction::inherent(InherentFunction::TimestampSet(10101))); - assert!(iter.next().is_none()); - } -} diff --git a/substrate/polkadot/primitives/src/lib.rs b/substrate/polkadot/primitives/src/lib.rs index fb02e3d121..012cf57b3d 100644 --- a/substrate/polkadot/primitives/src/lib.rs +++ b/substrate/polkadot/primitives/src/lib.rs @@ -21,7 +21,6 @@ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(not(feature = "std"), feature(alloc))] - #[cfg(feature = "std")] #[macro_use] extern crate serde_derive; @@ -30,34 +29,29 @@ extern crate serde; extern crate substrate_runtime_std as rstd; extern crate substrate_primitives as primitives; +extern crate substrate_runtime_primitives as runtime_primitives; #[cfg(test)] extern crate substrate_serializer; extern crate substrate_codec as codec; -macro_rules! try_opt { - ($e: expr) => { - match $e { - Some(x) => x, - None => return None, - } - } -} - pub mod parachain; pub mod validator; -pub mod block; -pub mod transaction; - -pub use self::block::{Header, Body, Block, Log, Digest}; -pub use self::block::Number as BlockNumber; -pub use self::transaction::{Transaction, UncheckedTransaction, Function, InherentFunction, Proposal}; /// Virtual account ID that represents the idea of a dispatch/statement being signed by everybody /// (who matters). Essentially this means that a majority of validators have decided it is /// "correct". pub const EVERYBODY: AccountId = [255u8; 32]; +/// Something that identifies a block. +pub use primitives::block::Id as BlockId; + +/// The type of digest item. +pub use primitives::block::Log as Log; + +/// An index to a block. +pub type BlockNumber = u64; + /// Alias to Ed25519 pubkey that identifies an account on the relay chain. This will almost /// certainly continue to be the same as the substrate's `AuthorityId`. pub type AccountId = primitives::AuthorityId; @@ -67,22 +61,19 @@ pub type AccountId = primitives::AuthorityId; pub type SessionKey = primitives::AuthorityId; /// Indentifier for a chain. -pub type ChainID = u64; +pub type ChainId = u64; /// Index of a transaction in the relay chain. -pub type TxOrder = u64; +pub type Index = u64; /// A hash of some data used by the relay chain. pub type Hash = primitives::H256; /// Alias to 512-bit hash when used in the context of a signature on the relay chain. -pub type Signature = primitives::hash::H512; +pub type Signature = runtime_primitives::Ed25519Signature; /// A timestamp: seconds since the unix epoch. pub type Timestamp = u64; /// The balance of an account. pub type Balance = u64; - -/// The amount of bonding period left in an account. Measured in eras. -pub type Bondage = u64; diff --git a/substrate/polkadot/primitives/src/parachain.rs b/substrate/polkadot/primitives/src/parachain.rs index e94ba03d28..1dde3b508d 100644 --- a/substrate/polkadot/primitives/src/parachain.rs +++ b/substrate/polkadot/primitives/src/parachain.rs @@ -26,7 +26,7 @@ use ::Hash; /// Unique identifier of a parachain. #[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct Id(u32); impl From for u32 { @@ -63,7 +63,7 @@ impl Slicable for Chain { match disc { 0 => Some(Chain::Relay), - 1 => Some(Chain::Parachain(try_opt!(Slicable::decode(input)))), + 1 => Some(Chain::Parachain(Slicable::decode(input)?)), _ => None, } } @@ -102,8 +102,8 @@ pub struct DutyRoster { impl Slicable for DutyRoster { fn decode(input: &mut I) -> Option { Some(DutyRoster { - validator_duty: try_opt!(Slicable::decode(input)), - guarantor_duty: try_opt!(Slicable::decode(input)), + validator_duty: Slicable::decode(input)?, + guarantor_duty: Slicable::decode(input)?, }) } @@ -123,7 +123,7 @@ impl Slicable for DutyRoster { /// Extrinsic data for a parachain. #[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] pub struct Extrinsic; @@ -132,7 +132,7 @@ pub struct Extrinsic; /// /// https://github.com/w3f/polkadot-spec/blob/master/spec.md#candidate-para-chain-block #[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] pub struct Candidate { @@ -150,7 +150,7 @@ pub struct Candidate { /// Candidate receipt type. #[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] +#[cfg_attr(feature = "std", derive(Debug, Serialize))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] pub struct CandidateReceipt { @@ -184,12 +184,12 @@ impl Slicable for CandidateReceipt { fn decode(input: &mut I) -> Option { Some(CandidateReceipt { - parachain_index: try_opt!(Slicable::decode(input)), - collator: try_opt!(Slicable::decode(input)), - head_data: try_opt!(Slicable::decode(input).map(HeadData)), - balance_uploads: try_opt!(Slicable::decode(input)), - egress_queue_roots: try_opt!(Slicable::decode(input)), - fees: try_opt!(Slicable::decode(input)), + parachain_index: Slicable::decode(input)?, + collator: Slicable::decode(input)?, + head_data: Slicable::decode(input).map(HeadData)?, + balance_uploads: Slicable::decode(input)?, + egress_queue_roots: Slicable::decode(input)?, + fees: Slicable::decode(input)?, }) } } @@ -219,7 +219,7 @@ impl Ord for CandidateReceipt { /// Parachain ingress queue message. #[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct Message(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Consolidated ingress queue data. @@ -227,34 +227,34 @@ pub struct Message(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec /// This is just an ordered vector of other parachains' egress queues, /// obtained according to the routing rules. #[derive(Default, PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct ConsolidatedIngress(pub Vec<(Id, Vec)>); /// Parachain block data. /// /// contains everything required to validate para-block, may contain block and witness data #[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct BlockData(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Parachain header raw bytes wrapper type. #[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct Header(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Parachain head data included in the chain. #[derive(PartialEq, Eq, Clone, PartialOrd, Ord)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct HeadData(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Parachain validation code. #[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct ValidationCode(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Activitiy bit field #[derive(PartialEq, Eq, Clone, Default)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct Activity(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); impl Slicable for Activity { @@ -344,7 +344,7 @@ mod tests { fn test_candidate() { assert_eq!(ser::to_string_pretty(&Candidate { parachain_index: 5.into(), - collator_signature: 10.into(), + collator_signature: primitives::hash::H512::from(10).into(), unprocessed_ingress: ConsolidatedIngress(vec![ (Id(1), vec![Message(vec![2])]), (Id(2), vec![Message(vec![2]), Message(vec![3])]), diff --git a/substrate/polkadot/primitives/src/transaction.rs b/substrate/polkadot/primitives/src/transaction.rs deleted file mode 100644 index f3637034b4..0000000000 --- a/substrate/polkadot/primitives/src/transaction.rs +++ /dev/null @@ -1,487 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Transaction type. - -use rstd::vec::Vec; -use codec::{Input, Slicable}; -use primitives::bft::MisbehaviorReport; -use ::Signature; - -#[cfg(feature = "std")] -use std::fmt; - -use block::Number as BlockNumber; - -#[derive(Clone, Copy, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[repr(u8)] -enum InternalFunctionId { - /// Set the system's code. - SystemSetCode = 0x00, - - /// Set the session length. - SessionSetLength = 0x10, - /// Force a new session. - SessionForceNewSession = 0x11, - - /// Set the number of sessions per era. - StakingSetSessionsPerEra = 0x20, - /// Set the minimum bonding duration for staking. - StakingSetBondingDuration = 0x21, - /// Set the validator count for staking. - StakingSetValidatorCount = 0x22, - /// Force a new staking era. - StakingForceNewEra = 0x23, - - /// Set the per-mille of validator approval required for governance changes. - GovernanceSetApprovalPpmRequired = 0x30, - -} - -impl InternalFunctionId { - /// Derive `Some` value from a `u8`, or `None` if it's invalid. - fn from_u8(value: u8) -> Option { - let functions = [ - InternalFunctionId::SystemSetCode, - InternalFunctionId::SessionSetLength, - InternalFunctionId::SessionForceNewSession, - InternalFunctionId::StakingSetSessionsPerEra, - InternalFunctionId::StakingSetBondingDuration, - InternalFunctionId::StakingSetValidatorCount, - InternalFunctionId::StakingForceNewEra, - InternalFunctionId::GovernanceSetApprovalPpmRequired, - ]; - functions.iter().map(|&f| f).find(|&f| value == f as u8) - } -} - -/// Internal functions that can be dispatched to. -#[derive(Clone, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub enum Proposal { - /// Set the system's code. - SystemSetCode(Vec), - /// Set the session length. - SessionSetLength(BlockNumber), - /// Force a new session. - SessionForceNewSession, - /// Set the number of sessions per era. - StakingSetSessionsPerEra(BlockNumber), - /// Set the minimum bonding duration for staking. - StakingSetBondingDuration(BlockNumber), - /// Set the validator count for staking. - StakingSetValidatorCount(u32), - /// Force a new staking era. - StakingForceNewEra, - /// Set the per-mille of validator approval required for governance changes. - GovernanceSetApprovalPpmRequired(u32), - -} - -impl Slicable for Proposal { - fn decode(input: &mut I) -> Option { - let id = InternalFunctionId::from_u8(input.read_byte()?)?; - let function = match id { - InternalFunctionId::SystemSetCode => - Proposal::SystemSetCode(try_opt!(Slicable::decode(input))), - InternalFunctionId::SessionSetLength => - Proposal::SessionSetLength(try_opt!(Slicable::decode(input))), - InternalFunctionId::SessionForceNewSession => Proposal::SessionForceNewSession, - InternalFunctionId::StakingSetSessionsPerEra => - Proposal::StakingSetSessionsPerEra(try_opt!(Slicable::decode(input))), - InternalFunctionId::StakingSetBondingDuration => - Proposal::StakingSetBondingDuration(try_opt!(Slicable::decode(input))), - InternalFunctionId::StakingSetValidatorCount => - Proposal::StakingSetValidatorCount(try_opt!(Slicable::decode(input))), - InternalFunctionId::StakingForceNewEra => Proposal::StakingForceNewEra, - InternalFunctionId::GovernanceSetApprovalPpmRequired => - Proposal::GovernanceSetApprovalPpmRequired(try_opt!(Slicable::decode(input))), - }; - - Some(function) - } - - fn encode(&self) -> Vec { - let mut v = Vec::new(); - match *self { - Proposal::SystemSetCode(ref data) => { - v.push(InternalFunctionId::SystemSetCode as u8); - data.using_encoded(|s| v.extend(s)); - } - Proposal::SessionSetLength(ref data) => { - v.push(InternalFunctionId::SessionSetLength as u8); - data.using_encoded(|s| v.extend(s)); - } - Proposal::SessionForceNewSession => { - v.push(InternalFunctionId::SessionForceNewSession as u8); - } - Proposal::StakingSetSessionsPerEra(ref data) => { - v.push(InternalFunctionId::StakingSetSessionsPerEra as u8); - data.using_encoded(|s| v.extend(s)); - } - Proposal::StakingSetBondingDuration(ref data) => { - v.push(InternalFunctionId::StakingSetBondingDuration as u8); - data.using_encoded(|s| v.extend(s)); - } - Proposal::StakingSetValidatorCount(ref data) => { - v.push(InternalFunctionId::StakingSetValidatorCount as u8); - data.using_encoded(|s| v.extend(s)); - } - Proposal::StakingForceNewEra => { - v.push(InternalFunctionId::StakingForceNewEra as u8); - } - Proposal::GovernanceSetApprovalPpmRequired(ref data) => { - v.push(InternalFunctionId::GovernanceSetApprovalPpmRequired as u8); - data.using_encoded(|s| v.extend(s)); - } - } - - v - } -} - -/// Public functions that can be dispatched to. -#[derive(Clone, Copy, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -#[repr(u8)] -enum FunctionId { - /// Set the timestamp. - TimestampSet = 0x00, - /// Set temporary session key as a validator. - SessionSetKey = 0x10, - /// Staking subsystem: begin staking. - StakingStake = 0x20, - /// Staking subsystem: stop staking. - StakingUnstake = 0x21, - /// Staking subsystem: transfer stake. - StakingTransfer = 0x22, - /// Report misbehavior. - StakingReportMisbehavior = 0x23, - /// Make a proposal for the governance system. - GovernancePropose = 0x30, - /// Approve a proposal for the governance system. - GovernanceApprove = 0x31, -} - -impl FunctionId { - /// Derive `Some` value from a `u8`, or `None` if it's invalid. - fn from_u8(value: u8) -> Option { - use self::*; - let functions = [ - FunctionId::StakingStake, - FunctionId::StakingUnstake, - FunctionId::StakingTransfer, - FunctionId::StakingReportMisbehavior, - FunctionId::SessionSetKey, - FunctionId::TimestampSet, - FunctionId::GovernancePropose, - FunctionId::GovernanceApprove, - ]; - functions.iter().map(|&f| f).find(|&f| value == f as u8) - } -} - -/// Inherent functions on the runtime. -/// These must be called each block by the `EVERYBODY` account. -#[derive(Clone, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub enum InherentFunction { - /// Set the timestamp. - TimestampSet(u64), -} - -impl InherentFunction { - /// Get the number of inherent functions. - pub fn count() -> u64 { - 1 - } - - /// Get the index. - pub fn index(&self) -> u64 { - match *self { - InherentFunction::TimestampSet(_) => 0, - } - } -} - -/// Functions on the runtime. -#[derive(Clone, PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub enum Function { - /// An inherent function. - Inherent(InherentFunction), - /// Set temporary session key as a validator. - SessionSetKey(::SessionKey), - /// Staking subsystem: begin staking. - StakingStake, - /// Staking subsystem: stop staking. - StakingUnstake, - /// Staking subsystem: transfer stake. - StakingTransfer(::AccountId, u64), - /// Staking subsystem: report misbehavior of a validator. - ReportMisbehavior(MisbehaviorReport), - /// Make a proposal for the governance system. - GovernancePropose(Proposal), - /// Approve a proposal for the governance system. - GovernanceApprove(BlockNumber), -} - -impl Function { - /// The number of inherent functions. - pub fn inherent_functions() -> u64 { InherentFunction::count() } - - /// Whether this function is "inherent": that it must be part of every - /// block at the given index and no other. - /// - /// Transactions containing inherent functions should not be signed. - pub fn is_inherent(&self) -> bool { - match *self { - Function::Inherent(_) => true, - _ => false, - } - } - - /// If this function is inherent, returns the index it should occupy - /// in the block. Otherwise returns `None`. - pub fn inherent_index(&self) -> Option { - match *self { - Function::Inherent(ref inner) => Some(inner.index()), - _ => None, - } - } -} - -impl Slicable for Function { - fn decode(input: &mut I) -> Option { - let id = FunctionId::from_u8(input.read_byte()?)?; - Some(match id { - FunctionId::TimestampSet => - Function::Inherent(InherentFunction::TimestampSet(try_opt!(Slicable::decode(input)))), - FunctionId::SessionSetKey => - Function::SessionSetKey(try_opt!(Slicable::decode(input))), - FunctionId::StakingStake => Function::StakingStake, - FunctionId::StakingUnstake => Function::StakingUnstake, - FunctionId::StakingTransfer => { - let to = try_opt!(Slicable::decode(input)); - let amount = try_opt!(Slicable::decode(input)); - - Function::StakingTransfer(to, amount) - } - FunctionId::StakingReportMisbehavior => Function::ReportMisbehavior(MisbehaviorReport::decode(input)?), - FunctionId::GovernancePropose => - Function::GovernancePropose(try_opt!(Slicable::decode(input))), - FunctionId::GovernanceApprove => - Function::GovernanceApprove(try_opt!(Slicable::decode(input))), - }) - } - - fn encode(&self) -> Vec { - let mut v = Vec::new(); - match *self { - Function::Inherent(InherentFunction::TimestampSet(ref data)) => { - v.push(FunctionId::TimestampSet as u8); - data.using_encoded(|s| v.extend(s)); - } - Function::SessionSetKey(ref data) => { - v.push(FunctionId::SessionSetKey as u8); - data.using_encoded(|s| v.extend(s)); - } - Function::StakingStake => { - v.push(FunctionId::StakingStake as u8); - } - Function::StakingUnstake => { - v.push(FunctionId::StakingUnstake as u8); - } - Function::ReportMisbehavior(ref report) => { - v.push(FunctionId::StakingReportMisbehavior as u8); - report.using_encoded(|s| v.extend(s)); - } - Function::StakingTransfer(ref to, ref amount) => { - v.push(FunctionId::StakingTransfer as u8); - to.using_encoded(|s| v.extend(s)); - amount.using_encoded(|s| v.extend(s)); - } - Function::GovernancePropose(ref data) => { - v.push(FunctionId::GovernancePropose as u8); - data.using_encoded(|s| v.extend(s)); - } - Function::GovernanceApprove(ref data) => { - v.push(FunctionId::GovernanceApprove as u8); - data.using_encoded(|s| v.extend(s)); - } - } - - v - } - - fn using_encoded R>(&self, f: F) -> R { - f(self.encode().as_slice()) - } -} - -/// A vetted and verified transaction from the external world. -#[derive(PartialEq, Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] -pub struct Transaction { - /// Who signed it (note this is not a signature). - pub signed: super::AccountId, - /// The number of transactions have come before from the same signer. - pub nonce: super::TxOrder, - /// The function that should be called. - pub function: Function, -} - -impl Slicable for Transaction { - fn decode(input: &mut I) -> Option { - Some(Transaction { - signed: try_opt!(Slicable::decode(input)), - nonce: try_opt!(Slicable::decode(input)), - function: try_opt!(Slicable::decode(input)), - }) - } - - fn encode(&self) -> Vec { - let mut v = Vec::new(); - - self.signed.using_encoded(|s| v.extend(s)); - self.nonce.using_encoded(|s| v.extend(s)); - self.function.using_encoded(|s| v.extend(s)); - - v - } -} - - - -/// A transactions right from the external world. Unchecked. -#[derive(Eq, Clone)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] -pub struct UncheckedTransaction { - /// The actual transaction information. - pub transaction: Transaction, - /// The signature; should be an Ed25519 signature applied to the serialised `transaction` field. - pub signature: Signature, -} - -impl UncheckedTransaction { - /// Whether the transaction is well-formed. In particular checks that - /// inherent transactions have the correct signed and signature fields. - /// - /// Does not check signatures on other transactions. - pub fn is_well_formed(&self) -> bool { - if self.transaction.function.is_inherent() { - self.transaction.signed == ::EVERYBODY && self.signature == Signature::zero() - } else { - true - } - } - - /// Whether this transaction invokes an inherent function. - pub fn is_inherent(&self) -> bool { - self.transaction.function.is_inherent() - } - - /// Create a new inherent-style transaction from the given function. - pub fn inherent(function: InherentFunction) -> Self { - UncheckedTransaction { - transaction: Transaction { - function: Function::Inherent(function), - nonce: 0, - signed: ::EVERYBODY - }, - signature: Signature::zero(), - } - } -} - -impl Slicable for UncheckedTransaction { - fn decode(input: &mut I) -> Option { - // This is a little more complicated than usual since the binary format must be compatible - // with substrate's generic `Vec` type. Basically this just means accepting that there - // will be a prefix of u32, which has the total number of bytes following (we don't need - // to use this). - let _length_do_not_remove_me_see_above: u32 = try_opt!(Slicable::decode(input)); - - Some(UncheckedTransaction { - transaction: try_opt!(Slicable::decode(input)), - signature: try_opt!(Slicable::decode(input)), - }) - } - - fn encode(&self) -> Vec { - let mut v = Vec::new(); - - // need to prefix with the total length as u32 to ensure it's binary comptible with - // Vec. we'll make room for it here, then overwrite once we know the length. - v.extend(&[0u8; 4]); - - self.transaction.signed.using_encoded(|s| v.extend(s)); - self.transaction.nonce.using_encoded(|s| v.extend(s)); - self.transaction.function.using_encoded(|s| v.extend(s)); - self.signature.using_encoded(|s| v.extend(s)); - - let length = (v.len() - 4) as u32; - length.using_encoded(|s| v[0..4].copy_from_slice(s)); - - v - } -} - - - -impl PartialEq for UncheckedTransaction { - fn eq(&self, other: &Self) -> bool { - self.signature.iter().eq(other.signature.iter()) && self.transaction == other.transaction - } -} - -#[cfg(feature = "std")] -impl fmt::Debug for UncheckedTransaction { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "UncheckedTransaction({:?})", self.transaction) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use primitives; - use ::codec::Slicable; - use primitives::hexdisplay::HexDisplay; - - #[test] - fn serialize_unchecked() { - let tx = UncheckedTransaction { - transaction: Transaction { - signed: [1; 32], - nonce: 999u64, - function: Function::Inherent(InherentFunction::TimestampSet(135135)), - }, - signature: primitives::hash::H512([0; 64]), - }; - // 71000000 - // 0101010101010101010101010101010101010101010101010101010101010101 - // e703000000000000 - // 00 - // df0f0200 - // 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - - let v = Slicable::encode(&tx); - println!("{}", HexDisplay::from(&v)); - assert_eq!(UncheckedTransaction::decode(&mut &v[..]).unwrap(), tx); - } -} diff --git a/substrate/polkadot/primitives/src/validator.rs b/substrate/polkadot/primitives/src/validator.rs index fa622fb629..0bac607594 100644 --- a/substrate/polkadot/primitives/src/validator.rs +++ b/substrate/polkadot/primitives/src/validator.rs @@ -23,22 +23,22 @@ use parachain; /// Parachain outgoing message. #[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct EgressPost(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Balance upload. #[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct BalanceUpload(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// Balance download. #[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] pub struct BalanceDownload(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); /// The result of parachain validation. #[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] +#[cfg_attr(feature = "std", derive(Serialize, Debug))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] pub struct ValidationResult { diff --git a/substrate/polkadot/runtime/Cargo.toml b/substrate/polkadot/runtime/Cargo.toml index ce4565025a..cb6c99de35 100644 --- a/substrate/polkadot/runtime/Cargo.toml +++ b/substrate/polkadot/runtime/Cargo.toml @@ -7,26 +7,47 @@ authors = ["Parity Technologies "] rustc-hex = "1.0" hex-literal = "0.1.0" log = { version = "0.3", optional = true } +serde = { version = "1.0", default_features = false } +serde_derive = { version = "1.0", optional = true } +safe-mix = { path = "../../safe-mix", default_features = false} substrate-codec = { path = "../../substrate/codec" } +substrate-serializer = { path = "../../substrate/serializer" } substrate-runtime-std = { path = "../../substrate/runtime-std" } substrate-runtime-io = { path = "../../substrate/runtime-io" } substrate-runtime-support = { path = "../../substrate/runtime-support" } substrate-primitives = { path = "../../substrate/primitives" } -substrate-misbehavior-check = { path = "../../substrate/misbehavior-check" } -polkadot-primitives = { path = "../primitives" } - -[dev-dependencies] substrate-keyring = { path = "../../substrate/keyring" } +substrate-runtime-consensus = { path = "../../substrate/runtime/consensus" } +substrate-runtime-council = { path = "../../substrate/runtime/council" } +substrate-runtime-democracy = { path = "../../substrate/runtime/democracy" } +substrate-runtime-executive = { path = "../../substrate/runtime/executive" } +substrate-runtime-primitives = { path = "../../substrate/runtime/primitives" } +substrate-runtime-session = { path = "../../substrate/runtime/session" } +substrate-runtime-staking = { path = "../../substrate/runtime/staking" } +substrate-runtime-system = { path = "../../substrate/runtime/system" } +substrate-runtime-timestamp = { path = "../../substrate/runtime/timestamp" } +polkadot-primitives = { path = "../primitives" } [features] default = ["std"] std = [ "substrate-codec/std", + "substrate-primitives/std", "substrate-runtime-std/std", "substrate-runtime-io/std", "substrate-runtime-support/std", - "substrate-primitives/std", - "substrate-misbehavior-check/std", + "substrate-runtime-consensus/std", + "substrate-runtime-council/std", + "substrate-runtime-democracy/std", + "substrate-runtime-executive/std", + "substrate-runtime-primitives/std", + "substrate-runtime-session/std", + "substrate-runtime-staking/std", + "substrate-runtime-system/std", + "substrate-runtime-timestamp/std", "polkadot-primitives/std", - "log" + "serde_derive", + "serde/std", + "log", + "safe-mix/std" ] diff --git a/substrate/polkadot/runtime/src/api.rs b/substrate/polkadot/runtime/src/api.rs deleted file mode 100644 index 7ce51381e9..0000000000 --- a/substrate/polkadot/runtime/src/api.rs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -use runtime::{system, parachains, consensus, session}; - -impl_stubs!( - execute_block => |block| system::internal::execute_block(block), - execute_transaction => |(header, utx)| system::internal::execute_transaction(utx, header), - finalise_block => |header| system::internal::finalise_block(header), - validator_count => |()| session::validator_count(), - validators => |()| session::validators(), - authorities => |()| consensus::authorities(), - duty_roster => |()| parachains::calculate_duty_roster(), - timestamp => |()| ::runtime::timestamp::get(), - nonce => |account_id| system::nonce(account_id) -); diff --git a/substrate/polkadot/runtime/src/environment.rs b/substrate/polkadot/runtime/src/environment.rs deleted file mode 100644 index b7fef7cdd8..0000000000 --- a/substrate/polkadot/runtime/src/environment.rs +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Environment API: Allows certain information to be accessed throughout the runtime. - -use rstd::boxed::Box; -use rstd::cell::RefCell; -use rstd::rc::Rc; - -use polkadot_primitives::{BlockNumber, Digest, Hash}; - -#[derive(Default)] -/// The information that can be accessed globally. -pub struct Environment { - /// The current block number. - pub block_number: BlockNumber, - /// The current block's parent hash. - pub parent_hash: Hash, - /// The current block digest. - pub digest: Digest, -} - -/// Do something with the environment and return its value. Keep the function short. -pub fn with_env T>(f: F) -> T { - let e = env(); - let mut eb = e.borrow_mut(); - f(&mut *eb) -} - -#[cfg(target_arch = "wasm32")] -fn env() -> Rc> { - // Initialize it to a null value - static mut SINGLETON: *const Rc> = 0 as *const Rc>; - - unsafe { - if SINGLETON == 0 as *const Rc> { - // Make it - let singleton: Rc> = Rc::new(RefCell::new(Default::default())); - - // Put it in the heap so it can outlive this call - SINGLETON = Box::into_raw(Box::new(singleton)) as *const _; - } - - // Now we give out a copy of the data that is safe to use concurrently. - (*SINGLETON).clone() - } -} - -#[cfg(not(target_arch = "wasm32"))] -fn env() -> Rc> { - // Initialize it to a null value - thread_local!{ - static SINGLETON: RefCell<*const Rc>> = RefCell::new(0 as *const Rc>); - } - - SINGLETON.with(|s| unsafe { - if *s.borrow() == 0 as *const Rc> { - // Make it - let singleton: Rc> = Rc::new(RefCell::new(Default::default())); - - // Put it in the heap so it can outlive this call - *s.borrow_mut() = Box::into_raw(Box::new(singleton)) as *const _; - } - - // Now we give out a copy of the data that is safe to use concurrently. - (**s.borrow()).clone() - }) -} diff --git a/substrate/polkadot/runtime/src/genesismap.rs b/substrate/polkadot/runtime/src/genesismap.rs deleted file mode 100644 index d2b370fe46..0000000000 --- a/substrate/polkadot/runtime/src/genesismap.rs +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Tool for creating the genesis block. - -use codec::{KeyedVec, Joiner}; -use std::collections::HashMap; -use runtime_io::twox_128; -use runtime_support::Hashable; -use primitives::Block; -use polkadot_primitives::{Balance, BlockNumber, AccountId}; - -/// Configuration of a general Polkadot genesis block. -pub struct GenesisConfig { - pub validators: Vec, - pub authorities: Vec, - pub balances: Vec<(AccountId, Balance)>, - pub block_time: u64, - pub session_length: BlockNumber, - pub sessions_per_era: BlockNumber, - pub bonding_duration: BlockNumber, - pub approval_ratio: u32, -} - -impl GenesisConfig { - pub fn new_simple(authorities_validators: Vec, balance: Balance) -> Self { - GenesisConfig { - validators: authorities_validators.clone(), - authorities: authorities_validators.clone(), - balances: authorities_validators.iter().map(|v| (v.clone(), balance)).collect(), - block_time: 5, // 5 second block time. - session_length: 720, // that's 1 hour per session. - sessions_per_era: 24, // 24 hours per era. - bonding_duration: 90, // 90 days per bond. - approval_ratio: 667, // 66.7% approvals required for legislation. - } - } - - pub fn genesis_map(&self) -> HashMap, Vec> { - let wasm_runtime = include_bytes!("../wasm/genesis.wasm").to_vec(); - vec![ - (&b"gov:apr"[..], vec![].and(&self.approval_ratio)), - (&b"ses:len"[..], vec![].and(&self.session_length)), - (&b"ses:val:len"[..], vec![].and(&(self.validators.len() as u32))), - (&b"sta:wil:len"[..], vec![].and(&0u32)), - (&b"sta:spe"[..], vec![].and(&self.sessions_per_era)), - (&b"sta:vac"[..], vec![].and(&(self.validators.len() as u32))), - (&b"sta:era"[..], vec![].and(&0u64)), - ].into_iter() - .map(|(k, v)| (k.into(), v)) - .chain(self.validators.iter() - .enumerate() - .map(|(i, account)| ((i as u32).to_keyed_vec(b"ses:val:"), vec![].and(account))) - ).chain(self.authorities.iter() - .enumerate() - .map(|(i, account)| ((i as u32).to_keyed_vec(b":auth:"), vec![].and(account))) - ).chain(self.balances.iter() - .map(|&(account, balance)| (account.to_keyed_vec(b"sta:bal:"), vec![].and(&balance))) - ) - .map(|(k, v)| (twox_128(&k[..])[..].to_vec(), v.to_vec())) - .chain(vec![ - (b":code"[..].into(), wasm_runtime), - (b":auth:len"[..].into(), vec![].and(&(self.authorities.len() as u32))), - ].into_iter()) - .chain(self.authorities.iter() - .enumerate() - .map(|(i, account)| ((i as u32).to_keyed_vec(b":auth:"), vec![].and(account))) - ) - .collect() - } -} - -pub fn additional_storage_with_genesis(genesis_block: &Block) -> HashMap, Vec> { - use codec::Slicable; - map![ - twox_128(&0u64.to_keyed_vec(b"sys:old:")).to_vec() => genesis_block.header.blake2_256().encode() - ] -} diff --git a/substrate/polkadot/runtime/src/lib.rs b/substrate/polkadot/runtime/src/lib.rs index caf8cb47c1..11c21ac079 100644 --- a/substrate/polkadot/runtime/src/lib.rs +++ b/substrate/polkadot/runtime/src/lib.rs @@ -14,84 +14,288 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -//! The Polkadot runtime. This can be compiled with #[no_std], ready for Wasm. +//! The Polkadot runtime. This can be compiled with ``#[no_std]`, ready for Wasm. #![cfg_attr(not(feature = "std"), no_std)] -extern crate substrate_runtime_std as rstd; -extern crate substrate_runtime_support as runtime_support; -extern crate substrate_codec as codec; -extern crate substrate_misbehavior_check as misbehavior_check; -extern crate polkadot_primitives; - -#[cfg(all(feature = "std", test))] -extern crate substrate_keyring as keyring; - -#[cfg(feature = "std")] -extern crate rustc_hex; - -#[cfg_attr(any(test, feature = "std"), macro_use)] -extern crate substrate_primitives as primitives; - #[macro_use] extern crate substrate_runtime_io as runtime_io; -#[cfg(test)] #[macro_use] -extern crate hex_literal; +extern crate substrate_runtime_support as runtime_support; -pub mod api; -pub mod environment; -pub mod runtime; +#[macro_use] +extern crate substrate_runtime_primitives as runtime_primitives; -#[cfg(feature = "std")] -pub mod genesismap; +#[cfg(test)] +extern crate substrate_serializer; -/// Type definitions and helpers for transactions. -pub mod transaction { - use rstd::ops; - use polkadot_primitives::Signature; - pub use polkadot_primitives::{Transaction, Function, UncheckedTransaction}; +#[cfg_attr(feature = "std", macro_use)] +extern crate substrate_primitives; - /// A type-safe indicator that a transaction has been checked. - #[derive(PartialEq, Eq, Clone)] - #[cfg_attr(feature = "std", derive(Debug))] - pub struct CheckedTransaction(UncheckedTransaction); +extern crate substrate_runtime_std as rstd; +extern crate substrate_codec as codec; +extern crate substrate_runtime_consensus as consensus; +extern crate substrate_runtime_council as council; +extern crate substrate_runtime_democracy as democracy; +extern crate substrate_runtime_executive as executive; +extern crate substrate_runtime_session as session; +extern crate substrate_runtime_staking as staking; +extern crate substrate_runtime_system as system; +extern crate substrate_runtime_timestamp as timestamp; +extern crate polkadot_primitives; - impl CheckedTransaction { - /// Get a reference to the checked signature. - pub fn signature(&self) -> &Signature { - &self.0.signature - } +mod parachains; + +use runtime_io::BlakeTwo256; +use polkadot_primitives::{AccountId, Balance, BlockNumber, Hash, Index, Log, SessionKey, Signature}; +use runtime_primitives::generic; +use runtime_primitives::traits::{Identity, HasPublicAux}; +#[cfg(feature = "std")] pub use runtime_primitives::BuildExternalities; + +/// Concrete runtime type used to parameterize the various modules. +pub struct Concrete; + +impl HasPublicAux for Concrete { + type PublicAux = AccountId; // TODO: Option +} + +impl system::Trait for Concrete { + type Index = Index; + type BlockNumber = BlockNumber; + type Hash = Hash; + type Hashing = BlakeTwo256; + type Digest = generic::Digest; + type AccountId = AccountId; + type Header = generic::Header; +} +/// System module for this concrete runtime. +pub type System = system::Module; + +impl consensus::Trait for Concrete { + type PublicAux = ::PublicAux; + type SessionKey = SessionKey; +} +/// Consensus module for this concrete runtime. +pub type Consensus = consensus::Module; +pub use consensus::Call as ConsensusCall; + +impl timestamp::Trait for Concrete { + type Value = u64; +} +/// Timestamp module for this concrete runtime. +pub type Timestamp = timestamp::Module; +pub use timestamp::Call as TimestampCall; + +impl session::Trait for Concrete { + type ConvertAccountIdToSessionKey = Identity; +} +/// Session module for this concrete runtime. +pub type Session = session::Module; + +impl staking::Trait for Concrete { + type Balance = Balance; + type DetermineContractAddress = BlakeTwo256; +} +/// Staking module for this concrete runtime. +pub type Staking = staking::Module; + +impl democracy::Trait for Concrete { + type Proposal = PrivCall; +} +/// Democracy module for this concrete runtime. +pub type Democracy = democracy::Module; + +impl council::Trait for Concrete {} +/// Council module for this concrete runtime. +pub type Council = council::Module; +/// Council voting module for this concrete runtime. +pub type CouncilVoting = council::voting::Module; + +impl parachains::Trait for Concrete {} +pub type Parachains = parachains::Module; + +impl_outer_dispatch! { + pub enum Call where aux: ::PublicAux { + Consensus = 0, + Session = 1, + Staking = 2, + Timestamp = 3, + Democracy = 5, + Council = 6, + CouncilVoting = 7, } - impl ops::Deref for CheckedTransaction { - type Target = Transaction; - - fn deref(&self) -> &Transaction { - &self.0.transaction - } - } - - /// Check the validity of a transaction: whether it can appear at the given index - /// and whether it is correctly authenticated. - pub fn check(tx: UncheckedTransaction, index: u64) -> Result { - match tx.transaction.function.inherent_index() { - Some(correct_index) => { - if index != correct_index || !tx.is_well_formed() { return Err(tx) } - return Ok(CheckedTransaction(tx)); - } - None => { - // non-inherent functions must appear after inherent. - if index < Function::inherent_functions() { return Err(tx) } - } - } - - let msg = ::codec::Slicable::encode(&tx.transaction); - if ::runtime_io::ed25519_verify(&tx.signature.0, &msg, &tx.transaction.signed) { - Ok(CheckedTransaction(tx)) - } else { - Err(tx) - } + pub enum PrivCall { + Consensus = 0, + Session = 1, + Staking = 2, + Democracy = 5, + Council = 6, + CouncilVoting = 7, + } +} + +/// Block header type as expected by this runtime. +pub type Header = generic::Header; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; +/// Extrinsic type as expected by this runtime. +pub type Extrinsic = generic::Extrinsic; +/// Executive: handles dispatch to the various modules. +pub type Executive = executive::Executive; + +impl_outer_config! { + pub struct GenesisConfig for Concrete { + ConsensusConfig => consensus, + SystemConfig => system, + SessionConfig => session, + StakingConfig => staking, + DemocracyConfig => democracy, + CouncilConfig => council, + ParachainsConfig => parachains, + } +} + +pub mod api { + impl_stubs!( + authorities => |()| super::Consensus::authorities(), + initialise_block => |header| super::Executive::initialise_block(&header), + apply_extrinsic => |extrinsic| super::Executive::apply_extrinsic(extrinsic), + execute_block => |block| super::Executive::execute_block(block), + finalise_block => |()| super::Executive::finalise_block(), + validator_count => |()| super::Session::validator_count(), + validators => |()| super::Session::validators() + ); +} + +#[cfg(test)] +mod tests { + use super::*; + use substrate_primitives as primitives; + use ::codec::Slicable; + use substrate_primitives::hexdisplay::HexDisplay; + use substrate_serializer as ser; + use runtime_primitives::traits::{Digest as DigestT, Header as HeaderT}; + type Digest = generic::Digest; + + #[test] + fn test_header_serialization() { + let header = Header { + parent_hash: 5.into(), + number: 67, + state_root: 3.into(), + extrinsics_root: 6.into(), + digest: { let mut d = Digest::default(); d.push(Log(vec![1])); d }, + }; + + assert_eq!(ser::to_string_pretty(&header), r#"{ + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000005", + "number": 67, + "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000003", + "extrinsicsRoot": "0x0000000000000000000000000000000000000000000000000000000000000006", + "digest": { + "logs": [ + "0x01" + ] + } +}"#); + + let v = header.encode(); + assert_eq!(Header::decode(&mut &v[..]).unwrap(), header); + } + + #[test] + fn block_encoding_round_trip() { + let mut block = Block { + header: Header::new(1, Default::default(), Default::default(), Default::default(), Default::default()), + extrinsics: vec![ + UncheckedExtrinsic { + extrinsic: Extrinsic { + function: Call::Timestamp(timestamp::Call::set(100_000_000)), + signed: Default::default(), + index: Default::default(), + }, + signature: Default::default(), + } + ], + }; + + let raw = block.encode(); + let decoded = Block::decode(&mut &raw[..]).unwrap(); + + assert_eq!(block, decoded); + + block.extrinsics.push(UncheckedExtrinsic { + extrinsic: Extrinsic { + function: Call::Staking(staking::Call::stake()), + signed: Default::default(), + index: 10101, + }, + signature: Default::default(), + }); + + let raw = block.encode(); + let decoded = Block::decode(&mut &raw[..]).unwrap(); + + assert_eq!(block, decoded); + } + + #[test] + fn block_encoding_substrate_round_trip() { + let mut block = Block { + header: Header::new(1, Default::default(), Default::default(), Default::default(), Default::default()), + extrinsics: vec![ + UncheckedExtrinsic { + extrinsic: Extrinsic { + function: Call::Timestamp(timestamp::Call::set(100_000_000)), + signed: Default::default(), + index: Default::default(), + }, + signature: Default::default(), + } + ], + }; + + block.extrinsics.push(UncheckedExtrinsic { + extrinsic: Extrinsic { + function: Call::Staking(staking::Call::stake()), + signed: Default::default(), + index: 10101, + }, + signature: Default::default(), + }); + + let raw = block.encode(); + let decoded_substrate = primitives::block::Block::decode(&mut &raw[..]).unwrap(); + let encoded_substrate = decoded_substrate.encode(); + let decoded = Block::decode(&mut &encoded_substrate[..]).unwrap(); + + assert_eq!(block, decoded); + } + + #[test] + fn serialize_unchecked() { + let tx = UncheckedExtrinsic { + extrinsic: Extrinsic { + signed: [1; 32], + index: 999u64, + function: Call::Timestamp(TimestampCall::set(135135)), + }, + signature: primitives::hash::H512([0; 64]).into(), + }; + // 71000000 + // 0101010101010101010101010101010101010101010101010101010101010101 + // e703000000000000 + // 00 + // df0f0200 + // 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + + let v = Slicable::encode(&tx); + println!("{}", HexDisplay::from(&v)); + assert_eq!(UncheckedExtrinsic::decode(&mut &v[..]).unwrap(), tx); } } diff --git a/substrate/polkadot/runtime/src/parachains.rs b/substrate/polkadot/runtime/src/parachains.rs new file mode 100644 index 0000000000..18137427a3 --- /dev/null +++ b/substrate/polkadot/runtime/src/parachains.rs @@ -0,0 +1,210 @@ +// Copyright 2017 Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Polkadot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Polkadot. If not, see . + +//! Main parachains logic. For now this is just the determination of which validators do what. + +use polkadot_primitives; +#[cfg(any(feature = "std", test))] use {runtime_io, runtime_primitives}; +use rstd::prelude::*; +#[cfg(any(feature = "std", test))] use rstd::marker::PhantomData; +use codec::{Slicable, Joiner}; +use runtime_support::Hashable; +#[cfg(any(feature = "std", test))] use runtime_support::StorageValue; +use runtime_primitives::traits::Executable; +use polkadot_primitives::parachain::{Id, Chain, DutyRoster}; +use {system, session}; + +pub trait Trait: system::Trait + session::Trait {} + +decl_module! { + pub struct Module; +} + +decl_storage! { + pub trait Store for Module; + // The number of parachains registered at present. + pub Count get(count): b"para:count" => default u32; +} + +impl Module { + /// Calculate the current block's duty roster. + pub fn calculate_duty_roster() -> DutyRoster { + let parachain_count = Self::count(); + let validator_count = >::validator_count(); + let validators_per_parachain = (validator_count - 1) / parachain_count; + + let mut roles_val = (0..validator_count).map(|i| match i { + i if i < parachain_count * validators_per_parachain => + Chain::Parachain(Id::from(i / validators_per_parachain as u32)), + _ => Chain::Relay, + }).collect::>(); + let mut roles_gua = roles_val.clone(); + + let h = >::random_seed(); + let mut seed = h.to_vec().and(b"validator_role_pairs").blake2_256(); + + // shuffle + for i in 0..(validator_count - 1) { + // 8 bytes of entropy used per cycle, 32 bytes entropy per hash + let offset = (i * 8 % 32) as usize; + + // number of roles remaining to select from. + let remaining = (validator_count - i) as usize; + + // 4 * 2 32-bit ints per 256-bit seed. + let val_index = u32::decode(&mut &seed[offset..offset + 4]).expect("using 4 bytes for a 32-bit quantity") as usize % remaining; + let gua_index = u32::decode(&mut &seed[offset + 4..offset + 8]).expect("using 4 bytes for a 32-bit quantity") as usize % remaining; + + if offset == 24 { + // into the last 8 bytes - rehash to gather new entropy + seed = seed.blake2_256(); + } + + // exchange last item with randomly chosen first. + roles_val.swap(remaining - 1, val_index); + roles_gua.swap(remaining - 1, gua_index); + } + + DutyRoster { + validator_duty: roles_val, + guarantor_duty: roles_gua, + } + } +} + +impl Executable for Module { + fn execute() { + } +} + +#[cfg(any(feature = "std", test))] +pub struct GenesisConfig { + pub count: u32, + pub phantom: PhantomData, +} + +#[cfg(any(feature = "std", test))] +impl Default for GenesisConfig { + fn default() -> Self { + GenesisConfig { + count: 0, + phantom: PhantomData, + } + } +} + +#[cfg(any(feature = "std", test))] +impl runtime_primitives::BuildExternalities for GenesisConfig +{ + fn build_externalities(self) -> runtime_io::TestExternalities { + use runtime_io::twox_128; + use codec::Slicable; + map![ + twox_128(>::key()).to_vec() => self.count.encode() + ] + } +} + +#[cfg(test)] +mod tests { + use super::*; + use runtime_io::with_externalities; + use substrate_primitives::H256; + use runtime_primitives::BuildExternalities; + use runtime_primitives::traits::{HasPublicAux, Identity}; + use runtime_primitives::testing::{Digest, Header}; + use consensus; + + pub struct Test; + impl HasPublicAux for Test { + type PublicAux = u64; + } + impl consensus::Trait for Test { + type PublicAux = ::PublicAux; + type SessionKey = u64; + } + impl system::Trait for Test { + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = runtime_io::BlakeTwo256; + type Digest = Digest; + type AccountId = u64; + type Header = Header; + } + impl session::Trait for Test { + type ConvertAccountIdToSessionKey = Identity; + } + impl Trait for Test {} + + type System = system::Module; + type Parachains = Module; + + fn new_test_ext() -> runtime_io::TestExternalities { + let mut t = system::GenesisConfig::::default().build_externalities(); + t.extend(consensus::GenesisConfig::{ + code: vec![], + authorities: vec![1, 2, 3], + }.build_externalities()); + t.extend(session::GenesisConfig::{ + session_length: 1000, + validators: vec![1, 2, 3, 4, 5, 6, 7, 8], + }.build_externalities()); + t.extend(GenesisConfig::{ + count: 2, + phantom: PhantomData, + }.build_externalities()); + t + } + + #[test] + fn simple_setup_should_work() { + with_externalities(&mut new_test_ext(), || { + assert_eq!(Parachains::count(), 2); + }); + } + + #[test] + fn should_work() { + with_externalities(&mut new_test_ext(), || { + let check_roster = |duty_roster: &DutyRoster| { + assert_eq!(duty_roster.validator_duty.len(), 8); + assert_eq!(duty_roster.guarantor_duty.len(), 8); + for i in (0..2).map(Id::from) { + assert_eq!(duty_roster.validator_duty.iter().filter(|&&j| j == Chain::Parachain(i)).count(), 3); + assert_eq!(duty_roster.guarantor_duty.iter().filter(|&&j| j == Chain::Parachain(i)).count(), 3); + } + assert_eq!(duty_roster.validator_duty.iter().filter(|&&j| j == Chain::Relay).count(), 2); + assert_eq!(duty_roster.guarantor_duty.iter().filter(|&&j| j == Chain::Relay).count(), 2); + }; + + System::set_random_seed([0u8; 32].into()); + let duty_roster_0 = Parachains::calculate_duty_roster(); + check_roster(&duty_roster_0); + + System::set_random_seed([1u8; 32].into()); + let duty_roster_1 = Parachains::calculate_duty_roster(); + check_roster(&duty_roster_1); + assert!(duty_roster_0 != duty_roster_1); + + System::set_random_seed([2u8; 32].into()); + let duty_roster_2 = Parachains::calculate_duty_roster(); + check_roster(&duty_roster_2); + assert!(duty_roster_0 != duty_roster_2); + assert!(duty_roster_1 != duty_roster_2); + }); + } +} diff --git a/substrate/polkadot/runtime/src/runtime/consensus.rs b/substrate/polkadot/runtime/src/runtime/consensus.rs deleted file mode 100644 index 7841f1d47d..0000000000 --- a/substrate/polkadot/runtime/src/runtime/consensus.rs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Conensus module for runtime; manages the authority set ready for the native code. - -use rstd::prelude::*; -use runtime_support::storage::unhashed::StorageVec; -use polkadot_primitives::SessionKey; - -struct AuthorityStorageVec {} -impl StorageVec for AuthorityStorageVec { - type Item = SessionKey; - const PREFIX: &'static [u8] = b":auth:"; -} - -/// Get the current set of authorities. These are the session keys. -pub fn authorities() -> Vec { - AuthorityStorageVec::items() -} - -pub mod internal { - use super::*; - - /// Set the current set of authorities' session keys. - /// - /// Called by `next_session` only. - pub fn set_authorities<'a, I: IntoIterator>(authorities: I) { - AuthorityStorageVec::set_items(authorities); - } - - /// Set a single authority by index. - pub fn set_authority(index: u32, key: &SessionKey) { - AuthorityStorageVec::set_item(index, key); - } -} diff --git a/substrate/polkadot/runtime/src/runtime/governance.rs b/substrate/polkadot/runtime/src/runtime/governance.rs deleted file mode 100644 index 80620d578f..0000000000 --- a/substrate/polkadot/runtime/src/runtime/governance.rs +++ /dev/null @@ -1,371 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Governance system: Handles administration and dispatch of sensitive operations including -//! setting new code, minting new tokens and changing parameters. -//! -//! For now this is limited to a simple qualified majority vote (whose parameter is retrieved from -//! storage) between validators. A single vote may be proposed per era, and at most one approval -//! vote may be cast by each validator. The tally is maintained through a simple tag in storage for -//! each validator that has approved. -//! -//! At the end of the era, all validators approvals are tallied and if there are sufficient to pass -//! the proposal then it is enacted. All items in storage concerning the proposal are reset. - -use rstd::prelude::*; -use codec::KeyedVec; -use runtime_support::storage; -use polkadot_primitives::{Proposal, AccountId, Hash, BlockNumber}; -use runtime::{staking, system, session}; - -const APPROVALS_REQUIRED: &[u8] = b"gov:apr"; -const CURRENT_PROPOSAL: &[u8] = b"gov:pro"; -const APPROVAL_OF: &[u8] = b"gov:app:"; - -/// The proportion of validators required for a propsal to be approved measured as the number out -/// of 1000. -pub fn approval_ppm_required() -> u32 { - storage::get_or(APPROVALS_REQUIRED, 1000) -} - -/// The number of concrete validator approvals required for a proposal to pass. -pub fn approvals_required() -> u32 { - approval_ppm_required() * session::validator_count() / 1000 -} - -pub mod public { - use super::*; - - /// Propose a sensitive action to be taken. Any action that is enactable by `Proposal` is valid. - /// Proposal is by the `transactor` and will automatically count as an approval. Transactor must - /// be a current validator. It is illegal to propose when there is already a proposal in effect. - pub fn propose(validator: &AccountId, proposal: &Proposal) { - if storage::exists(CURRENT_PROPOSAL) { - panic!("there may only be one proposal per era."); - } - storage::put(CURRENT_PROPOSAL, proposal); - approve(validator, staking::current_era()); - } - - /// Approve the current era's proposal. Transactor must be a validator. This may not be done more - /// than once for any validator in an era. - pub fn approve(validator: &AccountId, era_index: BlockNumber) { - if era_index != staking::current_era() { - panic!("approval vote applied on non-current era.") - } - if !storage::exists(CURRENT_PROPOSAL) { - panic!("there must be a proposal in order to approve."); - } - if session::validators().into_iter().position(|v| &v == validator).is_none() { - panic!("transactor must be a validator to approve."); - } - let key = validator.to_keyed_vec(APPROVAL_OF); - if storage::exists(&key) { - panic!("transactor may not approve a proposal twice in one era."); - } - storage::put(&key, &true); - } -} - -pub mod privileged { - use super::*; - - /// Set the proportion of validators that must approve for a proposal to be enacted at the end of - /// its era. The value, `ppm`, is measured as a fraction of 1000 rounded down to the nearest whole - /// validator. `1000` would require the approval of all validators; `667` would require two-thirds - /// (or there abouts) of validators. - pub fn set_approval_ppm_required(ppm: u32) { - storage::put(APPROVALS_REQUIRED, &ppm); - } -} - -pub mod internal { - use super::*; - use polkadot_primitives::Proposal; - - /// Current era is ending; we should finish up any proposals. - pub fn end_of_an_era() { - // tally up votes for the current proposal, if any. enact if there are sufficient approvals. - if let Some(proposal) = storage::take::(CURRENT_PROPOSAL) { - let approvals_required = approvals_required(); - let approved = session::validators().into_iter() - .filter_map(|v| storage::take::(&v.to_keyed_vec(APPROVAL_OF))) - .take(approvals_required as usize) - .count() as u32; - if approved == approvals_required { - enact_proposal(proposal); - } - } - } - - fn enact_proposal(proposal: Proposal) { - match proposal { - Proposal::SystemSetCode(code) => { - system::privileged::set_code(&code); - } - Proposal::SessionSetLength(value) => { - session::privileged::set_length(value); - } - Proposal::SessionForceNewSession => { - session::privileged::force_new_session(); - } - Proposal::StakingSetSessionsPerEra(value) => { - staking::privileged::set_sessions_per_era(value); - } - Proposal::StakingSetBondingDuration(value) => { - staking::privileged::set_bonding_duration(value); - } - Proposal::StakingSetValidatorCount(value) => { - staking::privileged::set_validator_count(value); - } - Proposal::StakingForceNewEra => { - staking::privileged::force_new_era() - } - Proposal::GovernanceSetApprovalPpmRequired(value) => { - self::privileged::set_approval_ppm_required(value); - } - - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use codec::{KeyedVec, Joiner}; - use keyring::Keyring; - use environment::with_env; - use polkadot_primitives::{AccountId, Proposal}; - use runtime::{staking, session}; - - fn new_test_ext() -> TestExternalities { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - - map![ - twox_128(APPROVALS_REQUIRED).to_vec() => vec![].and(&667u32), - twox_128(b"ses:len").to_vec() => vec![].and(&1u64), - twox_128(b"ses:val:len").to_vec() => vec![].and(&3u32), - twox_128(&0u32.to_keyed_vec(b"ses:val:")).to_vec() => one.to_vec(), - twox_128(&1u32.to_keyed_vec(b"ses:val:")).to_vec() => two.to_vec(), - twox_128(&2u32.to_keyed_vec(b"ses:val:")).to_vec() => three.to_vec(), - twox_128(b"sta:wil:len").to_vec() => vec![].and(&3u32), - twox_128(&0u32.to_keyed_vec(b"sta:wil:")).to_vec() => one.to_vec(), - twox_128(&1u32.to_keyed_vec(b"sta:wil:")).to_vec() => two.to_vec(), - twox_128(&2u32.to_keyed_vec(b"sta:wil:")).to_vec() => three.to_vec(), - twox_128(b"sta:spe").to_vec() => vec![].and(&1u64), - twox_128(b"sta:vac").to_vec() => vec![].and(&3u64), - twox_128(b"sta:era").to_vec() => vec![].and(&1u64) - ] - } - - #[test] - fn majority_voting_should_work() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Approve it. Era length changes. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - public::approve(&two, 1); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 2); - }); - } - - #[test] - fn majority_voting_should_work_after_unsuccessful_previous() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Fail it. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - - // Block 2: Make proposal. Approve it. It should change era length. - system::testing::set_block_number(2); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - public::approve(&two, 2); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 2); - }); - } - - #[test] - fn minority_voting_should_not_succeed() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Will have only 1 vote. No change. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - }); - } - - #[test] - #[should_panic] - fn old_voting_should_be_illegal() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Will have only 1 vote. No change. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - public::approve(&two, 0); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - }); - } - - #[test] - #[should_panic] - fn double_voting_should_be_illegal() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Will have only 1 vote. No change. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - public::approve(&two, 1); - public::approve(&two, 1); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - }); - } - - #[test] - #[should_panic] - fn over_proposing_should_be_illegal() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Will have only 1 vote. No change. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - public::propose(&two, &Proposal::StakingSetSessionsPerEra(2)); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - }); - } - - #[test] - #[should_panic] - fn approving_without_proposal_should_be_illegal() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Will have only 1 vote. No change. - system::testing::set_block_number(1); - public::approve(&two, 1); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - }); - } - - #[test] - #[should_panic] - fn non_validator_approving_should_be_illegal() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let four = [4u8; 32]; - let mut t = new_test_ext(); - - with_externalities(&mut t, || { - assert_eq!(staking::era_length(), 1u64); - assert_eq!(staking::current_era(), 1u64); - assert_eq!(session::validator_count(), 3u32); - assert_eq!(session::validators(), vec![one.clone(), two.clone(), three.clone()]); - assert!(!session::validators().into_iter().position(|v| &v == &one).is_none()); - - // Block 1: Make proposal. Will have only 1 vote. No change. - system::testing::set_block_number(1); - public::propose(&one, &Proposal::StakingSetSessionsPerEra(2)); - public::approve(&four, 1); - staking::internal::check_new_era(); - assert_eq!(staking::era_length(), 1); - }); - } -} diff --git a/substrate/polkadot/runtime/src/runtime/mod.rs b/substrate/polkadot/runtime/src/runtime/mod.rs deleted file mode 100644 index 6a54fa7310..0000000000 --- a/substrate/polkadot/runtime/src/runtime/mod.rs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! The Polkadot runtime. - -#[allow(unused)] -pub mod system; -#[allow(unused)] -pub mod consensus; -#[allow(unused)] -pub mod staking; -#[allow(unused)] -pub mod timestamp; -#[allow(unused)] -pub mod session; -#[allow(unused)] -pub mod governance; -#[allow(unused)] -pub mod parachains; - -// TODO: polkadao diff --git a/substrate/polkadot/runtime/src/runtime/parachains.rs b/substrate/polkadot/runtime/src/runtime/parachains.rs deleted file mode 100644 index 1cd4151cf9..0000000000 --- a/substrate/polkadot/runtime/src/runtime/parachains.rs +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Main parachains logic. For now this is just the determination of which validators do what. - -use rstd::prelude::*; -use codec::{Slicable, Joiner}; -use runtime_support::{Hashable, storage}; -use environment::with_env; -use runtime::session; -use polkadot_primitives::parachain::{Id, Chain, DutyRoster}; - -const PARACHAIN_COUNT: &[u8] = b"par:cou"; - -/// Get the number of parachains registered at present. -pub fn parachain_count() -> u32 { - storage::get_or(PARACHAIN_COUNT, 0) -} - -/// Calculate the current block's duty roster. -pub fn calculate_duty_roster() -> DutyRoster { - let parachain_count = parachain_count(); - let validator_count = session::validator_count() as u32; - let validators_per_parachain = (validator_count - 1) / parachain_count; - - let mut roles_val = (0..validator_count).map(|i| match i { - i if i < parachain_count * validators_per_parachain => - Chain::Parachain(Id::from(i / validators_per_parachain as u32)), - _ => Chain::Relay, - }).collect::>(); - let mut roles_gua = roles_val.clone(); - - let h = with_env(|e| e.parent_hash.clone()); - let mut seed = Vec::::new().and(&h).and(b"validator_role_pairs").blake2_256(); - - // shuffle - for i in 0..(validator_count - 1) { - // 8 bytes of entropy used per cycle, 32 bytes entropy per hash - let offset = (i * 8 % 32) as usize; - - // number of roles remaining to select from. - let remaining = (validator_count - i) as usize; - - // 4 * 2 32-bit ints per 256-bit seed. - let val_index = u32::decode(&mut &seed[offset..offset + 4]).expect("using 4 bytes for a 32-bit quantity") as usize % remaining; - let gua_index = u32::decode(&mut &seed[offset + 4..offset + 8]).expect("using 4 bytes for a 32-bit quantity") as usize % remaining; - - if offset == 24 { - // into the last 8 bytes - rehash to gather new entropy - seed = seed.blake2_256(); - } - - // exchange last item with randomly chosen first. - roles_val.swap(remaining - 1, val_index); - roles_gua.swap(remaining - 1, gua_index); - } - - DutyRoster { - validator_duty: roles_val, - guarantor_duty: roles_gua, - } -} - -#[cfg(test)] -mod tests { - use super::*; - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use codec::{KeyedVec, Joiner}; - use keyring::Keyring; - use runtime::{consensus, session}; - - fn simple_setup() -> TestExternalities { - map![ - twox_128(b"ses:val:len").to_vec() => vec![].and(&8u32), - twox_128(b"par:cou").to_vec() => vec![].and(&2u32) - ] - } - - #[test] - fn should_work() { - let mut t = simple_setup(); - with_externalities(&mut t, || { - let check_roster = |duty_roster: &DutyRoster| { - assert_eq!(duty_roster.validator_duty.len(), 8); - assert_eq!(duty_roster.guarantor_duty.len(), 8); - for i in (0..2).map(Id::from) { - assert_eq!(duty_roster.validator_duty.iter().filter(|&&j| j == Chain::Parachain(i)).count(), 3); - assert_eq!(duty_roster.guarantor_duty.iter().filter(|&&j| j == Chain::Parachain(i)).count(), 3); - } - assert_eq!(duty_roster.validator_duty.iter().filter(|&&j| j == Chain::Relay).count(), 2); - assert_eq!(duty_roster.guarantor_duty.iter().filter(|&&j| j == Chain::Relay).count(), 2); - }; - - with_env(|e| e.parent_hash = [0u8; 32].into()); - let duty_roster_0 = calculate_duty_roster(); - check_roster(&duty_roster_0); - - with_env(|e| e.parent_hash = [1u8; 32].into()); - let duty_roster_1 = calculate_duty_roster(); - check_roster(&duty_roster_1); - assert!(duty_roster_0 != duty_roster_1); - - with_env(|e| e.parent_hash = [2u8; 32].into()); - let duty_roster_2 = calculate_duty_roster(); - check_roster(&duty_roster_2); - assert!(duty_roster_0 != duty_roster_2); - assert!(duty_roster_1 != duty_roster_2); - }); - } -} diff --git a/substrate/polkadot/runtime/src/runtime/session.rs b/substrate/polkadot/runtime/src/runtime/session.rs deleted file mode 100644 index 4eb5bf5055..0000000000 --- a/substrate/polkadot/runtime/src/runtime/session.rs +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Session manager: is told the validators and allows them to manage their session keys for the -//! consensus module. - -use rstd::prelude::*; -use codec::KeyedVec; -use runtime_support::{storage, StorageVec}; -use polkadot_primitives::{AccountId, SessionKey, BlockNumber}; -use runtime::{system, staking, consensus}; - -const SESSION_LENGTH: &[u8] = b"ses:len"; -const CURRENT_INDEX: &[u8] = b"ses:ind"; -const CURRENT_SESSION_START: &[u8] = b"ses:sta"; -const LAST_SESSION_START: &[u8] = b"ses:lst"; -const LAST_LENGTH_CHANGE: &[u8] = b"ses:llc"; -const NEXT_KEY_FOR: &[u8] = b"ses:nxt:"; -const NEXT_SESSION_LENGTH: &[u8] = b"ses:nln"; - -struct ValidatorStorageVec; -impl StorageVec for ValidatorStorageVec { - type Item = AccountId; - const PREFIX: &'static [u8] = b"ses:val:"; -} - -// the session keys before the previous. -struct LastValidators; -impl StorageVec for LastValidators { - type Item = (AccountId, SessionKey); - const PREFIX: &'static [u8] = b"ses:old:"; -} - -/// Get the current set of validators. -pub fn validators() -> Vec { - ValidatorStorageVec::items() -} - -/// The number of blocks in each session. -pub fn length() -> BlockNumber { - storage::get_or(SESSION_LENGTH, 0) -} - -/// The number of validators currently. -pub fn validator_count() -> u32 { - ValidatorStorageVec::count() as u32 -} - -/// The current session index. -pub fn current_index() -> BlockNumber { - storage::get_or(CURRENT_INDEX, 0) -} - -/// Get the starting block of the current session. -pub fn current_start_block() -> BlockNumber { - // this seems like it's computable just by examining the current block number, session length, - // and last length change, but it's not simple to tell whether we are before or after - // a session rotation on a block which will have one. - storage::get_or(CURRENT_SESSION_START, 0) -} - -/// Get the last session's validators, paired with their authority keys. -pub fn last_session_keys() -> Vec<(AccountId, SessionKey)> { - LastValidators::items() -} - -/// Get the start block of the last session. -/// In general this is computable from the session length, -/// but when the current session is the first with a new length it is uncomputable. -pub fn last_session_start() -> Option { - storage::get(LAST_SESSION_START) -} - -/// The block number at which the era length last changed. -pub fn last_length_change() -> BlockNumber { - storage::get_or(LAST_LENGTH_CHANGE, 0) -} - -pub mod public { - use super::*; - - /// Sets the session key of `_validator` to `_key`. This doesn't take effect until the next - /// session. - pub fn set_key(validator: &AccountId, key: &SessionKey) { - // set new value for next session - storage::put(&validator.to_keyed_vec(NEXT_KEY_FOR), key); - } -} - -pub mod privileged { - use super::*; - - /// Set a new era length. Won't kick in until the next era change (at current length). - pub fn set_length(new: BlockNumber) { - storage::put(NEXT_SESSION_LENGTH, &new); - } - - /// Forces a new session. - pub fn force_new_session() { - rotate_session(); - } -} - -// INTERNAL API (available to other runtime modules) - -pub mod internal { - use super::*; - - /// Transition to a new era, with a new set of valiators. - /// - /// Called by staking::next_era() only. `next_session` should be called after this in order to - /// update the session keys to the next validator set. - pub fn set_validators(new: &[AccountId]) { - LastValidators::set_items( - new.iter().cloned().zip(consensus::authorities()) - ); - ValidatorStorageVec::set_items(new); - consensus::internal::set_authorities(new); - } - - /// Hook to be called after transaction processing. - pub fn check_rotate_session() { - // do this last, after the staking system has had chance to switch out the authorities for the - // new set. - // check block number and call next_session if necessary. - if (system::block_number() - last_length_change()) % length() == 0 { - rotate_session(); - } - } -} - -/// Move onto next session: register the new authority set. -fn rotate_session() { - // Increment current session index. - storage::put(CURRENT_INDEX, &(current_index() + 1)); - // Enact era length change. - if let Some(next_len) = storage::get::(NEXT_SESSION_LENGTH) { - storage::put(SESSION_LENGTH, &next_len); - storage::put(LAST_LENGTH_CHANGE, &system::block_number()); - storage::kill(NEXT_SESSION_LENGTH); - } - - let validators = validators(); - - storage::put(LAST_SESSION_START, ¤t_start_block()); - storage::put(CURRENT_SESSION_START, &system::block_number()); - LastValidators::set_items( - validators.iter() - .cloned() - .zip(consensus::authorities()) - ); - - - // Update any changes in session keys. - validators.iter().enumerate().for_each(|(i, v)| { - let k = v.to_keyed_vec(NEXT_KEY_FOR); - if let Some(n) = storage::take(&k) { - // this is fine because the authorities vector currently - // matches the validators length perfectly. - consensus::internal::set_authority(i as u32, &n); - } - }); -} - -#[cfg(test)] -mod tests { - use super::*; - use super::public::*; - use super::privileged::*; - use super::internal::*; - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use codec::{KeyedVec, Joiner}; - use keyring::Keyring; - use environment::with_env; - use polkadot_primitives::AccountId; - use runtime::{consensus, session}; - - fn simple_setup() -> TestExternalities { - map![ - twox_128(SESSION_LENGTH).to_vec() => vec![].and(&2u64), - // the validators (10, 20, ...) - twox_128(b"ses:val:len").to_vec() => vec![].and(&2u32), - twox_128(&0u32.to_keyed_vec(ValidatorStorageVec::PREFIX)).to_vec() => vec![10; 32], - twox_128(&1u32.to_keyed_vec(ValidatorStorageVec::PREFIX)).to_vec() => vec![20; 32], - // initial session keys (11, 21, ...) - b":auth:len".to_vec() => vec![].and(&2u32), - 0u32.to_keyed_vec(b":auth:") => vec![11; 32], - 1u32.to_keyed_vec(b":auth:") => vec![21; 32] - ] - } - - #[test] - fn simple_setup_should_work() { - let mut t = simple_setup(); - with_externalities(&mut t, || { - assert_eq!(consensus::authorities(), vec![[11u8; 32], [21u8; 32]]); - assert_eq!(length(), 2u64); - assert_eq!(validators(), vec![[10u8; 32], [20u8; 32]]); - }); - } - - #[test] - fn session_length_change_should_work() { - let mut t = simple_setup(); - with_externalities(&mut t, || { - // Block 1: Change to length 3; no visible change. - system::testing::set_block_number(1); - set_length(3); - check_rotate_session(); - assert_eq!(length(), 2); - assert_eq!(current_index(), 0); - - // Block 2: Length now changed to 3. Index incremented. - system::testing::set_block_number(2); - set_length(3); - check_rotate_session(); - assert_eq!(length(), 3); - assert_eq!(current_index(), 1); - - // Block 3: Length now changed to 3. Index incremented. - system::testing::set_block_number(3); - check_rotate_session(); - assert_eq!(length(), 3); - assert_eq!(current_index(), 1); - - // Block 4: Change to length 2; no visible change. - system::testing::set_block_number(4); - set_length(2); - check_rotate_session(); - assert_eq!(length(), 3); - assert_eq!(current_index(), 1); - - // Block 5: Length now changed to 2. Index incremented. - system::testing::set_block_number(5); - check_rotate_session(); - assert_eq!(length(), 2); - assert_eq!(current_index(), 2); - - // Block 6: No change. - system::testing::set_block_number(6); - check_rotate_session(); - assert_eq!(length(), 2); - assert_eq!(current_index(), 2); - - // Block 7: Next index. - system::testing::set_block_number(7); - check_rotate_session(); - assert_eq!(length(), 2); - assert_eq!(current_index(), 3); - }); - } - - #[test] - fn session_change_should_work() { - let mut t = simple_setup(); - with_externalities(&mut t, || { - // Block 1: No change - system::testing::set_block_number(1); - check_rotate_session(); - assert_eq!(consensus::authorities(), vec![[11u8; 32], [21u8; 32]]); - - // Block 2: Session rollover, but no change. - system::testing::set_block_number(2); - check_rotate_session(); - assert_eq!(consensus::authorities(), vec![[11u8; 32], [21u8; 32]]); - - // Block 3: Set new key for validator 2; no visible change. - system::testing::set_block_number(3); - set_key(&[20; 32], &[22; 32]); - assert_eq!(consensus::authorities(), vec![[11u8; 32], [21u8; 32]]); - - check_rotate_session(); - assert_eq!(consensus::authorities(), vec![[11u8; 32], [21u8; 32]]); - - // Block 4: Session rollover, authority 2 changes. - system::testing::set_block_number(4); - check_rotate_session(); - assert_eq!(consensus::authorities(), vec![[11u8; 32], [22u8; 32]]); - }); - } -} diff --git a/substrate/polkadot/runtime/src/runtime/staking.rs b/substrate/polkadot/runtime/src/runtime/staking.rs deleted file mode 100644 index 7ed94b9202..0000000000 --- a/substrate/polkadot/runtime/src/runtime/staking.rs +++ /dev/null @@ -1,496 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Staking manager: Handles balances and periodically determines the best set of validators. - -use rstd::prelude::*; -use rstd::cell::RefCell; -use runtime_io::print; -use codec::KeyedVec; -use runtime_support::{storage, StorageVec}; -use polkadot_primitives::{BlockNumber, AccountId}; -use primitives::bft::{MisbehaviorReport, MisbehaviorKind}; -use runtime::{system, session, governance, consensus}; - -type Balance = u64; -type Bondage = u64; - -struct IntentionStorageVec {} -impl StorageVec for IntentionStorageVec { - type Item = AccountId; - const PREFIX: &'static [u8] = b"sta:wil:"; -} - -const BONDING_DURATION: &[u8] = b"sta:loc"; -const VALIDATOR_COUNT: &[u8] = b"sta:vac"; -const SESSIONS_PER_ERA: &[u8] = b"sta:spe"; -const NEXT_SESSIONS_PER_ERA: &[u8] = b"sta:nse"; -const CURRENT_ERA: &[u8] = b"sta:era"; -const LAST_ERA_LENGTH_CHANGE: &[u8] = b"sta:lec"; -const TOTAL_STAKE: &[u8] = b"sta:tot"; -const BALANCE_OF: &[u8] = b"sta:bal:"; -const BONDAGE_OF: &[u8] = b"sta:bon:"; - -/// The length of the bonding duration in eras. -pub fn bonding_duration() -> BlockNumber { - storage::get_or_default(BONDING_DURATION) -} - -/// The length of a staking era in sessions. -pub fn validator_count() -> usize { - storage::get_or_default::(VALIDATOR_COUNT) as usize -} - -/// The length of a staking era in blocks. -pub fn era_length() -> BlockNumber { - sessions_per_era() * session::length() -} - -/// The length of a staking era in sessions. -pub fn sessions_per_era() -> BlockNumber { - storage::get_or_default(SESSIONS_PER_ERA) -} - -/// The current era index. -pub fn current_era() -> BlockNumber { - storage::get_or_default(CURRENT_ERA) -} - -/// The block number at which the era length last changed. -pub fn last_era_length_change() -> BlockNumber { - storage::get_or_default(LAST_ERA_LENGTH_CHANGE) -} - -/// The balance of a given account. -pub fn balance(who: &AccountId) -> Balance { - storage::get_or_default(&who.to_keyed_vec(BALANCE_OF)) -} - -/// Gives the index of the era where the account's balance will no longer -/// be bonded. -pub fn bondage(who: &AccountId) -> Bondage { - storage::get_or_default(&who.to_keyed_vec(BONDAGE_OF)) -} - -fn set_balance(who: &AccountId, amount: Balance) { - storage::put(&who.to_keyed_vec(BALANCE_OF), &amount) -} - -// Each identity's stake may be in one of three bondage states, given by an integer: -// - n | n <= current_era(): inactive: free to be transferred. -// - ~0: active: currently representing a validator. -// - n | n > current_era(): deactivating: recently representing a validator and not yet -// ready for transfer. - -pub mod public { - use super::*; - - /// Transfer some unlocked staking balance to another staker. - pub fn transfer(transactor: &AccountId, dest: &AccountId, value: Balance) { - let from_key = transactor.to_keyed_vec(BALANCE_OF); - let from_balance = storage::get_or_default::(&from_key); - assert!(from_balance >= value); - let to_key = dest.to_keyed_vec(BALANCE_OF); - let to_balance: Balance = storage::get_or_default(&to_key); - assert!(bondage(transactor) <= bondage(dest)); - assert!(to_balance + value > to_balance); // no overflow - storage::put(&from_key, &(from_balance - value)); - storage::put(&to_key, &(to_balance + value)); - } - - /// Declare the desire to stake for the transactor. - /// - /// Effects will be felt at the beginning of the next era. - pub fn stake(transactor: &AccountId) { - let mut intentions = IntentionStorageVec::items(); - // can't be in the list twice. - assert!(intentions.iter().find(|t| t == &transactor).is_none(), "Cannot stake if already staked."); - intentions.push(transactor.clone()); - IntentionStorageVec::set_items(&intentions); - storage::put(&transactor.to_keyed_vec(BONDAGE_OF), &u64::max_value()); - } - - /// Retract the desire to stake for the transactor. - /// - /// Effects will be felt at the beginning of the next era. - pub fn unstake(transactor: &AccountId) { - let mut intentions = IntentionStorageVec::items(); - if let Some(position) = intentions.iter().position(|t| t == transactor) { - intentions.swap_remove(position); - } else { - panic!("Cannot unstake if not already staked."); - } - IntentionStorageVec::set_items(&intentions); - storage::put(&transactor.to_keyed_vec(BONDAGE_OF), &(current_era() + bonding_duration())); - } - - /// Report misbehavior. Only validators may do this, signing under - /// the authority key of the session the report corresponds to. - /// - /// Reports older than one session in the past will be ignored. - pub fn report_misbehavior(transactor: &AccountId, report: &MisbehaviorReport) { - let (validators, authorities) = if report.parent_number < session::last_session_start().unwrap_or(0) { - panic!("report is too old"); - } else if report.parent_number < session::current_start_block() { - session::last_session_keys().into_iter().unzip() - } else { - (session::validators(), consensus::authorities()) - }; - - if report.parent_hash != system::block_hash(report.parent_number) { - // report out of chain. - panic!("report not from this blockchain"); - } - - let reporting_validator = match authorities.iter().position(|x| x == transactor) { - None => panic!("only validators may report"), - Some(pos) => validators.get(pos).expect("validators and authorities have same cardinality; qed"), - }; - - // any invalidity beyond this point is actually its own misbehavior. - let target = match authorities.iter().position(|x| x == &report.target) { - None => { - slash(reporting_validator, None); - return; - } - Some(pos) => validators.get(pos).expect("validators and authorities have same cardinality; qed"), - }; - - let misbehaved = ::misbehavior_check::evaluate_misbehavior(&report.target, report.parent_hash, &report.misbehavior); - if misbehaved { - slash(target, Some(reporting_validator)) - } else { - slash(reporting_validator, None); - } - } -} - -pub mod privileged { - use super::*; - - /// Set the number of sessions in an era. - pub fn set_sessions_per_era(new: BlockNumber) { - storage::put(NEXT_SESSIONS_PER_ERA, &new); - } - - /// The length of the bonding duration in eras. - pub fn set_bonding_duration(new: BlockNumber) { - storage::put(BONDING_DURATION, &new); - } - - /// The length of a staking era in sessions. - pub fn set_validator_count(new: u32) { - storage::put(VALIDATOR_COUNT, &new); - } - - /// Force there to be a new era. This also forces a new session immediately after. - pub fn force_new_era() { - new_era(); - session::privileged::force_new_session(); - } -} - -pub mod internal { - use super::*; - - /// Hook to be called after to transaction processing. - pub fn check_new_era() { - // check block number and call new_era if necessary. - if (system::block_number() - last_era_length_change()) % era_length() == 0 { - new_era(); - } - } -} - -/// Slash a validator, with an optional benefactor. -fn slash(who: &AccountId, benefactor: Option<&AccountId>) { - // the reciprocal of the proportion of the amount slashed to give - // to the benefactor. - const SLASH_REWARD_DENOMINATOR: Balance = 10; - - let slashed = balance(who); - set_balance(who, 0); - - if let Some(benefactor) = benefactor { - let reward = slashed / SLASH_REWARD_DENOMINATOR; - - let prior = balance(benefactor); - set_balance(benefactor, prior + reward); - } -} - -/// The era has changed - enact new staking set. -/// -/// NOTE: This always happens immediately before a session change to ensure that new validators -/// get a chance to set their session keys. -fn new_era() { - // Inform governance module that it's the end of an era - governance::internal::end_of_an_era(); - - // Increment current era. - storage::put(CURRENT_ERA, &(current_era() + 1)); - - // Enact era length change. - let next_spe: u64 = storage::get_or_default(NEXT_SESSIONS_PER_ERA); - if next_spe > 0 && next_spe != sessions_per_era() { - storage::put(SESSIONS_PER_ERA, &next_spe); - storage::put(LAST_ERA_LENGTH_CHANGE, &system::block_number()); - } - - // evaluate desired staking amounts and nominations and optimise to find the best - // combination of validators, then use session::internal::set_validators(). - // for now, this just orders would-be stakers by their balances and chooses the top-most - // validator_count() of them. - let mut intentions = IntentionStorageVec::items() - .into_iter() - .map(|v| (balance(&v), v)) - .collect::>(); - intentions.sort_unstable_by(|&(b1, _), &(b2, _)| b2.cmp(&b1)); - session::internal::set_validators( - &intentions.into_iter() - .map(|(_, v)| v) - .take(validator_count()) - .collect::>() - ); -} - -#[cfg(test)] -mod tests { - use super::*; - use super::internal::*; - use super::public::*; - use super::privileged::*; - - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use codec::{KeyedVec, Joiner}; - use keyring::Keyring; - use environment::with_env; - use polkadot_primitives::AccountId; - use runtime::{staking, session}; - - #[test] - fn staking_should_work() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - let four = [4u8; 32]; - - let mut t: TestExternalities = map![ - twox_128(b"ses:len").to_vec() => vec![].and(&1u64), - twox_128(b"ses:val:len").to_vec() => vec![].and(&2u32), - twox_128(&0u32.to_keyed_vec(b"ses:val:")).to_vec() => vec![10; 32], - twox_128(&1u32.to_keyed_vec(b"ses:val:")).to_vec() => vec![20; 32], - twox_128(SESSIONS_PER_ERA).to_vec() => vec![].and(&2u64), - twox_128(VALIDATOR_COUNT).to_vec() => vec![].and(&2u32), - twox_128(BONDING_DURATION).to_vec() => vec![].and(&3u64), - twox_128(TOTAL_STAKE).to_vec() => vec![].and(&100u64), - twox_128(&one.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&10u64), - twox_128(&two.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&20u64), - twox_128(&three.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&30u64), - twox_128(&four.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&40u64) - ]; - - with_externalities(&mut t, || { - assert_eq!(era_length(), 2u64); - assert_eq!(validator_count(), 2usize); - assert_eq!(bonding_duration(), 3u64); - assert_eq!(session::validators(), vec![[10u8; 32], [20u8; 32]]); - - // Block 1: Add three validators. No obvious change. - system::testing::set_block_number(1); - stake(&one); - stake(&two); - stake(&four); - check_new_era(); - assert_eq!(session::validators(), vec![[10u8; 32], [20u8; 32]]); - - // Block 2: New validator set now. - system::testing::set_block_number(2); - check_new_era(); - assert_eq!(session::validators(), vec![four.clone(), two.clone()]); - - // Block 3: Unstake highest, introduce another staker. No change yet. - system::testing::set_block_number(3); - stake(&three); - unstake(&four); - check_new_era(); - - // Block 4: New era - validators change. - system::testing::set_block_number(4); - check_new_era(); - assert_eq!(session::validators(), vec![three.clone(), two.clone()]); - - // Block 5: Transfer stake from highest to lowest. No change yet. - system::testing::set_block_number(5); - transfer(&four, &one, 40); - check_new_era(); - - // Block 6: Lowest now validator. - system::testing::set_block_number(6); - check_new_era(); - assert_eq!(session::validators(), vec![one.clone(), three.clone()]); - - // Block 7: Unstake three. No change yet. - system::testing::set_block_number(7); - unstake(&three); - check_new_era(); - assert_eq!(session::validators(), vec![one.clone(), three.clone()]); - - // Block 8: Back to one and two. - system::testing::set_block_number(8); - check_new_era(); - assert_eq!(session::validators(), vec![one.clone(), two.clone()]); - }); - } - - #[test] - fn staking_eras_work() { - let mut t: TestExternalities = map![ - twox_128(b"ses:len").to_vec() => vec![].and(&1u64), - twox_128(SESSIONS_PER_ERA).to_vec() => vec![].and(&2u64) - ]; - with_externalities(&mut t, || { - assert_eq!(era_length(), 2u64); - assert_eq!(sessions_per_era(), 2u64); - assert_eq!(last_era_length_change(), 0u64); - assert_eq!(current_era(), 0u64); - - // Block 1: No change. - system::testing::set_block_number(1); - check_new_era(); - assert_eq!(sessions_per_era(), 2u64); - assert_eq!(last_era_length_change(), 0u64); - assert_eq!(current_era(), 0u64); - - // Block 2: Simple era change. - system::testing::set_block_number(2); - check_new_era(); - assert_eq!(sessions_per_era(), 2u64); - assert_eq!(last_era_length_change(), 0u64); - assert_eq!(current_era(), 1u64); - - // Block 3: Schedule an era length change; no visible changes. - system::testing::set_block_number(3); - set_sessions_per_era(3); - check_new_era(); - assert_eq!(sessions_per_era(), 2u64); - assert_eq!(last_era_length_change(), 0u64); - assert_eq!(current_era(), 1u64); - - // Block 4: Era change kicks in. - system::testing::set_block_number(4); - check_new_era(); - assert_eq!(sessions_per_era(), 3u64); - assert_eq!(last_era_length_change(), 4u64); - assert_eq!(current_era(), 2u64); - - // Block 5: No change. - system::testing::set_block_number(5); - check_new_era(); - assert_eq!(sessions_per_era(), 3u64); - assert_eq!(last_era_length_change(), 4u64); - assert_eq!(current_era(), 2u64); - - // Block 6: No change. - system::testing::set_block_number(6); - check_new_era(); - assert_eq!(sessions_per_era(), 3u64); - assert_eq!(last_era_length_change(), 4u64); - assert_eq!(current_era(), 2u64); - - // Block 7: Era increment. - system::testing::set_block_number(7); - check_new_era(); - assert_eq!(sessions_per_era(), 3u64); - assert_eq!(last_era_length_change(), 4u64); - assert_eq!(current_era(), 3u64); - }); - } - - #[test] - fn staking_balance_works() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&42u64) - ]; - - with_externalities(&mut t, || { - assert_eq!(balance(&one), 42); - assert_eq!(balance(&two), 0); - }); - } - - #[test] - fn staking_balance_transfer_works() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&111u64) - ]; - - with_externalities(&mut t, || { - transfer(&one, &two, 69); - assert_eq!(balance(&one), 42); - assert_eq!(balance(&two), 69); - }); - } - - #[test] - #[should_panic] - fn staking_balance_transfer_when_bonded_doesnt_work() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&111u64) - ]; - - with_externalities(&mut t, || { - stake(&one); - transfer(&one, &two, 69); - }); - } - - #[test] - #[should_panic] - fn misbehavior_report_by_non_validator_panics() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(BALANCE_OF)).to_vec() => vec![].and(&111u64) - ]; - - with_externalities(&mut t, || { - // the misbehavior report here is invalid, but that - // actually doesn't panic; instead it would slash the bad - // reporter. - report_misbehavior(&one, &MisbehaviorReport { - parent_hash: [0; 32].into(), - parent_number: 0, - target: two, - misbehavior: MisbehaviorKind::BftDoubleCommit( - 2, - ([1; 32].into(), [2; 64].into()), - ([3; 32].into(), [4; 64].into()), - ), - }) - }); - } -} diff --git a/substrate/polkadot/runtime/src/runtime/system.rs b/substrate/polkadot/runtime/src/runtime/system.rs deleted file mode 100644 index 935f801924..0000000000 --- a/substrate/polkadot/runtime/src/runtime/system.rs +++ /dev/null @@ -1,450 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! System manager: Handles all of the top-level stuff; executing block/transaction, setting code -//! and depositing logs. - -use rstd::mem; -use rstd::prelude::*; - -use codec::{KeyedVec, Slicable}; -use environment::with_env; -use polkadot_primitives::{ - AccountId, Hash, TxOrder, BlockNumber, Block, Header, - UncheckedTransaction, Function, InherentFunction, Log -}; - -use runtime_io::{print, storage_root, enumerated_trie_root}; -use runtime_support::{Hashable, storage}; -use runtime::{staking, session}; - -/// Prefixes account ID and stores u64 nonce. -pub const NONCE_OF: &[u8] = b"sys:non:"; -/// Prefixes block number and stores hash of that block. -pub const BLOCK_HASH_AT: &[u8] = b"sys:old:"; -/// Stores the temporary current transaction number. -pub const TEMP_TRANSACTION_NUMBER: &[u8] = b"temp:txcount"; - -/// The current block number being processed. Set by `execute_block`. -pub fn block_number() -> BlockNumber { - with_env(|e| e.block_number) -} - -/// Get the block hash of a given block (uses storage). -pub fn block_hash(number: BlockNumber) -> Hash { - storage::get_or_default(&number.to_keyed_vec(BLOCK_HASH_AT)) -} - -pub mod privileged { - use super::*; - - /// Set the new code. - pub fn set_code(new: &[u8]) { - storage::unhashed::put_raw(b":code", new); - } -} - -pub mod internal { - use super::*; - - /// Deposits a log and ensures it matches the blocks log data. - pub fn deposit_log(log: Log) { - with_env(|e| e.digest.logs.push(log)); - } - - /// Actually execute all transitioning for `block`. - pub fn execute_block(mut block: Block) { - // populate environment from header. - with_env(|e| { - e.block_number = block.header.number; - e.parent_hash = block.header.parent_hash; - }); - - // any initial checks - initial_checks(&block); - - // execute all transactions, inherent or otherwise. - for (tx_num, tx) in block.all_transactions().enumerate() { - super::execute_transaction(tx, tx_num as u64); - } - - // post-transactional book-keeping. - staking::internal::check_new_era(); - session::internal::check_rotate_session(); - - // any final checks - final_checks(&block); - - // any stuff that we do after taking the storage root. - post_finalise(&block.header); - } - - /// Execute a transaction outside of the block execution function. - /// This doesn't attempt to validate anything regarding the block. - /// Note that when building a block transaction by transaction, the - /// inherent methods must be called manually. - pub fn execute_transaction(utx: UncheckedTransaction, mut header: Header) -> Header { - // populate environment from header. - with_env(|e| { - e.block_number = header.number; - e.parent_hash = header.parent_hash; - mem::swap(&mut header.digest, &mut e.digest); - }); - - let tx_num: u64 = storage::get_or_default(TEMP_TRANSACTION_NUMBER); - - super::execute_transaction(utx, tx_num); - - with_env(|e| { - mem::swap(&mut header.digest, &mut e.digest); - }); - - storage::put(TEMP_TRANSACTION_NUMBER, &(tx_num + 1)); - - header - } - - /// Finalise the block - it is up the caller to ensure that all header fields are valid - /// except state-root. - pub fn finalise_block(mut header: Header) -> Header { - // populate environment from header. - with_env(|e| { - e.block_number = header.number; - e.parent_hash = header.parent_hash; - mem::swap(&mut header.digest, &mut e.digest); - }); - - let tx_count: u64 = storage::take_or_default(TEMP_TRANSACTION_NUMBER); - if tx_count < Function::inherent_functions() { - panic!("Not enough transactions provided to fulfill all inherent functions."); - } - - staking::internal::check_new_era(); - session::internal::check_rotate_session(); - - header.state_root = storage_root().into(); - with_env(|e| { - mem::swap(&mut header.digest, &mut e.digest); - }); - - post_finalise(&header); - - header - } -} - -/// Get an account's current nonce. -pub fn nonce(account: AccountId) -> TxOrder { - let nonce_key = account.to_keyed_vec(NONCE_OF); - storage::get_or(&nonce_key, 0) -} - -/// Dispatch a function. -fn dispatch_function(function: &Function, transactor: &AccountId) { - match *function { - Function::Inherent(InherentFunction::TimestampSet(t)) => { - ::runtime::timestamp::public::set(t); - } - Function::StakingStake => { - ::runtime::staking::public::stake(transactor); - } - Function::StakingUnstake => { - ::runtime::staking::public::unstake(transactor); - } - Function::StakingTransfer(dest, value) => { - ::runtime::staking::public::transfer(transactor, &dest, value); - } - Function::ReportMisbehavior(ref report) => { - ::runtime::staking::public::report_misbehavior(transactor, report) - } - Function::SessionSetKey(session) => { - ::runtime::session::public::set_key(transactor, &session); - } - Function::GovernancePropose(ref proposal) => { - ::runtime::governance::public::propose(transactor, proposal); - } - Function::GovernanceApprove(era_index) => { - ::runtime::governance::public::approve(transactor, era_index); - } - } -} - -fn execute_transaction(utx: UncheckedTransaction, tx_num: u64) { - use ::transaction; - - // Verify the transaction is authenticated at its position. - let tx = match transaction::check(utx, tx_num) { - Ok(tx) => tx, - Err(_) => panic!("Transaction at index {} not properly authenticated", tx_num), - }; - - // check nonce - let nonce_key = tx.signed.to_keyed_vec(NONCE_OF); - let (expected_nonce, increment_nonce) = if !tx.function.is_inherent() { - (storage::get_or(&nonce_key, 0), true) - } else { - (0, false) - }; - - assert!(tx.nonce == expected_nonce, "All transactions should have the correct nonce"); - - // increment nonce in storage, unless it's the EVERYBODY account. - if increment_nonce { - storage::put(&nonce_key, &(expected_nonce + 1)); - } - - // decode parameters and dispatch - dispatch_function(&tx.function, &tx.signed); -} - -fn initial_checks(block: &Block) { - let ref header = block.header; - - // check parent_hash is correct. - assert!( - header.number > 0 && block_hash(header.number - 1) == header.parent_hash, - "Parent hash should be valid." - ); - - // check transaction trie root represents the transactions. - let txs = block.all_transactions().map(|tx| Slicable::encode(&tx)).collect::>(); - let txs = txs.iter().map(Vec::as_slice).collect::>(); - let txs_root = enumerated_trie_root(&txs).into(); - info_expect_equal_hash(&header.transaction_root, &txs_root); - assert!(header.transaction_root == txs_root, "Transaction trie root must be valid."); -} - -fn final_checks(block: &Block) { - let ref header = block.header; - - // check digest - with_env(|e| { - assert!(header.digest == e.digest); - }); - - // check storage root. - let storage_root = storage_root().into(); - info_expect_equal_hash(&header.state_root, &storage_root); - assert!(header.state_root == storage_root, "Storage root must match that calculated."); -} - -fn post_finalise(header: &Header) { - // store the header hash in storage; we can't do it before otherwise there would be a - // cyclic dependency. - storage::put(&header.number.to_keyed_vec(BLOCK_HASH_AT), &header.blake2_256()); -} - -#[cfg(feature = "std")] -fn info_expect_equal_hash(given: &Hash, expected: &Hash) { - use primitives::hexdisplay::HexDisplay; - if given != expected { - println!("Hash: given={}, expected={}", HexDisplay::from(&given.0), HexDisplay::from(&expected.0)); - } -} - -#[cfg(not(feature = "std"))] -fn info_expect_equal_hash(given: &Hash, expected: &Hash) { - if given != expected { - print("Hash not equal"); - print(&given.0[..]); - print(&expected.0[..]); - } -} - -#[cfg(any(feature = "std", test))] -pub mod testing { - use super::*; - - pub fn set_block_number(n: BlockNumber) { - with_env(|e| e.block_number = n); - } -} - -#[cfg(test)] -mod tests { - use super::*; - use super::internal::*; - - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use codec::{Joiner, KeyedVec, Slicable}; - use keyring::Keyring; - use environment::with_env; - use primitives::hexdisplay::HexDisplay; - use polkadot_primitives::{Header, Body, Digest, UncheckedTransaction, Transaction, Function, InherentFunction}; - use runtime::staking; - - fn set_timestamp() -> UncheckedTransaction { - UncheckedTransaction::inherent(InherentFunction::TimestampSet(100_000)) - } - - #[test] - #[should_panic] - fn fails_if_first_not_timestamp_set() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let tx = UncheckedTransaction { - transaction: Transaction { - signed: one.clone(), - nonce: 0, - function: Function::StakingTransfer(two, 69), - }, - signature: hex!("5f9832c5a4a39e2dd4a3a0c5b400e9836beb362cb8f7d845a8291a2ae6fe366612e080e4acd0b5a75c3d0b6ee69614a68fb63698c1e76bf1f2dcd8fa617ddf05").into(), - }; - - with_externalities(&mut t, || { - internal::execute_transaction(tx, Header::from_block_number(1)); - }); - } - - #[test] - fn staking_balance_transfer_dispatch_works() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t: TestExternalities = map![ - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ]; - - let tx = UncheckedTransaction { - transaction: Transaction { - signed: one.clone(), - nonce: 0, - function: Function::StakingTransfer(two, 69), - }, - signature: hex!("5f9832c5a4a39e2dd4a3a0c5b400e9836beb362cb8f7d845a8291a2ae6fe366612e080e4acd0b5a75c3d0b6ee69614a68fb63698c1e76bf1f2dcd8fa617ddf05").into(), - }; - - with_externalities(&mut t, || { - let header = Header::from_block_number(1); - let header = internal::execute_transaction(set_timestamp(), header); - internal::execute_transaction(tx, header); - assert_eq!(staking::balance(&one), 42); - assert_eq!(staking::balance(&two), 69); - }); - } - - fn new_test_ext() -> TestExternalities { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - let three = [3u8; 32]; - - map![ - twox_128(&0u64.to_keyed_vec(b"sys:old:")).to_vec() => [69u8; 32].encode(), - twox_128(b"gov:apr").to_vec() => vec![].and(&667u32), - twox_128(b"ses:len").to_vec() => vec![].and(&2u64), - twox_128(b"ses:val:len").to_vec() => vec![].and(&3u32), - twox_128(&0u32.to_keyed_vec(b"ses:val:")).to_vec() => one.to_vec(), - twox_128(&1u32.to_keyed_vec(b"ses:val:")).to_vec() => two.to_vec(), - twox_128(&2u32.to_keyed_vec(b"ses:val:")).to_vec() => three.to_vec(), - twox_128(b"sta:wil:len").to_vec() => vec![].and(&3u32), - twox_128(&0u32.to_keyed_vec(b"sta:wil:")).to_vec() => one.to_vec(), - twox_128(&1u32.to_keyed_vec(b"sta:wil:")).to_vec() => two.to_vec(), - twox_128(&2u32.to_keyed_vec(b"sta:wil:")).to_vec() => three.to_vec(), - twox_128(b"sta:spe").to_vec() => vec![].and(&2u64), - twox_128(b"sta:vac").to_vec() => vec![].and(&3u64), - twox_128(b"sta:era").to_vec() => vec![].and(&0u64), - twox_128(&one.to_keyed_vec(b"sta:bal:")).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0] - ] - } - - #[test] - fn block_import_works() { - let mut t = new_test_ext(); - - let h = Header { - parent_hash: [69u8; 32].into(), - number: 1, - state_root: hex!("aa4fbcdc09b21e4366aebccd9b9ec0831a8a2765c712d3397f121ff8e60e21e2").into(), - transaction_root: hex!("328ae80be3adf358d2a2e188cbe1bfd3f8cd5b15a2e7666e2b4eccf7450efc32").into(), - digest: Digest { logs: vec![], }, - }; - - let b = Block { - header: h, - body: Body { - timestamp: 100_000, - transactions: vec![] - } - }; - - with_externalities(&mut t, || { - execute_block(b); - }); - } - - #[test] - #[should_panic] - fn block_import_of_bad_state_root_fails() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t = new_test_ext(); - - let h = Header { - parent_hash: [69u8; 32].into(), - number: 1, - state_root: [0u8; 32].into(), - transaction_root: hex!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421").into(), - digest: Digest { logs: vec![], }, - }; - - let b = Block { - header: h, - body: Body { - timestamp: 100_000, - transactions: vec![], - } - }; - - with_externalities(&mut t, || { - execute_block(b); - }); - } - - #[test] - #[should_panic] - fn block_import_of_bad_transaction_root_fails() { - let one = Keyring::One.to_raw_public(); - let two = Keyring::Two.to_raw_public(); - - let mut t = new_test_ext(); - - let h = Header { - parent_hash: [69u8; 32].into(), - number: 1, - state_root: hex!("1ab2dbb7d4868a670b181327b0b6a58dc64b10cfb9876f737a5aa014b8da31e0").into(), - transaction_root: [0u8; 32].into(), - digest: Digest { logs: vec![], }, - }; - - let b = Block { - header: h, - body: Body { - timestamp: 100_000, - transactions: vec![], - } - }; - - with_externalities(&mut t, || { - execute_block(b); - }); - } -} diff --git a/substrate/polkadot/runtime/src/runtime/timestamp.rs b/substrate/polkadot/runtime/src/runtime/timestamp.rs deleted file mode 100644 index 8252f37225..0000000000 --- a/substrate/polkadot/runtime/src/runtime/timestamp.rs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2017 Parity Technologies (UK) Ltd. -// This file is part of Polkadot. - -// Polkadot is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Polkadot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Polkadot. If not, see . - -//! Timestamp manager: just handles the current timestamp. - -use runtime_support::storage; -use polkadot_primitives::Timestamp; - -const CURRENT_TIMESTAMP: &[u8] = b"tim:val"; - -/// Get the current time. -pub fn get() -> Timestamp { - storage::get_or_default(CURRENT_TIMESTAMP) -} - -pub mod public { - use super::*; - - /// Set the current time. - pub fn set(now: Timestamp) { - if super::get() > now { - panic!("last timestamp less than now"); - } - - storage::put(CURRENT_TIMESTAMP, &now); - } -} - -#[cfg(test)] -mod tests { - use super::*; - use super::public::*; - - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use runtime::timestamp; - use codec::{Joiner, KeyedVec}; - - #[test] - fn timestamp_works() { - let mut t: TestExternalities = map![ - twox_128(CURRENT_TIMESTAMP).to_vec() => vec![].and(&42u64) - ]; - - with_externalities(&mut t, || { - assert_eq!(get(), 42); - set(69); - assert_eq!(get(), 69); - }); - } -} diff --git a/substrate/polkadot/runtime/wasm/Cargo.lock b/substrate/polkadot/runtime/wasm/Cargo.lock index 7c2e7ef05b..efb0819310 100644 --- a/substrate/polkadot/runtime/wasm/Cargo.lock +++ b/substrate/polkadot/runtime/wasm/Cargo.lock @@ -220,6 +220,16 @@ dependencies = [ "proc-macro-hack 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "integer-sqrt" +version = "0.1.0" +source = "git+https://github.com/paritytech/integer-sqrt-rs.git#f4cf61482096dc98c1273f46a10849d182b4c23c" + +[[package]] +name = "integer-sqrt" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "isatty" version = "0.1.6" @@ -308,6 +318,11 @@ name = "nodrop" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "num-traits" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "num_cpus" version = "1.8.0" @@ -383,6 +398,7 @@ dependencies = [ "serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-codec 0.1.0", "substrate-primitives 0.1.0", + "substrate-runtime-primitives 0.1.0", "substrate-runtime-std 0.1.0", ] @@ -390,13 +406,23 @@ dependencies = [ name = "polkadot-runtime" version = "0.1.0" dependencies = [ + "integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)", "polkadot-primitives 0.1.0", + "safe-mix 0.1.0", "substrate-codec 0.1.0", - "substrate-misbehavior-check 0.1.0", "substrate-primitives 0.1.0", + "substrate-runtime-consensus 0.1.0", + "substrate-runtime-council 0.1.0", + "substrate-runtime-democracy 0.1.0", + "substrate-runtime-executive 0.1.0", "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-session 0.1.0", + "substrate-runtime-staking 0.1.0", "substrate-runtime-std 0.1.0", "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", + "substrate-runtime-timestamp 0.1.0", ] [[package]] @@ -541,6 +567,13 @@ dependencies = [ "semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "safe-mix" +version = "0.1.0" +dependencies = [ + "rustc_version 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "scopeguard" version = "0.3.3" @@ -601,12 +634,12 @@ dependencies = [ ] [[package]] -name = "substrate-misbehavior-check" +name = "substrate-keyring" version = "0.1.0" dependencies = [ - "substrate-codec 0.1.0", - "substrate-primitives 0.1.0", - "substrate-runtime-io 0.1.0", + "ed25519 0.1.0", + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -626,6 +659,76 @@ dependencies = [ "uint 0.1.2 (git+https://github.com/rphmeier/primitives.git?branch=compile-for-wasm)", ] +[[package]] +name = "substrate-runtime-consensus" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + +[[package]] +name = "substrate-runtime-council" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "integer-sqrt 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 0.1.0", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-keyring 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-consensus 0.1.0", + "substrate-runtime-democracy 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-session 0.1.0", + "substrate-runtime-staking 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + +[[package]] +name = "substrate-runtime-democracy" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 0.1.0", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-consensus 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-session 0.1.0", + "substrate-runtime-staking 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + +[[package]] +name = "substrate-runtime-executive" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + [[package]] name = "substrate-runtime-io" version = "0.1.0" @@ -640,6 +743,58 @@ dependencies = [ "triehash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "substrate-runtime-primitives" +version = "0.1.0" +dependencies = [ + "integer-sqrt 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", +] + +[[package]] +name = "substrate-runtime-session" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 0.1.0", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-keyring 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-consensus 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + +[[package]] +name = "substrate-runtime-staking" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 0.1.0", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-keyring 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-consensus 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-session 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + [[package]] name = "substrate-runtime-std" version = "0.1.0" @@ -663,6 +818,36 @@ dependencies = [ "substrate-runtime-std 0.1.0", ] +[[package]] +name = "substrate-runtime-system" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 0.1.0", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", +] + +[[package]] +name = "substrate-runtime-timestamp" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-codec 0.1.0", + "substrate-primitives 0.1.0", + "substrate-runtime-io 0.1.0", + "substrate-runtime-primitives 0.1.0", + "substrate-runtime-std 0.1.0", + "substrate-runtime-support 0.1.0", + "substrate-runtime-system 0.1.0", +] + [[package]] name = "substrate-state-machine" version = "0.1.0" @@ -841,6 +1026,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" "checksum hex-literal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd546ef520ab3745f1aae5f2cdc6de9e6498e94d1ab138b9eb3ddfbf335847fb" "checksum hex-literal-impl 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2ea76da4c7f1a54d01d54985566d3fdd960b2bbd7b970da024821c883c2d9631" +"checksum integer-sqrt 0.1.0 (git+https://github.com/paritytech/integer-sqrt-rs.git)" = "" +"checksum integer-sqrt 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7536fe7f78abedb82f609d87f46f0e0ca0ad31e84597deb8dabd8ed9ad047257" "checksum isatty 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f2a233726c7bb76995cec749d59582e5664823b7245d4970354408f1d79a7a2" "checksum keccak-hash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f300c1f149cd9ca5214eed24f6e713a597517420fb8b15499824aa916259ec1" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" @@ -852,6 +1039,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" "checksum memorydb 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "013b7e4c5e10c764936ebc6bd3662d8e3c92292d267bf6a42ef3f5cad9c793ee" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" +"checksum num-traits 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dee092fcdf725aee04dd7da1d21debff559237d49ef1cb3e69bcb8ece44c7364" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum odds 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)" = "4eae0151b9dacf24fcc170d9995e511669a082856a91f958a2fe380bfab3fb22" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" diff --git a/substrate/polkadot/runtime/wasm/Cargo.toml b/substrate/polkadot/runtime/wasm/Cargo.toml index dac9694b8b..a75bd649ad 100644 --- a/substrate/polkadot/runtime/wasm/Cargo.toml +++ b/substrate/polkadot/runtime/wasm/Cargo.toml @@ -7,23 +7,42 @@ authors = ["Parity Technologies "] crate-type = ["cdylib"] [dependencies] +integer-sqrt = { git = "https://github.com/paritytech/integer-sqrt-rs.git", branch = "master" } +safe-mix = { path = "../../../safe-mix", default-features = false } substrate-codec = { path = "../../../substrate/codec", default-features = false } +substrate-primitives = { path = "../../../substrate/primitives", default-features = false } substrate-runtime-std = { path = "../../../substrate/runtime-std", default-features = false } substrate-runtime-io = { path = "../../../substrate/runtime-io", default-features = false } substrate-runtime-support = { path = "../../../substrate/runtime-support", default-features = false } -substrate-primitives = { path = "../../../substrate/primitives", default-features = false } -substrate-misbehavior-check = { path = "../../../substrate/misbehavior-check", default-features = false } +substrate-runtime-consensus = { path = "../../../substrate/runtime/consensus", default-features = false } +substrate-runtime-council = { path = "../../../substrate/runtime/council", default-features = false } +substrate-runtime-democracy = { path = "../../../substrate/runtime/democracy", default-features = false } +substrate-runtime-executive = { path = "../../../substrate/runtime/executive", default-features = false } +substrate-runtime-primitives = { path = "../../../substrate/runtime/primitives", default-features = false } +substrate-runtime-session = { path = "../../../substrate/runtime/session", default-features = false } +substrate-runtime-staking = { path = "../../../substrate/runtime/staking", default-features = false } +substrate-runtime-system = { path = "../../../substrate/runtime/system", default-features = false } +substrate-runtime-timestamp = { path = "../../../substrate/runtime/timestamp", default-features = false } polkadot-primitives = { path = "../../primitives", default-features = false } [features] default = [] std = [ + "safe-mix/std", "substrate-codec/std", - "substrate-runtime-io/std", - "substrate-runtime-std/std", - "substrate-runtime-support/std", "substrate-primitives/std", - "substrate-misbehavior-check/std", + "substrate-runtime-std/std", + "substrate-runtime-io/std", + "substrate-runtime-support/std", + "substrate-runtime-consensus/std", + "substrate-runtime-council/std", + "substrate-runtime-democracy/std", + "substrate-runtime-executive/std", + "substrate-runtime-primitives/std", + "substrate-runtime-session/std", + "substrate-runtime-staking/std", + "substrate-runtime-system/std", + "substrate-runtime-timestamp/std", "polkadot-primitives/std", ] diff --git a/substrate/polkadot/runtime/wasm/genesis.wasm b/substrate/polkadot/runtime/wasm/genesis.wasm index bc0cb89235c570beee9e2749b796933e05e9f774..14e9b61cdb68d9492e000caea44b782b5387d502 100644 GIT binary patch literal 134951 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 v{#l#0Scr@9Eji#Q8H;;^2)nTNJWBW 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 diff --git a/substrate/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm b/substrate/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm index 14e9b61cdb68d9492e000caea44b782b5387d502..42c255a920e10b5f0ef415398aeb66944861827e 100644 GIT binary patch literal 190956 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
T5rZX@nL?taGDoD6Pr5?iQ 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

SlE>g6sJk&^45^v$L-+Q8hZT@7<#G7 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

AyG_vqBaUke7d9)7BI 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 V$D^SnZf)Ll@VC"] futures = "0.1.17" parking_lot = "0.4" tokio-timer = "0.1.2" -ed25519 = { path = "../../substrate/ed25519" } +hex-literal = "0.1" error-chain = "0.11" log = "0.4" tokio-core = "0.1.12" +ed25519 = { path = "../../substrate/ed25519" } polkadot-primitives = { path = "../primitives" } polkadot-runtime = { path = "../runtime" } polkadot-consensus = { path = "../consensus" } @@ -18,9 +19,9 @@ polkadot-executor = { path = "../executor" } polkadot-api = { path = "../api" } polkadot-transaction-pool = { path = "../transaction-pool" } polkadot-keystore = { path = "../keystore" } +substrate-runtime-io = { path = "../../substrate/runtime-io" } substrate-primitives = { path = "../../substrate/primitives" } substrate-network = { path = "../../substrate/network" } substrate-client = { path = "../../substrate/client" } -substrate-keyring = { path = "../../substrate/keyring" } substrate-codec = { path = "../../substrate/codec" } substrate-executor = { path = "../../substrate/executor" } diff --git a/substrate/polkadot/service/src/lib.rs b/substrate/polkadot/service/src/lib.rs index ea33bad5ec..27e73d92c0 100644 --- a/substrate/polkadot/service/src/lib.rs +++ b/substrate/polkadot/service/src/lib.rs @@ -28,15 +28,17 @@ extern crate polkadot_api; extern crate polkadot_consensus as consensus; extern crate polkadot_transaction_pool as transaction_pool; extern crate polkadot_keystore as keystore; +extern crate substrate_runtime_io as runtime_io; extern crate substrate_primitives as primitives; extern crate substrate_network as network; extern crate substrate_codec as codec; extern crate substrate_executor; extern crate tokio_core; -extern crate substrate_keyring; extern crate substrate_client as client; +#[macro_use] +extern crate hex_literal; #[macro_use] extern crate error_chain; #[macro_use] @@ -51,14 +53,15 @@ use futures::prelude::*; use parking_lot::Mutex; use tokio_core::reactor::Core; use codec::Slicable; +use runtime_io::with_externalities; use primitives::block::{Id as BlockId, TransactionHash}; use transaction_pool::TransactionPool; -use substrate_keyring::Keyring; use substrate_executor::NativeExecutor; use polkadot_executor::Executor as LocalDispatch; use keystore::Store as Keystore; use polkadot_api::PolkadotApi; -use polkadot_runtime::genesismap::{additional_storage_with_genesis, GenesisConfig}; +use polkadot_runtime::{GenesisConfig, ConsensusConfig, CouncilConfig, DemocracyConfig, + SessionConfig, StakingConfig, BuildExternalities}; use client::{genesis, BlockchainEvents}; use client::in_mem::Backend as InMemory; use network::ManageNetwork; @@ -137,26 +140,60 @@ impl Service { info!("Generated a new keypair: {:?}", key.public()); } + let god_keys = vec![ + hex!["f09c0d1467d6952c92c343672bfb06a24560f400af8cf98b93df7d40b4efe1b6"], + hex!["84718cd2894bcda83beeca3a7842caf269fe93cacde0bdee0e3cbce6de253f0e"] + ]; + let genesis_config = GenesisConfig { - validators: vec![Keyring::Alice.into(), Keyring::Bob.into(), Keyring::Charlie.into()], - authorities: vec![Keyring::Alice.into(), Keyring::Bob.into(), Keyring::Charlie.into()], - balances: vec![ - (Keyring::One.into(), 1u64 << 63), - (Keyring::Two.into(), 1u64 << 63), - (Keyring::Alice.into(), 1u64 << 63), - (Keyring::Bob.into(), 1u64 << 63), - (Keyring::Charlie.into(), 1u64 << 63), - ].into_iter().collect(), - block_time: 5, // 5 second block time. - session_length: 720, // that's 1 hour per session. - sessions_per_era: 24, // 24 hours per era. - bonding_duration: 90, // 90 days per bond. - approval_ratio: 667, // 66.7% approvals required for legislation. + consensus: Some(ConsensusConfig { + code: include_bytes!("../../runtime/wasm/genesis.wasm").to_vec(), + authorities: god_keys.clone(), + }), + system: None, + // block_time: 5, // 5 second block time. + session: Some(SessionConfig { + validators: god_keys.clone(), + session_length: 720, // that's 1 hour per session. + }), + staking: Some(StakingConfig { + current_era: 0, + intentions: vec![], + transaction_fee: 100, + balances: god_keys.iter().map(|&k|(k, 1u64 << 60)).collect(), + validator_count: 12, + sessions_per_era: 24, // 24 hours per era. + bonding_duration: 90, // 90 days per bond. + }), + democracy: Some(DemocracyConfig { + launch_period: 120 * 24 * 14, // 2 weeks per public referendum + voting_period: 120 * 24 * 28, // 4 weeks to discuss & vote on an active referendum + minimum_deposit: 1000, // 1000 as the minimum deposit for a referendum + }), + council: Some(CouncilConfig { + active_council: vec![], + candidacy_bond: 1000, // 1000 to become a council candidate + voter_bond: 100, // 100 down to vote for a candidate + present_slash_per_voter: 1, // slash by 1 per voter for an invalid presentation. + carry_count: 24, // carry over the 24 runners-up to the next council election + presentation_duration: 120 * 24, // one day for presenting winners. + approval_voting_period: 7 * 120 * 24, // one week period between possible council elections. + term_duration: 180 * 120 * 24, // 180 day term duration for the council. + desired_seats: 0, // start with no council: we'll raise this once the stake has been dispersed a bit. + inactive_grace_period: 1, // one addition vote should go by before an inactive voter can be reaped. + + cooloff_period: 90 * 120 * 24, // 90 day cooling off period if council member vetoes a proposal. + voting_period: 7 * 120 * 24, // 7 day voting period for council members. + }), + parachains: Some(Default::default()), }; let prepare_genesis = || { - storage = genesis_config.genesis_map(); + storage = genesis_config.build_externalities(); let block = genesis::construct_genesis_block(&storage); - storage.extend(additional_storage_with_genesis(&block)); + with_externalities(&mut storage, || + // TODO: use api.rs to dispatch instead + polkadot_runtime::System::initialise_genesis_state(&block.header) + ); (primitives::block::Header::decode(&mut block.header.encode().as_ref()).expect("to_vec() always gives a valid serialisation; qed"), storage.into_iter().collect()) }; @@ -236,4 +273,3 @@ impl Drop for Service { } } } - diff --git a/substrate/polkadot/transaction-pool/Cargo.toml b/substrate/polkadot/transaction-pool/Cargo.toml index 51271feece..6efc3cc3fe 100644 --- a/substrate/polkadot/transaction-pool/Cargo.toml +++ b/substrate/polkadot/transaction-pool/Cargo.toml @@ -8,7 +8,9 @@ transaction-pool = "1.9.0" error-chain = "0.11" polkadot-api = { path = "../api" } polkadot-primitives = { path = "../primitives" } +polkadot-runtime = { path = "../runtime" } substrate-primitives = { path = "../../substrate/primitives" } +substrate-runtime-primitives = { path = "../../substrate/runtime/primitives" } substrate-codec = { path = "../../substrate/codec" } ed25519 = { path = "../../substrate/ed25519" } ethereum-types = "0.2" diff --git a/substrate/polkadot/transaction-pool/src/lib.rs b/substrate/polkadot/transaction-pool/src/lib.rs index 3864852f8c..40b793ceb7 100644 --- a/substrate/polkadot/transaction-pool/src/lib.rs +++ b/substrate/polkadot/transaction-pool/src/lib.rs @@ -14,13 +14,15 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -extern crate transaction_pool; -extern crate polkadot_api; -extern crate polkadot_primitives as primitives; -extern crate substrate_primitives as substrate_primitives; -extern crate substrate_codec as codec; extern crate ed25519; extern crate ethereum_types; +extern crate substrate_codec as codec; +extern crate substrate_primitives as substrate_primitives; +extern crate substrate_runtime_primitives as substrate_runtime_primitives; +extern crate polkadot_runtime as runtime; +extern crate polkadot_primitives as primitives; +extern crate polkadot_api; +extern crate transaction_pool; #[macro_use] extern crate error_chain; @@ -30,8 +32,9 @@ use std::cmp::Ordering; use std::sync::Arc; use polkadot_api::PolkadotApi; -use primitives::AccountId; -use primitives::transaction::UncheckedTransaction; +use primitives::{AccountId, Timestamp}; +use runtime::{Block, UncheckedExtrinsic, TimestampCall, Call}; +use substrate_runtime_primitives::traits::Checkable; use transaction_pool::{Pool, Readiness}; use transaction_pool::scoring::{Change, Choice}; @@ -44,6 +47,68 @@ pub fn truncate_id(id: &AccountId) -> TruncatedAccountId { TruncatedAccountId::from_slice(&id[..20]) } +/// Useful functions for working with Polkadot blocks. +pub struct PolkadotBlock { + block: Block, + location: Option<(&'static str, usize)>, +} + +impl PolkadotBlock { + /// Create a new block, checking high-level well-formedness. + pub fn from(unchecked: Block) -> ::std::result::Result { + if unchecked.extrinsics.len() < 1 { + return Err(unchecked); + } + if unchecked.extrinsics[0].is_signed() { + return Err(unchecked); + } + match unchecked.extrinsics[0].extrinsic.function { + Call::Timestamp(TimestampCall::set(_)) => return Err(unchecked), + _ => {} + } + + // any further checks... + Ok(PolkadotBlock { block: unchecked, location: None }) + } + + /// Create a new block, skipping any high-level well-formedness checks. WARNING: This could + /// result in internal functions panicking if the block is, in fact, not well-formed. + pub fn force_from(known_good: Block, file: &'static str, line: usize) -> Self { + PolkadotBlock { block: known_good, location: Some((file, line)) } + } + + /// Retrieve the timestamp of a Polkadot block. + pub fn timestamp(&self) -> Timestamp { + if let Call::Timestamp(TimestampCall::set(t)) = self.block.extrinsics[0].extrinsic.function { + t + } else { + if let Some((file, line)) = self.location { + panic!("Invalid block used in `PolkadotBlock::force_from` at {}:{}", file, line); + } else { + panic!("Invalid block made it through the PolkadotBlock verification!?"); + } + } + } +} + +#[macro_export] +macro_rules! assert_polkadot_block { + ($known_good:expr) => ( PolkadotBlock::force_from(known_good, file!(), line!()) ) +} + +impl ::std::ops::Deref for PolkadotBlock { + type Target = Block; + fn deref(&self) -> &Block { + &self.block + } +} + +impl From for Block { + fn from(pd: PolkadotBlock) -> Self { + pd.block + } +} + /// Iterator over pending transactions. pub type PendingIterator<'a, C> = transaction_pool::PendingIterator<'a, VerifiedTransaction, Ready<'a, C>, Scoring, NoopListener>; @@ -51,12 +116,12 @@ pub type PendingIterator<'a, C> = error_chain! { errors { /// Attempted to queue an inherent transaction. - IsInherent(tx: UncheckedTransaction) { + IsInherent(xt: UncheckedExtrinsic) { description("Inherent transactions cannot be queued."), display("Inehrent transactions cannot be queued."), } /// Attempted to queue a transaction with bad signature. - BadSignature(tx: UncheckedTransaction) { + BadSignature(xt: UncheckedExtrinsic) { description("Transaction had bad signature."), display("Transaction had bad signature."), } @@ -76,7 +141,7 @@ error_chain! { /// A verified transaction which should be includable and non-inherent. #[derive(Debug, Clone)] pub struct VerifiedTransaction { - inner: UncheckedTransaction, + inner: ::Checked, hash: TransactionHash, address: TruncatedAccountId, insertion_id: u64, @@ -85,35 +150,36 @@ pub struct VerifiedTransaction { impl VerifiedTransaction { /// Attempt to verify a transaction. - fn create(tx: UncheckedTransaction, insertion_id: u64) -> Result { - if tx.is_inherent() { - bail!(ErrorKind::IsInherent(tx)) + fn create(xt: UncheckedExtrinsic, insertion_id: u64) -> Result { + if !xt.is_signed() { + bail!(ErrorKind::IsInherent(xt)) } - let message = codec::Slicable::encode(&tx); - if ed25519::verify(&*tx.signature, &message, &tx.transaction.signed[..]) { - // TODO: make transaction-pool use generic types. - let hash = substrate_primitives::hashing::blake2_256(&message); - let address = truncate_id(&tx.transaction.signed); - Ok(VerifiedTransaction { - inner: tx, - hash: hash.into(), - encoded_size: message.len(), - address, - insertion_id, - }) - } else { - Err(ErrorKind::BadSignature(tx).into()) + let message = codec::Slicable::encode(&xt); + match xt.check() { + Ok(xt) => { + // TODO: make transaction-pool use generic types. + let hash = substrate_primitives::hashing::blake2_256(&message); + let address = truncate_id(&xt.signed); + Ok(VerifiedTransaction { + inner: xt, + hash: hash.into(), + encoded_size: message.len(), + address, + insertion_id, + }) + } + Err(xt) => Err(ErrorKind::BadSignature(xt).into()), } } /// Access the underlying transaction. - pub fn as_transaction(&self) -> &UncheckedTransaction { - self.as_ref() + pub fn as_transaction(&self) -> &UncheckedExtrinsic { + self.as_ref().as_unchecked() } /// Consume the verified transaciton, yielding the unchecked counterpart. - pub fn into_inner(self) -> UncheckedTransaction { + pub fn into_inner(self) -> ::Checked { self.inner } @@ -133,8 +199,8 @@ impl VerifiedTransaction { } } -impl AsRef for VerifiedTransaction { - fn as_ref(&self) -> &UncheckedTransaction { +impl AsRef< ::Checked > for VerifiedTransaction { + fn as_ref(&self) -> &::Checked { &self.inner } } @@ -164,7 +230,7 @@ impl transaction_pool::Scoring for Scoring { type Score = u64; fn compare(&self, old: &VerifiedTransaction, other: &VerifiedTransaction) -> Ordering { - old.inner.transaction.nonce.cmp(&other.inner.transaction.nonce) + old.inner.index.cmp(&other.inner.index) } fn choose(&self, _old: &VerifiedTransaction, _new: &VerifiedTransaction) -> Choice { @@ -173,11 +239,11 @@ impl transaction_pool::Scoring for Scoring { fn update_scores( &self, - txs: &[Arc], + xts: &[Arc], scores: &mut [Self::Score], _change: Change ) { - for i in 0..txs.len() { + for i in 0..xts.len() { // all the same score since there are no fees. // TODO: prioritize things like misbehavior or fishermen reports scores[i] = 1; @@ -192,7 +258,7 @@ impl transaction_pool::Scoring for Scoring { pub struct Ready<'a, T: 'a + PolkadotApi> { at_block: T::CheckedBlockId, api_handle: &'a T, - known_nonces: HashMap, + known_indices: HashMap, } impl<'a, T: 'a + PolkadotApi> Clone for Ready<'a, T> { @@ -200,7 +266,7 @@ impl<'a, T: 'a + PolkadotApi> Clone for Ready<'a, T> { Ready { at_block: self.at_block.clone(), api_handle: self.api_handle, - known_nonces: self.known_nonces.clone(), + known_indices: self.known_indices.clone(), } } } @@ -212,24 +278,24 @@ impl<'a, T: 'a + PolkadotApi> Ready<'a, T> { Ready { at_block: at, api_handle: client, - known_nonces: HashMap::new(), + known_indices: HashMap::new(), } } } impl<'a, T: 'a + PolkadotApi> transaction_pool::Ready for Ready<'a, T> { - fn is_ready(&mut self, tx: &VerifiedTransaction) -> Readiness { - let sender = tx.inner.transaction.signed; + fn is_ready(&mut self, xt: &VerifiedTransaction) -> Readiness { + let sender = xt.inner.signed; - // TODO: find a way to handle nonce error properly -- will need changes to + // TODO: find a way to handle index error properly -- will need changes to // transaction-pool trait. let (api_handle, at_block) = (&self.api_handle, &self.at_block); - let next_nonce = self.known_nonces.entry(sender) - .or_insert_with(|| api_handle.nonce(at_block, sender).ok().unwrap_or_else(u64::max_value)); + let next_index = self.known_indices.entry(sender) + .or_insert_with(|| api_handle.index(at_block, sender).ok().unwrap_or_else(u64::max_value)); - *next_nonce += 1; + *next_index += 1; - match tx.inner.transaction.nonce.cmp(&next_nonce) { + match xt.inner.index.cmp(&next_index) { Ordering::Greater => Readiness::Future, Ordering::Equal => Readiness::Ready, Ordering::Less => Readiness::Stalled, @@ -255,11 +321,11 @@ impl TransactionPool { } /// Verify and import a transaction into the pool. - pub fn import(&mut self, tx: UncheckedTransaction) -> Result> { + pub fn import(&mut self, xt: UncheckedExtrinsic) -> Result> { let insertion_index = self.insertion_index; self.insertion_index += 1; - let verified = VerifiedTransaction::create(tx, insertion_index)?; + let verified = VerifiedTransaction::create(xt, insertion_index)?; // TODO: just use a foreign link when the error type is made public. let hash = verified.hash.clone(); diff --git a/substrate/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm b/substrate/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.compact.wasm index cbc81694c0999d1af58aaad064d227df8200e417..1d065a3690093b9c40e71c730dc4f17bcf9eb059 100644 GIT binary patch literal 4422 zcmc&%&2JmW6`z^?BzMPmBD6E_&6_vx zYu=m3;{85njPWgRM;spV=k#Se<{|#rj)5;f+~M@0Im49guzVfJBGF}kSbNUIOW_+y z`uJS(blez@I_bD^Fm7)$PRKbz?kD&k4@U9BgbBhf6ZRpnaj!RM#^agDAm9(ns>o;yT9w(zt z`x$d-`;uNr5BkYS3p5^elE!E-7-u2}w47-N8djt&nV3nxIef+pV{w65He(Jf3)?cI zVA{56@ge8jGB^{q3!AD}zcfAPD<0VWq(2xv6U-kc`{PC{9>hJ@%IourSs8*q?7a4jp@h~Xe0VO%o)(_maH74LBe*>1p7ib5__ewYUG>4t~93rS#JVJv1&*hAZ{xOALxjJ zX*Ps}VzMT#XomF3R4Yd|sU{-_xL1sV&XIPe8=~!htQXGy|LFC}G#$vZ+!b~amQ#0; zL&Dr4VK*de!R%9qklDk`?BOx9hcJ6s6X!t>pW&04eJQ*4VMLylWOYklc0?4c{*5t- zrWgDy@!aFl1aLN*0G@~@1h#t3x_Nx5FOQ~wKbn@i5N1LGU}+WzX90Ht5OrDHrk~{M z@&}YgaHE&Ht4zl#<)v@}AhklSd_~~C5)Ce@`WO3v(xk$fn_Un=ya^TIDujcav$!(h zzL>#b4h&*=N`*Nvn@0%EyK)3;zU3)Q0!gR?K`29OdGK+&p}SRQ1I6K5wiO8EbJT<( zT+3@>42o}XkWgQ zmPjaHYC)8bY@xC`qHZBo=(#fKBxP=hs~A3WHv~!lSBw>mUtrwKoOAY9`B2NDB=1DF zk5Wj9-k}7Ik514yp)9Uac1Hd$3+RrtFD*SoT$M#Rax?y#u%s)7so1?>P8re!drMj? zQ;q@^2m!wW<5-H*#LA9!6pt(qSHZ=m<)}d1DpB!BbmS%z)lIGGLg(r#7kMZ`6ztNx zU-APJqNBV8y8QVobg~Rk8?;;y>T~1*ty8O6pcmYy5{XuqM zc3fUk??vaRq~4C^fPSq@>YO~6l~i~K?#CUQK4yw|zetY9j^~}H`$bPq_m5#w7Vtr4 zu(2K**z8VxIRGfrr)$*ZYjmbUK}Mcrebpp7vm{8-LjD zq@DdoNh?BQBL{mCy|bl$yzh^i*L$7a?~V39Owe+q3Eu2YP$ez7^I%BN{CXYF?NK}| zukOe}Dr33xLy+yr$8ql&`-2v6j5Xt7-0X~>$pQMFc5m`<4F+RpP zkMRL#>;lG5bNEjf7Xe=rjC}_q^POHN-Rqm zq%qS*n$r%_I?+7Z$NEO+2tteGp3*HA&TJHm$9qI?raknJb$LPkmbQDn4x`uWKS`Rm ze*E5h^*UP2ByFM39rPR8b@lqAjcTQutnKc$t2e6c-FW@nD!IB|*KtD@%cmes)@wI5 z+uyIQRoc5rveuk?vzH8KTFLp%(Lp-y^pge!V!f{0KFzjX|LCJ;Z?JzbNLLUZ>?qe<@)OZjd3e^+UO-|qaAm8 zkf_qSnQXRdH><51mGxRXUOKyJU8YVO9r~p=d)Jk`b$wfRuJ2qs-Lj2#AJ%!)Y}eM; P;+yUE=FM6wZdU#abE{sA literal 14298 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 C);o&; diff --git a/substrate/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm b/substrate/substrate/executor/wasm/target/wasm32-unknown-unknown/release/runtime_test.wasm old mode 100644 new mode 100755 index ab23e9b4f7a2a110b637faa5c07e1bf18823a350..9ba001aada9be42e8982d5ae00ff6fef7a51b74c GIT binary patch literal 5096 zcmd5=OOG4J5$@@Ek~1UD>Xnt(mU`$#Kq0oorIt&s;KPm(t}HmREg*m2+hc>soV3XofJ3Xt3)2M*w4jzJJ0`UgpX{D6GbGbD#AZF~!|kLj-J zn(BIWRZp>Szo#(9l$yQ64-S+^^kh5Q0e;wyil=h0qtJuq3{$qll64@nL>K>H?GfX@ z=Q%a%-#ZaK7}tlRc7I%-j9XQv5Hd%|{Rsc#!6>{FF;3WXguMf7*zFD);W%o})>T^1 z(t1xWGK~-xAzGs-Vg`Y7tKDw67nSOz@&?lh=@8BM{@}sOP-~@XOm&i|qGqXFUfZnS zi$?9%LuS$I%W|PV=|v+c(0J62>Z8G69EB>-16kSyqH!Qd!c=n-Yn}>YK0JFj9 zA!p7w+8@`O;W(_f`z*I4!KgPJKdg_U@nqCzC$kba4EyZ{J9Sn9jX}TJ9=8Ymuv?E8 z&gA4m%9v+eiJ4jQD=C=FxO_^kAF<)Nb20X123#Sj$w;p*jV6$KH@egA*C+k^?S7NJ zCKq9_^XAl07YIcL5=IgPz9yZY&;Ie;nWvod1ODjsL;SG7+spG+IpteIaar)>hd}!* zV7_7phd&@1+ly&Gl8`Q#P`vNRw?B~>GhP=wU>lqTzmP~(aPPZB~cwbzMt71}lNzR(}%?BMZ-So3~D6wJoo6Rv0nf$FOyHCV7f>yYRgW|o}k zdxGDB7F_6pck-%Gg?=M%toW)hT!vS)KpE!^pnYHBdW&`t3Z%ZI?T$ zEqBnQkl2G52yGi$8nMd6Kxp_i-dXXUkcd!DjnxraUUe0R+f!m`A6sA-G7yO^3~~ol zv1w2gP?7uAG;*AdzbAV*9A!7r);oA9kbBq1;37iQhy0@{lTUzLpMF;~9e8>GDO zP2iugX^5M`h_y#h|L;_O|Nlkh-zn)dC%(kVUI%Al=45iCm$=dEcpoG>!C5mmlC!+n zS>6lI^5875!cW5=@HQTEXD!F+$@7sr5F*L((PctHq{3G}*V5s6sCaF_#wgD|7Q9GL1H zA$b?)u;g2q!6cA?IuInOFH$5ttd56*bI58}*&t97$FrKtQJ7HthH$)6;bTz#6MORD zAFKniS)O_jAJw5es)tG^asTY71_BxLQ`&&p@X{OrjFkCrnZ}Zg`d5oP^ECE+p2jHS zOL+qai7JTeW$+fVl$-||2@z-;{0$7BQT^QDr0SpIX%W*e;%PPZ=kd?LNlai;4Ksbi z!KH!fm`U{p4_R-pU4g$r#Rk=^z_A@Fn$YD8;aK1W--`E;gn3yIwSc|t<^ok{$rifM zS7ux}iY&_33Jj?S3QhEQYco)M-9~k@@M2stGsLy%XXk1NQ)npS!Md#HmMrGJjXFzb zMQAtjj;lchRB=~Ud1nP^UAQRbI*Elvx{G9d2UzpE%VBa`I5k&wOdDp{fI~HtECa1?N7yILLBP>ADLWkYQ`C<``16ZP#)#(A>`uQEVf`hNuN{Kavsg!IX{ULE?=oo3qeHF00H5v&#yA{Bk zly7i?w}iYEd_5K*-a2(Nc-ucgH-jxdho$GUn?X*Th;Ih)B%%gK_UJY51TK(5!Hw`E zQi(2=hM3;+tzUb%6dp2>NhZimGx{G%`Wg7~BKTtoX2Cr6u`Q>MB^DWX;TPFKumUm# z9u_?u?*NK$Z_A~0!0mwSUIaEvv=Vc2Mo9}0ZDj#}NpeUQm-^2?*}KE9nBL=}9V zv4?MJjAa>WU@~67{5<}T;`6|PgnfX=X^cxMV>-rn0DleRJ&a2jZz+tO!T2A$%KKFX=91j%_St7kdhJs-57>=DnetZX%qRE+BGp3q1huX8l|5Ub#|V{l@K8 z>7`4T$VHdF88rxXd-eM5Rr+76peGUan`oyDdUfgXwaVR%Qn3`R@9wrrYo*q1SgtL- z0e0&YCYv(k$k=5$19eoctW{fAO6$eeZWOIIYA0XpKb%UnA5Px_v$fJ_(jT{bQJn&L zttk5il4Ge_U!7ETSLLJ89qdm=5#~)oG$HWaR)~dr MRo$#K!$z_8AM7l7jsO4v literal 14394 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 diff --git a/substrate/substrate/primitives/src/block.rs b/substrate/substrate/primitives/src/block.rs index 6f1ec91ab7..eb909c93fa 100644 --- a/substrate/substrate/primitives/src/block.rs +++ b/substrate/substrate/primitives/src/block.rs @@ -48,7 +48,7 @@ impl Slicable for Transaction { } /// Execution log (event) -#[derive(PartialEq, Eq, Clone)] +#[derive(PartialEq, Eq, Clone, Default)] #[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] pub struct Log(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); diff --git a/substrate/substrate/runtime/consensus/Cargo.toml b/substrate/substrate/runtime/consensus/Cargo.toml index c2de219535..f5cf7459d6 100644 --- a/substrate/substrate/runtime/consensus/Cargo.toml +++ b/substrate/substrate/runtime/consensus/Cargo.toml @@ -7,18 +7,22 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default_features = false } substrate-codec = { path = "../../codec", default_features = false } +substrate-primitives = { path = "../../primitives", default_features = false } substrate-runtime-std = { path = "../../runtime-std", default_features = false } substrate-runtime-io = { path = "../../runtime-io", default_features = false } substrate-runtime-support = { path = "../../runtime-support", default_features = false } substrate-runtime-primitives = { path = "../primitives", default_features = false } +substrate-runtime-system = { path = "../system", default_features = false } [features] default = ["std"] std = [ "serde/std", "substrate-codec/std", + "substrate-primitives/std", "substrate-runtime-std/std", "substrate-runtime-io/std", "substrate-runtime-support/std", "substrate-runtime-primitives/std", + "substrate-runtime-system/std", ] diff --git a/substrate/substrate/runtime/consensus/src/lib.rs b/substrate/substrate/runtime/consensus/src/lib.rs index 7826c689e7..354604154e 100644 --- a/substrate/substrate/runtime/consensus/src/lib.rs +++ b/substrate/substrate/runtime/consensus/src/lib.rs @@ -28,10 +28,15 @@ extern crate substrate_runtime_support as runtime_support; extern crate substrate_runtime_io as runtime_io; extern crate substrate_runtime_primitives as primitives; extern crate substrate_codec as codec; +extern crate substrate_runtime_system as system; +extern crate substrate_primitives; use rstd::prelude::*; use runtime_support::{storage, Parameter}; use runtime_support::storage::unhashed::StorageVec; +use primitives::traits::RefInto; +use substrate_primitives::bft::MisbehaviorReport; + pub const AUTHORITY_AT: &'static[u8] = b":auth:"; pub const AUTHORITY_COUNT: &'static[u8] = b":auth:len"; @@ -44,15 +49,18 @@ impl StorageVec for AuthorityStorageVec { pub const CODE: &'static [u8] = b":code"; -pub trait Trait { - type SessionKey: Parameter + Default; +pub trait Trait: system::Trait { + type PublicAux: RefInto; + type SessionKey: Parameter + Default; } decl_module! { pub struct Module; + pub enum Call where aux: T::PublicAux { + fn report_misbehavior(aux, report: MisbehaviorReport) = 0; + } pub enum PrivCall { fn set_code(new: Vec) = 0; - fn dummy() = 1; } } @@ -67,7 +75,10 @@ impl Module { storage::unhashed::put_raw(CODE, &new); } - fn dummy() {} + /// Report some misbehaviour. + fn report_misbehavior(_aux: &T::PublicAux, _report: MisbehaviorReport) { + // TODO. + } /// Set the current set of authorities' session keys. /// @@ -85,6 +96,7 @@ impl Module { #[cfg(any(feature = "std", test))] pub struct GenesisConfig { pub authorities: Vec, + pub code: Vec, } #[cfg(any(feature = "std", test))] @@ -92,6 +104,7 @@ impl Default for GenesisConfig { fn default() -> Self { GenesisConfig { authorities: vec![], + code: vec![], } } } @@ -103,9 +116,10 @@ impl primitives::BuildExternalities for GenesisConfig use codec::{Slicable, KeyedVec}; let auth_count = self.authorities.len() as u32; let mut r: runtime_io::TestExternalities = self.authorities.into_iter().enumerate().map(|(i, v)| - ((i as u32).to_keyed_vec(b":auth:"), v.encode()) + ((i as u32).to_keyed_vec(AUTHORITY_AT), v.encode()) ).collect(); - r.insert(b":auth:len".to_vec(), auth_count.encode()); + r.insert(AUTHORITY_COUNT.to_vec(), auth_count.encode()); + r.insert(CODE.to_vec(), self.code); r } } diff --git a/substrate/substrate/runtime/council/src/lib.rs b/substrate/substrate/runtime/council/src/lib.rs index 9f7f4b21bb..95bc7f1885 100644 --- a/substrate/substrate/runtime/council/src/lib.rs +++ b/substrate/substrate/runtime/council/src/lib.rs @@ -584,6 +584,7 @@ mod tests { type PublicAux = u64; } impl consensus::Trait for Test { + type PublicAux = ::PublicAux; type SessionKey = u64; } impl system::Trait for Test { @@ -596,7 +597,6 @@ mod tests { type Header = Header; } impl session::Trait for Test { - type PublicAux = ::PublicAux; type ConvertAccountIdToSessionKey = Identity; } impl staking::Trait for Test { @@ -611,6 +611,7 @@ mod tests { pub fn new_test_ext(with_council: bool) -> runtime_io::TestExternalities { let mut t = system::GenesisConfig::::default().build_externalities(); t.extend(consensus::GenesisConfig::{ + code: vec![], authorities: vec![], }.build_externalities()); t.extend(session::GenesisConfig::{ diff --git a/substrate/substrate/runtime/democracy/src/lib.rs b/substrate/substrate/runtime/democracy/src/lib.rs index 2ffe1441a3..1d62416df5 100644 --- a/substrate/substrate/runtime/democracy/src/lib.rs +++ b/substrate/substrate/runtime/democracy/src/lib.rs @@ -345,6 +345,7 @@ mod tests { type PublicAux = u64; } impl consensus::Trait for Test { + type PublicAux = ::PublicAux; type SessionKey = u64; } impl system::Trait for Test { @@ -357,7 +358,6 @@ mod tests { type Header = Header; } impl session::Trait for Test { - type PublicAux = ::PublicAux; type ConvertAccountIdToSessionKey = Identity; } impl staking::Trait for Test { @@ -371,6 +371,7 @@ mod tests { fn new_test_ext() -> runtime_io::TestExternalities { let mut t = system::GenesisConfig::::default().build_externalities(); t.extend(consensus::GenesisConfig::{ + code: vec![], authorities: vec![], }.build_externalities()); t.extend(session::GenesisConfig::{ diff --git a/substrate/substrate/runtime/executive/src/lib.rs b/substrate/substrate/runtime/executive/src/lib.rs index a99bd28c98..924c6834ba 100644 --- a/substrate/substrate/runtime/executive/src/lib.rs +++ b/substrate/substrate/runtime/executive/src/lib.rs @@ -18,6 +18,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +#[cfg(feature = "std")] extern crate serde; + extern crate substrate_runtime_std as rstd; extern crate substrate_runtime_support as runtime_support; extern crate substrate_runtime_io as runtime_io; @@ -41,11 +43,10 @@ extern crate substrate_runtime_session as session; #[cfg(test)] extern crate substrate_runtime_staking as staking; -#[cfg(feature = "std")] extern crate serde; - use rstd::prelude::*; use rstd::marker::PhantomData; use runtime_io::Hashing; +use runtime_support::StorageValue; use primitives::traits::{self, Header, Zero, One, Checkable, Applyable, CheckEqual, Executable, MakePayment}; use codec::Slicable; @@ -122,27 +123,29 @@ impl< /// Apply outside of the block execution function. /// This doesn't attempt to validate anything regarding the block. - pub fn apply_extrinsic(utx: Block::Extrinsic) { + pub fn apply_extrinsic(uxt: Block::Extrinsic) { // Verify the signature is good. - let tx = match utx.check() { - Ok(tx) => tx, + let xt = match uxt.check() { + Ok(xt) => xt, Err(_) => panic!("All transactions should be properly signed"), }; - { + if xt.sender() != &Default::default() { // check index - let expected_index = >::account_index(tx.sender()); - assert!(tx.index() == &expected_index, "All transactions should have the correct nonce"); + let expected_index = >::account_index(xt.sender()); + assert!(xt.index() == &expected_index, "All transactions should have the correct nonce"); // increment nonce in storage - >::inc_account_index(tx.sender()); + >::inc_account_index(xt.sender()); + + // pay any fees. + Payment::make_payment(xt.sender()); } - // pay any fees. - Payment::make_payment(tx.sender()); - // decode parameters and dispatch - tx.apply(); + xt.apply(); + + >::put(>::get() + 1u32); } fn final_checks(header: &System::Header) { @@ -180,6 +183,7 @@ mod tests { type PublicAux = u64; } impl consensus::Trait for Test { + type PublicAux = ::PublicAux; type SessionKey = u64; } impl system::Trait for Test { @@ -192,7 +196,6 @@ mod tests { type Header = Header; } impl session::Trait for Test { - type PublicAux = ::PublicAux; type ConvertAccountIdToSessionKey = Identity; } impl staking::Trait for Test { @@ -239,7 +242,7 @@ mod tests { header: Header { parent_hash: [69u8; 32].into(), number: 1, - state_root: hex!("9228e363883f4f5a01981985b5598d1a767e987eb3ccea017a0e14cac7acc79d").into(), + state_root: hex!("aa0cff04242e55fc780861b890aa8deba555f6ed95bd8fa575dfd80864f3b93e").into(), extrinsics_root: hex!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421").into(), digest: Digest { logs: vec![], }, }, @@ -273,7 +276,7 @@ mod tests { header: Header { parent_hash: [69u8; 32].into(), number: 1, - state_root: hex!("93dde1251278e65430baf291337ba219bacfa9ad583c52513b12cf1974109a97").into(), + state_root: hex!("aa0cff04242e55fc780861b890aa8deba555f6ed95bd8fa575dfd80864f3b93e").into(), extrinsics_root: [0u8; 32].into(), digest: Digest { logs: vec![], }, }, diff --git a/substrate/substrate/runtime/primitives/src/generic.rs b/substrate/substrate/runtime/primitives/src/generic.rs index 81c7ca44c6..6ad8390285 100644 --- a/substrate/substrate/runtime/primitives/src/generic.rs +++ b/substrate/substrate/runtime/primitives/src/generic.rs @@ -86,7 +86,7 @@ pub struct UncheckedExtrinsic where AccountId: Member, Index: Member, Call: Member, - Signature: Member + Signature: Member, // TODO: should be Option { /// The actual extrinsic information. pub extrinsic: Extrinsic, @@ -94,6 +94,19 @@ pub struct UncheckedExtrinsic where pub signature: Signature, } +impl UncheckedExtrinsic where + AccountId: Member + Default, + Index: Member, + Call: Member, + Signature: Member + Default, +{ + /// Is this extrinsic signed? + pub fn is_signed(&self) -> bool { + // TODO: should be Option and Option + self.signature != Signature::default() || self.extrinsic.signed != AccountId::default() + } +} + impl Slicable for UncheckedExtrinsic where AccountId: Member + Slicable, Index: Member + Slicable, @@ -145,21 +158,25 @@ impl fmt::Debug for UncheckedExtrinsic traits::Checkable for UncheckedExtrinsic where - AccountId: Member, + AccountId: Member + Default, Index: Member, Call: Member, - Signature: Member + traits::Verify, + Signature: Member + Default + traits::Verify, Extrinsic: Slicable { type Checked = CheckedExtrinsic; fn check(self) -> Result { - if ::codec::Slicable::using_encoded(&self.extrinsic, |msg| - self.signature.verify(msg, &self.extrinsic.signed) - ) { + if !self.is_signed() { Ok(CheckedExtrinsic(self)) } else { - Err(self) + if ::codec::Slicable::using_encoded(&self.extrinsic, |msg| + self.signature.verify(msg, &self.extrinsic.signed) + ) { + Ok(CheckedExtrinsic(self)) + } else { + Err(self) + } } } } @@ -186,6 +203,16 @@ where pub fn signature(&self) -> &Signature { &self.0.signature } + + /// Get a reference to the checked signature. + pub fn as_unchecked(&self) -> &UncheckedExtrinsic { + &self.0 + } + + /// Get a reference to the checked signature. + pub fn into_unchecked(self) -> UncheckedExtrinsic { + self.0 + } } impl ops::Deref diff --git a/substrate/substrate/runtime/primitives/src/lib.rs b/substrate/substrate/runtime/primitives/src/lib.rs index 69a3039de6..3d157cc2d4 100644 --- a/substrate/substrate/runtime/primitives/src/lib.rs +++ b/substrate/substrate/runtime/primitives/src/lib.rs @@ -34,7 +34,10 @@ extern crate substrate_runtime_support as runtime_support; extern crate substrate_codec as codec; extern crate substrate_primitives; -#[cfg(feature = "std")] use std::collections::HashMap; +#[cfg(feature = "std")] +use std::collections::HashMap; + +use substrate_primitives::hash::H512; #[cfg(feature = "std")] pub mod testing; @@ -50,6 +53,26 @@ pub trait BuildExternalities { fn build_externalities(self) -> BuiltExternalities; } +/// Ed25519 signature verify. +#[derive(Eq, PartialEq, Clone, Default)] +#[cfg_attr(feature = "std", derive(Debug, Serialize))] +pub struct Ed25519Signature(H512); +impl traits::Verify for Ed25519Signature { + type Signer = [u8; 32]; + fn verify(&self, msg: &[u8], signer: &Self::Signer) -> bool { + runtime_io::ed25519_verify(&(self.0).0, msg, &signer[..]) + } +} +impl codec::Slicable for Ed25519Signature { + fn decode(input: &mut I) -> Option { Some(Ed25519Signature(codec::Slicable::decode(input)?,)) } + fn using_encoded R>(&self, f: F) -> R { self.0.using_encoded(f) } +} +impl From for Ed25519Signature { + fn from(h: H512) -> Ed25519Signature { + Ed25519Signature(h) + } +} + #[macro_export] macro_rules! __impl_outer_config_types { ($concrete:ident $config:ident $snake:ident $($rest:ident)*) => { diff --git a/substrate/substrate/runtime/primitives/src/traits.rs b/substrate/substrate/runtime/primitives/src/traits.rs index 1e2008c976..cadb94f64a 100644 --- a/substrate/substrate/runtime/primitives/src/traits.rs +++ b/substrate/substrate/runtime/primitives/src/traits.rs @@ -20,8 +20,7 @@ use rstd::prelude::*; use rstd; #[cfg(not(feature = "std"))] use runtime_io; use substrate_primitives; -use codec::{Input, Slicable}; -use substrate_primitives::hash::H512; +use codec::Slicable; pub use integer_sqrt::IntegerSquareRoot; pub use num_traits::{Zero, One, Bounded}; use rstd::ops::{Add, Sub, Mul, Div, Rem, AddAssign, SubAssign, MulAssign, DivAssign, RemAssign}; @@ -34,26 +33,6 @@ pub trait Verify { fn verify(&self, msg: &[u8], signer: &Self::Signer) -> bool; } -/// Ed25519 signature verify. -#[derive(Eq, PartialEq, Clone)] -#[cfg_attr(feature = "std", derive(Debug, Serialize))] -pub struct Ed25519Signature(H512); -impl Verify for Ed25519Signature { - type Signer = [u8; 32]; - fn verify(&self, msg: &[u8], signer: &Self::Signer) -> bool { - ::runtime_io::ed25519_verify(&(self.0).0, msg, &signer[..]) - } -} -impl Slicable for Ed25519Signature { - fn decode(input: &mut I) -> Option { Some(Ed25519Signature(Slicable::decode(input)?,)) } - fn using_encoded R>(&self, f: F) -> R { self.0.using_encoded(f) } -} -impl From for Ed25519Signature { - fn from(h: H512) -> Ed25519Signature { - Ed25519Signature(h) - } -} - /// Simple payment making trait, operating on a single generic `AccountId` type. pub trait MakePayment { /// Make some sort of payment concerning `who`. @@ -102,8 +81,18 @@ impl Convert for Identity { fn convert(a: T) -> T { a } } +pub trait MaybeEmpty { + fn is_empty(&self) -> bool; +} + +impl MaybeEmpty for T { + fn is_empty(&self) -> bool { + *self == T::default() + } +} + pub trait HasPublicAux { - type PublicAux; + type PublicAux: MaybeEmpty; } pub trait RefInto { diff --git a/substrate/substrate/runtime/session/src/lib.rs b/substrate/substrate/runtime/session/src/lib.rs index cdaa9302eb..ac26d6db72 100644 --- a/substrate/substrate/runtime/session/src/lib.rs +++ b/substrate/substrate/runtime/session/src/lib.rs @@ -44,8 +44,7 @@ use rstd::prelude::*; use primitives::traits::{Zero, One, RefInto, Executable, Convert}; use runtime_support::{StorageValue, StorageMap}; -pub trait Trait: consensus::Trait + system::Trait { - type PublicAux: RefInto; +pub trait Trait: consensus::Trait { type ConvertAccountIdToSessionKey: Convert; } @@ -162,28 +161,6 @@ pub struct GenesisConfig { pub validators: Vec, } -#[cfg(any(feature = "std", test))] -impl GenesisConfig where T::AccountId: From { - pub fn simple() -> Self where T::AccountId: From<[u8; 32]> { - use primitives::traits::As; - use keyring::Keyring::*; - let three = [3u8; 32]; - GenesisConfig { - session_length: T::BlockNumber::sa(2), - validators: vec![T::AccountId::from(One), T::AccountId::from(Two), T::AccountId::from(three)], - } - } - - pub fn extended() -> Self { - use primitives::traits::As; - use keyring::Keyring::*; - GenesisConfig { - session_length: T::BlockNumber::sa(1), - validators: vec![T::AccountId::from(Alice), T::AccountId::from(Bob), T::AccountId::from(Charlie)], - } - } -} - #[cfg(any(feature = "std", test))] impl Default for GenesisConfig { fn default() -> Self { @@ -224,6 +201,7 @@ mod tests { type PublicAux = u64; } impl consensus::Trait for Test { + type PublicAux = ::PublicAux; type SessionKey = u64; } impl system::Trait for Test { @@ -236,7 +214,6 @@ mod tests { type Header = Header; } impl Trait for Test { - type PublicAux = ::PublicAux; type ConvertAccountIdToSessionKey = Identity; } @@ -247,6 +224,7 @@ mod tests { fn new_test_ext() -> runtime_io::TestExternalities { let mut t = system::GenesisConfig::::default().build_externalities(); t.extend(consensus::GenesisConfig::{ + code: vec![], authorities: vec![1, 2, 3], }.build_externalities()); t.extend(GenesisConfig::{ diff --git a/substrate/substrate/runtime/staking/src/lib.rs b/substrate/substrate/runtime/staking/src/lib.rs index 947b08b240..8722c6be9b 100644 --- a/substrate/substrate/runtime/staking/src/lib.rs +++ b/substrate/substrate/runtime/staking/src/lib.rs @@ -685,6 +685,7 @@ mod tests { type PublicAux = u64; } impl consensus::Trait for Test { + type PublicAux = ::PublicAux; type SessionKey = u64; } impl system::Trait for Test { @@ -697,7 +698,6 @@ mod tests { type Header = Header; } impl session::Trait for Test { - type PublicAux = ::PublicAux; type ConvertAccountIdToSessionKey = Identity; } impl Trait for Test { @@ -708,6 +708,7 @@ mod tests { fn new_test_ext(session_length: u64, sessions_per_era: u64, current_era: u64, monied: bool) -> runtime_io::TestExternalities { let mut t = system::GenesisConfig::::default().build_externalities(); t.extend(consensus::GenesisConfig::{ + code: vec![], authorities: vec![], }.build_externalities()); t.extend(session::GenesisConfig::{ diff --git a/substrate/substrate/runtime/system/src/lib.rs b/substrate/substrate/runtime/system/src/lib.rs index 84f89678a6..c7252a0acd 100644 --- a/substrate/substrate/runtime/system/src/lib.rs +++ b/substrate/substrate/runtime/system/src/lib.rs @@ -67,6 +67,7 @@ decl_storage! { pub AccountIndex get(account_index): b"sys:non" => default map [ T::AccountId => T::Index ]; pub BlockHash get(block_hash): b"sys:old" => required map [ T::BlockNumber => T::Hash ]; + pub ExtrinsicIndex get(extrinsic_index): b"sys:xti" => required u32; RandomSeed get(random_seed): b"sys:rnd" => required T::Hash; // The current block number being processed. Set by `execute_block`. Number get(block_number): b"sys:num" => required T::BlockNumber; @@ -83,11 +84,13 @@ impl Module { >::put(parent_hash); >::put(txs_root); >::put(Self::calculate_random()); + >::put(0); } /// Remove temporary "environment" entries in storage. pub fn finalise() -> T::Header { >::kill(); + >::kill(); let number = >::take(); let parent_hash = >::take(); @@ -145,6 +148,20 @@ impl Module { >::put(n); } + /// Set the parent hash number to something in particular. Can be used as an alternative to + /// `initialise` for tests that don't need to bother with the other environment entries. + #[cfg(any(feature = "std", test))] + pub fn set_parent_hash(n: T::Hash) { + >::put(n); + } + + /// Set the random seed to something in particular. Can be used as an alternative to + /// `initialise` for tests that don't need to bother with the other environment entries. + #[cfg(any(feature = "std", test))] + pub fn set_random_seed(n: T::Hash) { + >::put(n); + } + /// Increment a particular account's nonce by 1. pub fn inc_account_index(who: &T::AccountId) { >::insert(who, Self::account_index(who) + T::Index::one()); @@ -172,7 +189,8 @@ impl primitives::BuildExternalities for GenesisConfig twox_128(&>::key_for(T::BlockNumber::zero())).to_vec() => [69u8; 32].encode(), twox_128(>::key()).to_vec() => 1u64.encode(), twox_128(>::key()).to_vec() => [69u8; 32].encode(), - twox_128(>::key()).to_vec() => [0u8; 32].encode() + twox_128(>::key()).to_vec() => [0u8; 32].encode(), + twox_128(>::key()).to_vec() => [0u8; 4].encode() ] } } diff --git a/substrate/substrate/runtime/timestamp/Cargo.toml b/substrate/substrate/runtime/timestamp/Cargo.toml index f9382e24be..d1697273cf 100644 --- a/substrate/substrate/runtime/timestamp/Cargo.toml +++ b/substrate/substrate/runtime/timestamp/Cargo.toml @@ -7,9 +7,12 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default_features = false } substrate-runtime-std = { path = "../../runtime-std", default_features = false } +substrate-runtime-io = { path = "../../runtime-io", default_features = false } substrate-runtime-support = { path = "../../runtime-support", default_features = false } substrate-runtime-primitives = { path = "../primitives", default_features = false } substrate-codec = { path = "../../codec", default_features = false } +substrate-primitives = { path = "../../primitives", default_features = false } +substrate-runtime-system = { path = "../system", default_features = false } [dev-dependencies] substrate-runtime-io = { path = "../../runtime-io", default_features = true } @@ -18,8 +21,11 @@ substrate-runtime-io = { path = "../../runtime-io", default_features = true } default = ["std"] std = [ "substrate-runtime-std/std", + "substrate-runtime-io/std", "substrate-runtime-support/std", "substrate-runtime-primitives/std", "serde/std", "substrate-codec/std", + "substrate-primitives/std", + "substrate-runtime-system/std", ] diff --git a/substrate/substrate/runtime/timestamp/src/lib.rs b/substrate/substrate/runtime/timestamp/src/lib.rs index c651fd8753..ee6bad5c83 100644 --- a/substrate/substrate/runtime/timestamp/src/lib.rs +++ b/substrate/substrate/runtime/timestamp/src/lib.rs @@ -18,22 +18,25 @@ #![cfg_attr(not(feature = "std"), no_std)] -#[cfg_attr(test, macro_use)] +#[cfg_attr(any(feature = "std", test), macro_use)] extern crate substrate_runtime_std as rstd; #[macro_use] extern crate substrate_runtime_support as runtime_support; -#[cfg(test)] +#[cfg(any(feature = "std", test))] extern crate substrate_runtime_io as runtime_io; +#[cfg(test)] +extern crate substrate_primitives; extern crate substrate_runtime_primitives as runtime_primitives; +extern crate substrate_runtime_system as system; extern crate substrate_codec as codec; use runtime_support::{StorageValue, Parameter}; -use runtime_primitives::traits::HasPublicAux; +use runtime_primitives::traits::{HasPublicAux, Executable, MaybeEmpty}; -pub trait Trait: HasPublicAux { +pub trait Trait: HasPublicAux + system::Trait { type Value: Parameter + Default; } @@ -45,8 +48,11 @@ decl_module! { } decl_storage! { - pub trait Store for Module; + trait Store for Module; pub Now get(now): b"tim:val" => required T::Value; + + // Did the timestamp get updated in this block? + DidUpdate: b"tim:did" => default bool; } impl Module { @@ -55,8 +61,36 @@ impl Module { } /// Set the current time. - fn set(_aux: &T::PublicAux, now: T::Value) { + fn set(aux: &T::PublicAux, now: T::Value) { + assert!(aux.is_empty()); + assert!(!::DidUpdate::exists(), "Timestamp must be updated only once in the block"); + assert!(>::extrinsic_index() == 0, "Timestamp must be first extrinsic in the block"); ::Now::put(now); + ::DidUpdate::put(true); + } +} + +impl Executable for Module { + fn execute() { + assert!(::DidUpdate::take(), "Timestamp must be updated once in the block"); + } +} + +#[cfg(any(feature = "std", test))] +#[derive(Default)] +pub struct GenesisConfig { + pub now: T::Value, +} + +#[cfg(any(feature = "std", test))] +impl runtime_primitives::BuildExternalities for GenesisConfig +{ + fn build_externalities(self) -> runtime_primitives::BuiltExternalities { + use runtime_io::twox_128; + use codec::Slicable; + map![ + twox_128(>::key()).to_vec() => self.now.encode() + ] } } @@ -64,25 +98,35 @@ impl Module { mod tests { use super::*; - use runtime_io::{with_externalities, twox_128, TestExternalities}; - use codec::Joiner; + use runtime_io::with_externalities; use runtime_support::storage::StorageValue; + use substrate_primitives::H256; + use runtime_primitives::BuildExternalities; + use runtime_primitives::traits::{HasPublicAux}; + use runtime_primitives::testing::{Digest, Header}; - struct TraitImpl; - impl HasPublicAux for TraitImpl { + pub struct Test; + impl HasPublicAux for Test { type PublicAux = u64; } - impl Trait for TraitImpl { + impl system::Trait for Test { + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = runtime_io::BlakeTwo256; + type Digest = Digest; + type AccountId = u64; + type Header = Header; + } + impl Trait for Test { type Value = u64; } - type Timestamp = Module; + type Timestamp = Module; #[test] fn timestamp_works() { - - let mut t: TestExternalities = map![ - twox_128(::Now::key()).to_vec() => vec![].and(&42u64) - ]; + let mut t = system::GenesisConfig::::default().build_externalities(); + t.extend(GenesisConfig:: { now: 42 }.build_externalities()); with_externalities(&mut t, || { assert_eq!(::Now::get(), 42); diff --git a/substrate/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 1e934f702c35daf2bf0aafe6fee1a556848f281c..c9da182130b78148ba2a8210612f5a6b2a5c3007 100644 GIT binary patch literal 16318 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 gZS*N6-G#>T{7e(%%yqjC^t{y@CB!#@ie5 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 C>x#Dk diff --git a/substrate/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm b/substrate/substrate/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.wasm old mode 100644 new mode 100755 index b8bcd03d8394115663e14df58070cf9290bc3b7d..f648f7d54edd94cc10be5d6909d6a5c2fad254c7 GIT binary patch literal 17828 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 literal 33119 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 jWOBuAg0t;-_&7t8J}!_hUG^`upJUno