diff --git a/polkadot/Cargo.lock b/polkadot/Cargo.lock index 2cc432c031..d7c03d8fc8 100644 --- a/polkadot/Cargo.lock +++ b/polkadot/Cargo.lock @@ -977,7 +977,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -989,7 +989,7 @@ dependencies = [ [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" dependencies = [ "hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1002,7 +1002,7 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1012,7 +1012,7 @@ dependencies = [ [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1022,7 +1022,7 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1038,7 +1038,7 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#cd27b905868d7919bed6ec8113e846c459e93831" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1445,7 +1445,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "yamux 0.1.2 (git+https://github.com/paritytech/yamux)", + "yamux 0.1.3 (git+https://github.com/paritytech/yamux)", ] [[package]] @@ -1979,6 +1979,7 @@ dependencies = [ "sr-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "srml-support 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-client 0.1.0 (git+https://github.com/paritytech/substrate)", + "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-consensus-common 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-finality-grandpa 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-keyring 0.1.0 (git+https://github.com/paritytech/substrate)", @@ -2651,7 +2652,7 @@ dependencies = [ [[package]] name = "sr-api-macros" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2662,7 +2663,7 @@ dependencies = [ [[package]] name = "sr-io" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -2677,7 +2678,7 @@ dependencies = [ [[package]] name = "sr-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2694,7 +2695,7 @@ dependencies = [ [[package]] name = "sr-std" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2702,7 +2703,7 @@ dependencies = [ [[package]] name = "sr-version" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2715,7 +2716,7 @@ dependencies = [ [[package]] name = "srml-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2735,7 +2736,7 @@ dependencies = [ [[package]] name = "srml-balances" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2754,7 +2755,7 @@ dependencies = [ [[package]] name = "srml-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2771,7 +2772,7 @@ dependencies = [ [[package]] name = "srml-council" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2791,7 +2792,7 @@ dependencies = [ [[package]] name = "srml-democracy" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2810,7 +2811,7 @@ dependencies = [ [[package]] name = "srml-executive" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2826,7 +2827,7 @@ dependencies = [ [[package]] name = "srml-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2846,7 +2847,7 @@ dependencies = [ [[package]] name = "srml-metadata" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2859,7 +2860,7 @@ dependencies = [ [[package]] name = "srml-session" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2879,7 +2880,7 @@ dependencies = [ [[package]] name = "srml-staking" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2902,7 +2903,7 @@ dependencies = [ [[package]] name = "srml-support" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2919,7 +2920,7 @@ dependencies = [ [[package]] name = "srml-support-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2931,7 +2932,7 @@ dependencies = [ [[package]] name = "srml-support-procedural-tools" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2942,7 +2943,7 @@ dependencies = [ [[package]] name = "srml-support-procedural-tools-derive" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2952,7 +2953,7 @@ dependencies = [ [[package]] name = "srml-system" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2969,7 +2970,7 @@ dependencies = [ [[package]] name = "srml-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2986,7 +2987,7 @@ dependencies = [ [[package]] name = "srml-treasury" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3101,7 +3102,7 @@ dependencies = [ [[package]] name = "substrate-cli" version = "0.3.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3125,7 +3126,7 @@ dependencies = [ "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-service 0.3.0 (git+https://github.com/paritytech/substrate)", "substrate-telemetry 0.3.0 (git+https://github.com/paritytech/substrate)", - "sysinfo 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "sysinfo 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3133,7 +3134,7 @@ dependencies = [ [[package]] name = "substrate-client" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3162,7 +3163,7 @@ dependencies = [ [[package]] name = "substrate-client-db" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", @@ -3183,7 +3184,7 @@ dependencies = [ [[package]] name = "substrate-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3206,7 +3207,7 @@ dependencies = [ [[package]] name = "substrate-consensus-aura-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0 (git+https://github.com/paritytech/substrate)", @@ -3220,7 +3221,7 @@ dependencies = [ [[package]] name = "substrate-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3235,7 +3236,7 @@ dependencies = [ [[package]] name = "substrate-executor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3257,7 +3258,7 @@ dependencies = [ [[package]] name = "substrate-finality-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "finality-grandpa 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3279,7 +3280,7 @@ dependencies = [ [[package]] name = "substrate-finality-grandpa-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3292,7 +3293,7 @@ dependencies = [ [[package]] name = "substrate-keyring" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3302,7 +3303,7 @@ dependencies = [ [[package]] name = "substrate-keystore" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3318,7 +3319,7 @@ dependencies = [ [[package]] name = "substrate-network" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3341,7 +3342,7 @@ dependencies = [ [[package]] name = "substrate-network-libp2p" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3364,7 +3365,7 @@ dependencies = [ [[package]] name = "substrate-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3390,7 +3391,7 @@ dependencies = [ [[package]] name = "substrate-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -3399,11 +3400,14 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "sr-version 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-client 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-executor 0.1.0 (git+https://github.com/paritytech/substrate)", + "substrate-network 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-transaction-pool 0.1.0 (git+https://github.com/paritytech/substrate)", "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3412,7 +3416,7 @@ dependencies = [ [[package]] name = "substrate-rpc-servers" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "jsonrpc-http-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -3426,7 +3430,7 @@ dependencies = [ [[package]] name = "substrate-serializer" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3435,7 +3439,7 @@ dependencies = [ [[package]] name = "substrate-service" version = "0.3.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3452,12 +3456,12 @@ dependencies = [ "sr-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-client 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-client-db 0.1.0 (git+https://github.com/paritytech/substrate)", + "substrate-consensus-aura-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-consensus-common 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-executor 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-keystore 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-network 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-primitives 0.1.0 (git+https://github.com/paritytech/substrate)", - "substrate-rpc 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-rpc-servers 0.1.0 (git+https://github.com/paritytech/substrate)", "substrate-telemetry 0.3.0 (git+https://github.com/paritytech/substrate)", "substrate-transaction-pool 0.1.0 (git+https://github.com/paritytech/substrate)", @@ -3468,7 +3472,7 @@ dependencies = [ [[package]] name = "substrate-state-db" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3480,7 +3484,7 @@ dependencies = [ [[package]] name = "substrate-state-machine" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3497,7 +3501,7 @@ dependencies = [ [[package]] name = "substrate-telemetry" version = "0.3.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3512,7 +3516,7 @@ dependencies = [ [[package]] name = "substrate-transaction-graph" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3526,7 +3530,7 @@ dependencies = [ [[package]] name = "substrate-transaction-pool" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3542,7 +3546,7 @@ dependencies = [ [[package]] name = "substrate-trie" version = "0.4.0" -source = "git+https://github.com/paritytech/substrate#3329915cd5458bd065c9f921891487e71511097c" +source = "git+https://github.com/paritytech/substrate#9dfe0066dcb260eead79b0ba7fceeb1fb479ad7b" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "memory-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -3625,7 +3629,7 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4264,8 +4268,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "yamux" -version = "0.1.2" -source = "git+https://github.com/paritytech/yamux#8cec810d4e2bbe77cf9ec8b82962e878e854e53e" +version = "0.1.3" +source = "git+https://github.com/paritytech/yamux#152063358daeebc5efbae47ef1bc91558ed6fb45" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4610,7 +4614,7 @@ dependencies = [ "checksum syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "867cc5c2d7140ae7eaad2ae9e8bf39cb18a67ca651b7834f88d46ca98faadb9c" "checksum syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13ad4762fe52abc9f4008e85c4fb1b1fe3aa91ccb99ff4826a439c7c598e1047" "checksum syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6e0e4dbae163dd98989464c23dd503161b338790640e11537686f2ef0f25c791" -"checksum sysinfo 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "11c5f6e8a7a7146f26ffed9a5ff8bab2706f1ac8a413a415e1d211b819d5c24d" +"checksum sysinfo 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c747a1fbe091faa7bf76c19f40099f9f12495384c811485d81cf3d60c0eae62" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" "checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b" @@ -4681,4 +4685,4 @@ dependencies = [ "checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61" -"checksum yamux 0.1.2 (git+https://github.com/paritytech/yamux)" = "" +"checksum yamux 0.1.3 (git+https://github.com/paritytech/yamux)" = "" diff --git a/polkadot/consensus/Cargo.toml b/polkadot/consensus/Cargo.toml index 55227862f4..6fe52e5801 100644 --- a/polkadot/consensus/Cargo.toml +++ b/polkadot/consensus/Cargo.toml @@ -16,6 +16,7 @@ polkadot-parachain = { path = "../parachain" } polkadot-primitives = { path = "../primitives" } polkadot-runtime = { path = "../runtime" } polkadot-statement-table = { path = "../statement-table" } +substrate-consensus-aura-primitives = { git = "https://github.com/paritytech/substrate" } substrate-finality-grandpa = { git = "https://github.com/paritytech/substrate" } substrate-consensus-common = { git = "https://github.com/paritytech/substrate" } substrate-primitives = { git = "https://github.com/paritytech/substrate" } diff --git a/polkadot/consensus/src/error.rs b/polkadot/consensus/src/error.rs index 2123ba791c..2a6d414870 100644 --- a/polkadot/consensus/src/error.rs +++ b/polkadot/consensus/src/error.rs @@ -17,6 +17,7 @@ //! Errors that can occur during the consensus process. use primitives::AuthorityId; +use runtime_primitives::RuntimeString; error_chain! { links { @@ -33,6 +34,10 @@ error_chain! { description("Local account ID not a validator at this block."), display("Local account ID ({:?}) not a validator at this block.", id), } + InherentError(reason: RuntimeString) { + description("Unexpected error while checking inherents"), + display("Unexpected error while checking inherents: {}", reason), + } PrematureDestruction { description("Proposer destroyed before finishing proposing or evaluating"), display("Proposer destroyed before finishing proposing or evaluating"), diff --git a/polkadot/consensus/src/lib.rs b/polkadot/consensus/src/lib.rs index 1cd6ff7079..0c08077790 100644 --- a/polkadot/consensus/src/lib.rs +++ b/polkadot/consensus/src/lib.rs @@ -45,6 +45,7 @@ extern crate substrate_client as client; extern crate exit_future; extern crate tokio; extern crate substrate_consensus_common as consensus; +extern crate substrate_consensus_aura_primitives as aura_primitives; extern crate substrate_finality_grandpa as grandpa; extern crate substrate_transaction_pool as transaction_pool; @@ -74,7 +75,6 @@ use parking_lot::Mutex; use polkadot_primitives::{ Hash, Block, BlockId, BlockNumber, Header, Timestamp, SessionKey, InherentData }; -use polkadot_primitives::Compact; use polkadot_primitives::parachain::{Id as ParaId, Chain, DutyRoster, BlockData, Extrinsic as ParachainExtrinsic, CandidateReceipt, CandidateSignature}; use polkadot_primitives::parachain::{AttestedCandidate, ParachainHost, Statement as PrimitiveStatement}; use primitives::{AuthorityId, ed25519}; @@ -82,6 +82,7 @@ use runtime_primitives::traits::ProvideRuntimeApi; use tokio::runtime::TaskExecutor; use tokio::timer::{Delay, Interval}; use transaction_pool::txpool::{Pool, ChainApi as PoolChainApi}; +use aura_primitives::AuraConsensusData; use attestation_service::ServiceHandle; use futures::prelude::*; @@ -246,8 +247,6 @@ struct ParachainConsensus { handle: TaskExecutor, /// Store for extrinsic data. extrinsic_store: ExtrinsicStore, - /// The time after which no parachains may be included. - parachain_empty_duration: Duration, /// Live agreements. live_instances: Mutex>>, @@ -321,16 +320,9 @@ impl ParachainConsensus where self.extrinsic_store.clone(), ); - let now = Instant::now(); - let dynamic_inclusion = DynamicInclusion::new( - table.num_parachains(), - now, - self.parachain_empty_duration.clone(), - ); - let tracker = Arc::new(AttestationTracker { table, - dynamic_inclusion, + started: Instant::now(), _drop_signal: drop_signal }); @@ -349,7 +341,7 @@ impl ParachainConsensus where struct AttestationTracker { _drop_signal: exit_future::Signal, table: Arc, - dynamic_inclusion: DynamicInclusion, + started: Instant, } /// Polkadot proposer factory. @@ -376,7 +368,6 @@ impl ProposerFactory where collators: C, transaction_pool: Arc>, thread_pool: TaskExecutor, - parachain_empty_duration: Duration, key: Arc, extrinsic_store: ExtrinsicStore, ) -> Self { @@ -386,7 +377,6 @@ impl ProposerFactory where collators, handle: thread_pool.clone(), extrinsic_store: extrinsic_store.clone(), - parachain_empty_duration, live_instances: Mutex::new(HashMap::new()), }); @@ -406,7 +396,7 @@ impl ProposerFactory where } } -impl consensus::Environment for ProposerFactory where +impl consensus::Environment for ProposerFactory where C: Collators + Send + 'static, N: Network, TxApi: PoolChainApi, @@ -424,9 +414,6 @@ impl consensus::Environment for ProposerFactory, ) -> Result { - // force delay in evaluation this long. - const FORCE_DELAY: Timestamp = Compact(5); - let parent_hash = parent_header.hash(); let parent_id = BlockId::hash(parent_hash); let tracker = self.parachain_consensus.get_or_instantiate( @@ -442,7 +429,6 @@ impl consensus::Environment for ProposerFactory where parent_number: BlockNumber, tracker: Arc, transaction_pool: Arc>, - minimum_timestamp: u64, } -impl consensus::Proposer for Proposer where +impl consensus::Proposer for Proposer where TxApi: PoolChainApi, C: ProvideRuntimeApi + HeaderBackend + Send + Sync, C::Api: ParachainHost + BlockBuilderApi, @@ -531,20 +516,41 @@ impl consensus::Proposer for Proposer where future::FutureResult, >; - fn propose(&self) -> Self::Create { + fn propose(&self, consensus_data: AuraConsensusData) -> Self::Create { const ATTEMPT_PROPOSE_EVERY: Duration = Duration::from_millis(100); + const SLOT_DURATION_DENOMINATOR: u64 = 3; // wait up to 1/3 of the slot for candidates. let initial_included = self.tracker.table.includable_count(); let now = Instant::now(); - let enough_candidates = self.tracker.dynamic_inclusion.acceptable_in( + + let dynamic_inclusion = DynamicInclusion::new( + self.tracker.table.num_parachains(), + self.tracker.started, + Duration::from_secs(consensus_data.slot_duration / SLOT_DURATION_DENOMINATOR), + ); + + let enough_candidates = dynamic_inclusion.acceptable_in( now, initial_included, ).unwrap_or_else(|| now + Duration::from_millis(1)); + let believed_timestamp = consensus_data.timestamp; + + // set up delay until next allowed timestamp. + let current_timestamp = current_timestamp(); + let delay_future = if current_timestamp.0 >= believed_timestamp { + None + } else { + Some(Delay::new( + Instant::now() + Duration::from_secs(current_timestamp.0 - believed_timestamp) + )) + }; + let timing = ProposalTiming { + minimum: delay_future, attempt_propose: Interval::new(now + ATTEMPT_PROPOSE_EVERY, ATTEMPT_PROPOSE_EVERY), enough_candidates: Delay::new(enough_candidates), - dynamic_inclusion: self.tracker.dynamic_inclusion.clone(), + dynamic_inclusion, last_included: initial_included, }; @@ -555,7 +561,8 @@ impl consensus::Proposer for Proposer where client: self.client.clone(), transaction_pool: self.transaction_pool.clone(), table: self.tracker.table.clone(), - minimum_timestamp: self.minimum_timestamp.into(), + believed_minimum_timestamp: believed_timestamp, + consensus_data, timing, }) } @@ -569,6 +576,7 @@ fn current_timestamp() -> Timestamp { } struct ProposalTiming { + minimum: Option, attempt_propose: Interval, dynamic_inclusion: DynamicInclusion, enough_candidates: Delay, @@ -588,6 +596,14 @@ impl ProposalTiming { x.expect("timer still alive; intervals never end; qed"); } + // wait until the minimum time has passed. + if let Some(mut minimum) = self.minimum.take() { + if let Async::NotReady = minimum.poll().map_err(ErrorKind::Timer)? { + self.minimum = Some(minimum); + return Ok(Async::NotReady); + } + } + if included == self.last_included { return self.enough_candidates.poll().map_err(ErrorKind::Timer); } @@ -614,7 +630,8 @@ pub struct CreateProposal { transaction_pool: Arc>, table: Arc, timing: ProposalTiming, - minimum_timestamp: Timestamp, + believed_minimum_timestamp: u64, + consensus_data: AuraConsensusData, } impl CreateProposal where @@ -626,13 +643,10 @@ impl CreateProposal where use client::block_builder::BlockBuilder; use runtime_primitives::traits::{Hash as HashT, BlakeTwo256}; - // TODO: handle case when current timestamp behind that in state. - let timestamp = ::std::cmp::max(self.minimum_timestamp.0, current_timestamp().0); - let inherent_data = InherentData { - timestamp, + timestamp: self.believed_minimum_timestamp, parachains: candidates, - aura_expected_slot: 0, // not required here. + aura_expected_slot: self.consensus_data.slot, }; let runtime_api = self.client.runtime_api(); @@ -685,7 +699,7 @@ impl CreateProposal where let active_parachains = runtime_api.active_parachains(&self.parent_id)?; assert!(evaluation::evaluate_initial( &new_block, - timestamp.into(), + self.believed_minimum_timestamp.into(), &self.parent_hash, self.parent_number, &active_parachains, diff --git a/polkadot/network/src/router.rs b/polkadot/network/src/router.rs index 211bc21491..e2828865af 100644 --- a/polkadot/network/src/router.rs +++ b/polkadot/network/src/router.rs @@ -193,14 +193,14 @@ impl Router

if let Some(validity) = produced.validity { let signed = table.sign_and_import(validity.clone()).0; network.with_spec(|_, ctx| - gossip.multicast(ctx, attestation_topic, signed.encode()) + gossip.multicast(ctx, attestation_topic, signed.encode(), false) ); } if let Some(availability) = produced.availability { let signed = table.sign_and_import(availability).0; network.with_spec(|_, ctx| - gossip.multicast(ctx, attestation_topic, signed.encode()) + gossip.multicast(ctx, attestation_topic, signed.encode(), false) ); } }) @@ -225,9 +225,9 @@ impl TableRouter for Router

self.knowledge.lock().note_candidate(hash, Some(block_data), Some(extrinsic)); let mut gossip = self.network.consensus_gossip().write(); self.network.with_spec(|_spec, ctx| { - gossip.multicast(ctx, self.attestation_topic, candidate.encode()); + gossip.multicast(ctx, self.attestation_topic, candidate.encode(), false); if let Some(availability) = availability { - gossip.multicast(ctx, self.attestation_topic, availability.encode()); + gossip.multicast(ctx, self.attestation_topic, availability.encode(), false); } }); } diff --git a/polkadot/parachain/tests/res/adder.wasm b/polkadot/parachain/tests/res/adder.wasm index dd48b0d916..924cc0444a 100644 Binary files a/polkadot/parachain/tests/res/adder.wasm and b/polkadot/parachain/tests/res/adder.wasm differ diff --git a/polkadot/runtime/src/parachains.rs b/polkadot/runtime/src/parachains.rs index 9bfb6e2793..d7c73ebce4 100644 --- a/polkadot/runtime/src/parachains.rs +++ b/polkadot/runtime/src/parachains.rs @@ -24,7 +24,7 @@ use sr_primitives::CheckInherentError; use sr_primitives::traits::{ Extrinsic, Block as BlockT, Hash as HashT, BlakeTwo256, ProvideInherent, }; -use primitives::parachain::{Id, Chain, DutyRoster, AttestedCandidate, Statement}; +use primitives::parachain::{Id as ParaId, Chain, DutyRoster, AttestedCandidate, Statement}; use {system, session}; use srml_support::{StorageValue, StorageMap}; @@ -46,17 +46,17 @@ pub trait Trait: session::Trait { decl_storage! { trait Store for Module as Parachains { // Vector of all parachain IDs. - pub Parachains get(active_parachains): Vec; + pub Parachains get(active_parachains): Vec; // The parachains registered at present. - pub Code get(parachain_code): map Id => Option>; + pub Code get(parachain_code): map ParaId => Option>; // The heads of the parachains registered at present. these are kept sorted. - pub Heads get(parachain_head): map Id => Option>; + pub Heads get(parachain_head): map ParaId => Option>; // Did the parachain heads get updated in this block? DidUpdate: bool; } add_extra_genesis { - config(parachains): Vec<(Id, Vec, Vec)>; + config(parachains): Vec<(ParaId, Vec, Vec)>; config(_phdata): PhantomData; build(|storage: &mut sr_primitives::StorageMap, _: &mut ChildrenStorageMap, config: &GenesisConfig| { use codec::Encode; @@ -134,7 +134,7 @@ decl_module! { /// Register a parachain with given code. /// Fails if given ID is already used. - pub fn register_parachain(id: Id, code: Vec, initial_head_data: Vec) -> Result { + pub fn register_parachain(id: ParaId, code: Vec, initial_head_data: Vec) -> Result { let mut parachains = Self::active_parachains(); match parachains.binary_search(&id) { Ok(_) => fail!("Parachain already exists"), @@ -149,7 +149,7 @@ decl_module! { } /// Deregister a parachain with given id - pub fn deregister_parachain(id: Id) -> Result { + pub fn deregister_parachain(id: ParaId) -> Result { let mut parachains = Self::active_parachains(); match parachains.binary_search(&id) { Ok(idx) => { parachains.remove(idx); } @@ -240,15 +240,15 @@ impl Module { // assumes the inner slice is sorted by id. struct GroupedDutyIter<'a> { next_idx: usize, - inner: &'a [(usize, Id)], + inner: &'a [(usize, ParaId)], } impl<'a> GroupedDutyIter<'a> { - fn new(inner: &'a [(usize, Id)]) -> Self { + fn new(inner: &'a [(usize, ParaId)]) -> Self { GroupedDutyIter { next_idx: 0, inner } } - fn group_for(&mut self, wanted_id: Id) -> Option<&'a [(usize, Id)]> { + fn group_for(&mut self, wanted_id: ParaId) -> Option<&'a [(usize, ParaId)]> { while let Some((id, keys)) = self.next() { if wanted_id == id { return Some(keys) @@ -260,7 +260,7 @@ impl Module { } impl<'a> Iterator for GroupedDutyIter<'a> { - type Item = (Id, &'a [(usize, Id)]); + type Item = (ParaId, &'a [(usize, ParaId)]); fn next(&mut self) -> Option { if self.next_idx == self.inner.len() { return None } @@ -435,11 +435,11 @@ impl ProvideInherent for Module { .extrinsics() .get(T::SET_POSITION as usize) .map_or(false, |xt| { - xt.is_signed() == Some(true) && match extract_function(&xt) { - Some(Call::set_heads(_)) => true, - _ => false, - } - }); + xt.is_signed() == Some(false) && match extract_function(&xt) { + Some(Call::set_heads(_)) => true, + _ => false, + } + }); if !has_heads { return Err(CheckInherentError::Other( @@ -502,7 +502,7 @@ mod tests { type Parachains = Module; - fn new_test_ext(parachains: Vec<(Id, Vec, Vec)>) -> TestExternalities { + fn new_test_ext(parachains: Vec<(ParaId, Vec, Vec)>) -> TestExternalities { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; let authority_keys = [ Keyring::Alice, @@ -629,7 +629,7 @@ mod tests { 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) { + for i in (0..2).map(ParaId::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); } diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm index 1f1baf2a72..6458dacc5a 100644 Binary files a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm and b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm differ diff --git a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm index 910f6d70d0..c98c8c4f0b 100755 Binary files a/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm and b/polkadot/runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.wasm differ diff --git a/polkadot/service/src/chain_spec.rs b/polkadot/service/src/chain_spec.rs index 5d0703ef4e..04ed54ba11 100644 --- a/polkadot/service/src/chain_spec.rs +++ b/polkadot/service/src/chain_spec.rs @@ -78,7 +78,8 @@ fn staging_testnet_config_genesis() -> GenesisConfig { launch_period: 12 * 60 * 24, // 1 day per public referendum voting_period: 12 * 60 * 24 * 3, // 3 days to discuss & vote on an active referendum minimum_deposit: 5000, // 12000 as the minimum deposit for a referendum - public_delay: 0, + public_delay: 10 * 60, + max_lock_periods: 6, }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), @@ -168,7 +169,8 @@ fn testnet_genesis(initial_authorities: Vec) -> GenesisConfig { launch_period: 9, voting_period: 18, minimum_deposit: 10, - public_delay: 0, + public_delay: 10 * 60, + max_lock_periods: 6, }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), diff --git a/polkadot/service/src/lib.rs b/polkadot/service/src/lib.rs index 7bc3034588..05427b752c 100644 --- a/polkadot/service/src/lib.rs +++ b/polkadot/service/src/lib.rs @@ -64,9 +64,6 @@ pub use primitives::{Blake2Hasher}; pub use sr_primitives::traits::ProvideRuntimeApi; pub use chain_spec::ChainSpec; -// wait 1.5 seconds for parachain candidates before releasing a block. -const PARACHAIN_EMPTY_DURATION: Duration = Duration::from_millis(1500); - /// All configuration for the polkadot node. pub type Configuration = FactoryFullConfiguration; @@ -166,25 +163,24 @@ construct_service_factory! { { |config: FactoryFullConfiguration, executor: TaskExecutor| { FullComponents::::new(config, executor) } }, - AuthoritySetup = { |mut service: Self::FullService, executor: TaskExecutor, key: Arc| { + AuthoritySetup = { |mut service: Self::FullService, executor: TaskExecutor, key: Option>| { use polkadot_network::consensus::ConsensusNetwork; let (block_import, link_half) = service.config.custom.grandpa_import_setup.take() .expect("Link Half and Block Import are present for Full Services or setup failed before. qed"); + // always run GRANDPA in order to sync. { - info!("Running Grandpa session as Authority {}", key.public()); - let (voter, oracle) = grandpa::run_grandpa( + let voter = grandpa::run_grandpa( grandpa::Config { gossip_duration: Duration::new(4, 0), // FIXME: make this available through chainspec? - local_key: Some(key.clone()), + local_key: key.clone(), name: Some(service.config.name.clone()) }, link_half, grandpa::NetworkBridge::new(service.network()), )?; - executor.spawn(oracle); executor.spawn(voter); } @@ -200,6 +196,12 @@ construct_service_factory! { })? }; + // run authorship only if authority. + let key = match key { + Some(key) => key, + None => return Ok(service), + }; + let client = service.client(); // collator connections and consensus network both fulfilled by this @@ -210,7 +212,6 @@ construct_service_factory! { consensus_network, service.transaction_pool(), executor.clone(), - PARACHAIN_EMPTY_DURATION, key.clone(), extrinsic_store, ); diff --git a/polkadot/test-parachains/adder/wasm/src/lib.rs b/polkadot/test-parachains/adder/wasm/src/lib.rs index 3156f04f14..1d14c3bc51 100644 --- a/polkadot/test-parachains/adder/wasm/src/lib.rs +++ b/polkadot/test-parachains/adder/wasm/src/lib.rs @@ -19,8 +19,7 @@ #![no_std] #![feature( - alloc, core_intrinsics, lang_items, panic_handler, core_panic_info, - alloc_error_handler + alloc, core_intrinsics, lang_items, core_panic_info, alloc_error_handler )] extern crate alloc;