diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 839519a69526..0e69a91af165 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -204,8 +204,6 @@ build: - mv -v ./target/release/rialto-parachain-collator ./artifacts/ - strip ./target/release/millau-bridge-node - mv -v ./target/release/millau-bridge-node ./artifacts/ - - strip ./target/release/ethereum-poa-relay - - mv -v ./target/release/ethereum-poa-relay ./artifacts/ - strip ./target/release/substrate-relay - mv -v ./target/release/substrate-relay ./artifacts/ - mv -v ./deployments/local-scripts/bridge-entrypoint.sh ./artifacts/ @@ -286,10 +284,6 @@ millau-bridge-node: stage: publish <<: *build-push-image -ethereum-poa-relay: - stage: publish - <<: *build-push-image - substrate-relay: stage: publish <<: *build-push-image diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 000000000000..3941ba8451a1 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,21 @@ +# Lists some code owners. +# +# A codeowner just oversees some part of the codebase. If an owned file is changed then the +# corresponding codeowner receives a review request. An approval of the codeowner might be +# required for merging a PR (depends on repository settings). +# +# For details about syntax, see: +# https://help.github.com/en/articles/about-code-owners +# But here are some important notes: +# +# - Glob syntax is git-like, e.g. `/core` means the core directory in the root, unlike `core` +# which can be everywhere. +# - Multiple owners are supported. +# - Either handle (e.g, @github_user or @github_org/team) or email can be used. Keep in mind, +# that handles might work better because they are more recognizable on GitHub, +# eyou can use them for mentioning unlike an email. +# - The latest matching rule, if multiple, takes precedence. + +# CI +/.github/ @paritytech/ci +/.gitlab-ci.yml @paritytech/ci diff --git a/Cargo.lock b/Cargo.lock index 9d996238141c..115fe33dee38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,16 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" dependencies = [ - "gimli", + "gimli 0.25.0", +] + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli 0.26.1", ] [[package]] @@ -64,9 +73,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ "getrandom 0.2.3", "once_cell", @@ -108,9 +117,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.44" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" +checksum = "0a03e93e97a28fbc9f42fbc5ba0886a3c67eb637b476dbee711f80a6ffe8223d" [[package]] name = "approx" @@ -123,9 +132,9 @@ dependencies = [ [[package]] name = "arbitrary" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577b08a4acd7b99869f863c50011b01eb73424ccc798ecd996f2e24817adfca7" +checksum = "510c76ecefdceada737ea728f4f9a84bd2e1ef29f1ba555e560940fe279954de" [[package]] name = "array_tool" @@ -156,15 +165,15 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "asn1_der" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6e24d2cce90c53b948c46271bfb053e4bdc2db9b5d3f65e20f8cf28a1b7fc3" +checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" [[package]] name = "assert_matches" @@ -237,7 +246,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.1", + "socket2 0.4.2", "waker-fn", "winapi 0.3.9", ] @@ -262,9 +271,9 @@ dependencies = [ [[package]] name = "async-process" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692" +checksum = "83137067e3a2a6a06d67168e49e68a0957d215410473a740cea95a2425c0b7c6" dependencies = [ "async-io", "blocking", @@ -365,9 +374,9 @@ dependencies = [ [[package]] name = "atomic" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281" +checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" dependencies = [ "autocfg", ] @@ -407,11 +416,11 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.61" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" +checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" dependencies = [ - "addr2line", + "addr2line 0.17.0", "cc", "cfg-if 1.0.0", "libc", @@ -441,15 +450,9 @@ checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" [[package]] name = "base58" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" - -[[package]] -name = "base64" -version = "0.12.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" [[package]] name = "base64" @@ -469,11 +472,11 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "beefy-primitives", "fnv", - "futures 0.3.17", + "futures 0.3.18", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -497,12 +500,12 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "jsonrpc-pubsub", @@ -517,12 +520,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -533,6 +536,12 @@ dependencies = [ "sp-std", ] +[[package]] +name = "bimap" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50ae17cabbc8a38a1e3e4c1a6a664e9a09672dc14d0896fa8d865d3a5a446b07" + [[package]] name = "bincode" version = "1.3.3" @@ -544,9 +553,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.59.1" +version = "0.59.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375" +checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" dependencies = [ "bitflags", "cexpr", @@ -567,18 +576,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitvec" -version = "0.19.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321" -dependencies = [ - "funty", - "radium 0.5.3", - "tap", - "wyz", -] - [[package]] name = "bitvec" version = "0.20.4" @@ -586,7 +583,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" dependencies = [ "funty", - "radium 0.6.2", + "radium", "tap", "wyz", ] @@ -688,9 +685,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "blocking" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" +checksum = "046e47d4b2d391b1f6f8b407b1deb8dee56c1852ccd868becf2710f601b5f427" dependencies = [ "async-channel", "async-task", @@ -709,43 +706,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "bp-currency-exchange" -version = "0.1.0" -dependencies = [ - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-std", -] - -[[package]] -name = "bp-eth-poa" -version = "0.1.0" -dependencies = [ - "ethbloom 0.10.0", - "fixed-hash", - "hash-db", - "hex-literal 0.2.1", - "impl-rlp", - "impl-serde", - "libsecp256k1 0.7.0", - "parity-bytes", - "parity-scale-codec", - "plain_hasher", - "primitive-types", - "rlp", - "scale-info", - "serde", - "serde-big-array", - "sp-api", - "sp-io", - "sp-runtime", - "sp-std", - "triehash", -] - [[package]] name = "bp-header-chain" version = "0.1.0" @@ -792,7 +752,7 @@ dependencies = [ name = "bp-messages" version = "0.1.0" dependencies = [ - "bitvec 0.20.4", + "bitvec", "bp-runtime", "frame-support", "frame-system", @@ -908,6 +868,7 @@ version = "0.1.0" dependencies = [ "frame-support", "hash-db", + "hex-literal", "num-traits", "parity-scale-codec", "scale-info", @@ -1007,9 +968,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "memchr", ] @@ -1025,15 +986,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.7.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" +checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" [[package]] name = "byte-slice-cast" -version = "1.0.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c1bf4a04a88c54f589125563643d773f3254b5c38571395e2b591c693bbc81" +checksum = "1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698" [[package]] name = "byte-tools" @@ -1057,12 +1018,6 @@ dependencies = [ "iovec", ] -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - [[package]] name = "bytes" version = "1.1.0" @@ -1095,32 +1050,37 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081e3f0755c1f380c2d010481b6fa2e02973586d5f2b24eebb7a2a1d98b143d8" +checksum = "ba2ae6de944143141f6155a473a6b02f66c7c3f9f47316f802f80204ebfe6e12" dependencies = [ "camino", "cargo-platform", - "semver 0.11.0", - "semver-parser 0.10.2", + "semver 1.0.4", "serde", "serde_json", ] +[[package]] +name = "castaway" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed247d1586918e46f2bbe0f13b06498db8dab5a8c1093f156652e9f2e0a73fc3" + [[package]] name = "cc" -version = "1.0.70" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" dependencies = [ "jobserver", ] [[package]] name = "cexpr" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ "nom", ] @@ -1212,13 +1172,13 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10612c0ec0e0a1ff0e97980647cb058a6e7aedb913d01d009c406b8b7d0b26ee" +checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90" dependencies = [ "glob", "libc", - "libloading 0.7.0", + "libloading 0.7.2", ] [[package]] @@ -1234,7 +1194,6 @@ dependencies = [ "textwrap", "unicode-width", "vec_map", - "yaml-rust", ] [[package]] @@ -1275,9 +1234,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ "core-foundation-sys", "libc", @@ -1285,15 +1244,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpp_demangle" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18a" +checksum = "931ab2a3e6330a07900b8e7ca4e106cdcbb93f2b9a52df55e54ee53d8305b55d" dependencies = [ "cfg-if 1.0.0", ] @@ -1318,36 +1277,35 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6bea67967505247f54fa2c85cf4f6e0e31c4e5692c9b70e4ae58e339067333" +checksum = "cc0cb7df82c8cf8f2e6a8dd394a0932a71369c160cc9b027dca414fced242513" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48194035d2752bdd5bdae429e3ab88676e95f52a2b1355a5d4e809f9e39b1d74" +checksum = "fe4463c15fa42eee909e61e5eac4866b7c6d22d0d8c621e57a0c5380753bfa8c" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli", + "gimli 0.25.0", "log", "regalloc", - "serde", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976efb22fcab4f2cd6bd4e9913764616a54d895c1a23530128d04e03633c555f" +checksum = "793f6a94a053a55404ea16e1700202a88101672b8cd6b4df63e13cde950852bf" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -1355,27 +1313,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dabb5fe66e04d4652e434195b45ae65b5c8172d520247b8f66d8df42b2b45dc" -dependencies = [ - "serde", -] +checksum = "44aa1846df275bce5eb30379d65964c7afc63c05a117076e62a119c25fe174be" [[package]] name = "cranelift-entity" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3329733e4d4b8e91c809efcaa4faee80bf66f20164e3dd16d707346bd3494799" +checksum = "a3a45d8d6318bf8fc518154d9298eab2a8154ec068a8885ff113f6db8d69bb3a" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279afcc0d3e651b773f94837c3d581177b348c8d69e928104b2e9fccb226f921" +checksum = "e07339bd461766deb7605169de039e01954768ff730fa1254e149001884a8525" dependencies = [ "cranelift-codegen", "log", @@ -1385,9 +1340,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c04d1fe6a5abb5bb0edc78baa8ef238370fb8e389cc88b6d153f7c3e9680425" +checksum = "03e2fca76ff57e0532936a71e3fc267eae6a19a86656716479c66e7f912e3d7b" dependencies = [ "cranelift-codegen", "libc", @@ -1396,26 +1351,25 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.76.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d260ad44f6fd2c91f7f5097191a2a9e3edcbb36df1fb787b600dad5ea148ec" +checksum = "1f46fec547a1f8a32c54ea61c28be4f4ad234ad95342b718a9a9adcaadb0c778" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "itertools", "log", - "serde", "smallvec", - "thiserror", "wasmparser", + "wasmtime-types", ] [[package]] name = "crc32fast" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" +checksum = "3825b1e8580894917dc4468cb634a1b4e9745fddc854edad72d9c04644c0319f" dependencies = [ "cfg-if 1.0.0", ] @@ -1532,7 +1486,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "sc-cli", "sc-service", @@ -1542,12 +1496,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1565,12 +1519,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-client", "sc-client-api", @@ -1595,11 +1549,11 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-primitives", "sc-client-api", @@ -1615,10 +1569,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1638,10 +1592,10 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "parity-scale-codec", "polkadot-node-primitives", @@ -1661,7 +1615,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1690,7 +1644,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "frame-executive", "frame-support", @@ -1708,7 +1662,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1726,7 +1680,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1755,7 +1709,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1766,7 +1720,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1783,7 +1737,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1801,7 +1755,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1818,7 +1772,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1840,7 +1794,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1851,7 +1805,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1868,7 +1822,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1880,24 +1834,24 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.38" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003cb79c1c6d1c93344c7e1201bb51c2148f24ec2bd9c253709d6b2efb796515" +checksum = "1bc6d233563261f8db6ffb83bbaad5a73837a6e6b28868e926337ebbdece0be3" dependencies = [ "curl-sys", "libc", "openssl-probe", "openssl-sys", "schannel", - "socket2 0.4.1", + "socket2 0.4.2", "winapi 0.3.9", ] [[package]] name = "curl-sys" -version = "0.4.45+curl-7.78.0" +version = "0.4.51+curl-7.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de9e5a72b1c744eb5dd20b2be4d7eb84625070bb5c4ab9b347b70464ab1e62eb" +checksum = "d130987e6a6a34fe0889e1083022fa48cd90e6709a84be3fb8dd95801de5af20" dependencies = [ "cc", "libc", @@ -1974,14 +1928,14 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.16" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.3.3", + "rustc_version 0.4.0", "syn", ] @@ -2005,9 +1959,9 @@ dependencies = [ [[package]] name = "directories" -version = "3.0.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" dependencies = [ "dirs-sys", ] @@ -2072,6 +2026,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + [[package]] name = "dyn-clonable" version = "0.9.0" @@ -2101,9 +2061,9 @@ checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "ed25519" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc" +checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" dependencies = [ "signature", ] @@ -2130,9 +2090,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "encoding_rs" -version = "0.8.28" +version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" +checksum = "a74ea89a0a1b98f6332de42c95baff457ada66d1cb4030f9ff151b2041a1c746" dependencies = [ "cfg-if 1.0.0", ] @@ -2225,20 +2185,11 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" -[[package]] -name = "erased-serde" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa" -dependencies = [ - "serde", -] - [[package]] name = "errno" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ "errno-dragonfly", "libc", @@ -2247,64 +2198,19 @@ dependencies = [ [[package]] name = "errno-dragonfly" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ - "gcc", + "cc", "libc", ] -[[package]] -name = "ethabi" -version = "14.0.0" -source = "git+https://github.com/svyatonik/ethabi.git?branch=bump-deps#19bb6ea4a8099af1d70ab8c0ddcd3dec8fa45ed8" -dependencies = [ - "anyhow", - "ethereum-types", - "hex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethabi-contract" -version = "11.0.0" -source = "git+https://github.com/svyatonik/ethabi.git?branch=bump-deps#19bb6ea4a8099af1d70ab8c0ddcd3dec8fa45ed8" - -[[package]] -name = "ethabi-derive" -version = "14.0.0" -source = "git+https://github.com/svyatonik/ethabi.git?branch=bump-deps#19bb6ea4a8099af1d70ab8c0ddcd3dec8fa45ed8" -dependencies = [ - "anyhow", - "ethabi", - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "ethbloom" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a621dcebea74f2a6f2002d0a885c81ccf6cbdf86760183316a7722b5707ca4" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "tiny-keccak", -] - [[package]] name = "ethbloom" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779864b9c7f7ead1f092972c3257496c6a84b46dba2ce131dd8a282cb2cc5972" +checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" dependencies = [ "crunchy", "fixed-hash", @@ -2313,64 +2219,13 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "ethereum-contract-builtin" -version = "0.1.0" -dependencies = [ - "ethereum-types", - "finality-grandpa", - "hex", - "log", - "parity-scale-codec", - "rialto-runtime", - "sc-finality-grandpa", - "sp-blockchain", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", -] - -[[package]] -name = "ethereum-poa-relay" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-std", - "async-trait", - "bp-currency-exchange", - "bp-eth-poa", - "clap", - "ethabi", - "ethabi-contract", - "ethabi-derive", - "exchange-relay", - "futures 0.3.17", - "headers-relay", - "hex", - "hex-literal 0.3.3", - "libsecp256k1 0.7.0", - "log", - "num-traits", - "parity-scale-codec", - "relay-ethereum-client", - "relay-rialto-client", - "relay-substrate-client", - "relay-utils", - "rialto-runtime", - "serde_json", - "sp-core", - "sp-keyring", - "sp-runtime", - "thiserror", -] - [[package]] name = "ethereum-types" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd6bde671199089e601e8d47e153368b893ef885f11f365a3261ec58153c211" +checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" dependencies = [ - "ethbloom 0.11.0", + "ethbloom", "fixed-hash", "impl-rlp", "impl-serde", @@ -2384,29 +2239,13 @@ version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" -[[package]] -name = "exchange-relay" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-std", - "async-trait", - "backoff", - "futures 0.3.17", - "log", - "num-traits", - "parking_lot 0.11.2", - "relay-utils", - "thiserror", -] - [[package]] name = "exit-future" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", ] [[package]] @@ -2456,7 +2295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "num-traits", @@ -2473,8 +2312,7 @@ dependencies = [ "async-trait", "backoff", "bp-header-chain", - "futures 0.3.17", - "headers-relay", + "futures 0.3.18", "log", "num-traits", "parking_lot 0.11.2", @@ -2495,9 +2333,9 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" +checksum = "398ea4fabe40b9b0d885340a2a991a44c8a645624075ad966d21f88688e2b69e" [[package]] name = "flate2" @@ -2518,25 +2356,10 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", ] @@ -2554,7 +2377,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -2574,7 +2397,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "Inflector", "chrono", @@ -2600,7 +2423,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -2614,7 +2437,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -2629,9 +2452,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "14.0.0" +version = "14.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96616f82e069102b95a72c87de4c84d2f87ef7f0f20630e78ce3824436483110" +checksum = "37ed5e5c346de62ca5c184b4325a6600d1eaca210666e4606fe4e449574978d0" dependencies = [ "cfg-if 1.0.0", "parity-scale-codec", @@ -2642,7 +2465,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "bitflags", "frame-metadata", @@ -2657,6 +2480,7 @@ dependencies = [ "smallvec", "sp-arithmetic", "sp-core", + "sp-core-hashing-proc-macro", "sp-inherents", "sp-io", "sp-runtime", @@ -2664,12 +2488,13 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-tracing", + "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2681,7 +2506,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2693,7 +2518,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "proc-macro2", "quote", @@ -2703,7 +2528,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "log", @@ -2720,7 +2545,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -2735,7 +2560,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "sp-api", @@ -2744,7 +2569,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "sp-api", @@ -2810,9 +2635,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca" +checksum = "8cd0210d8c325c245ff06fd95a3b13689a1a276ac8cfa8e8720cb840bfb84b9e" dependencies = [ "futures-channel", "futures-core", @@ -2825,9 +2650,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" +checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27" dependencies = [ "futures-core", "futures-sink", @@ -2835,15 +2660,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" +checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" [[package]] name = "futures-executor" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c" +checksum = "7b808bf53348a36cab739d7e04755909b9fcaaa69b7d7e588b37b6ec62704c97" dependencies = [ "futures-core", "futures-task", @@ -2853,9 +2678,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" +checksum = "e481354db6b5c353246ccf6a728b0c5511d752c08da7260546fc0933869daa11" [[package]] name = "futures-lite" @@ -2874,12 +2699,10 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" +checksum = "a89f17b21645bc4ed773c69af9c9a0effd4a3f1a3876eadd453469f8854e7fdd" dependencies = [ - "autocfg", - "proc-macro-hack", "proc-macro2", "quote", "syn", @@ -2898,15 +2721,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" +checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" [[package]] name = "futures-task" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" +checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12" [[package]] name = "futures-timer" @@ -2922,11 +2745,10 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" +checksum = "41d22213122356472061ac0f1ab2cee28d2bac8491410fd68c2af53d1cedb83e" dependencies = [ - "autocfg", "futures 0.1.31", "futures-channel", "futures-core", @@ -2937,17 +2759,9 @@ dependencies = [ "memchr", "pin-project-lite 0.2.7", "pin-utils", - "proc-macro-hack", - "proc-macro-nested", "slab", ] -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" - [[package]] name = "generic-array" version = "0.12.4" @@ -3012,6 +2826,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" + [[package]] name = "glob" version = "0.3.0" @@ -3046,9 +2866,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.4" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472" +checksum = "7fd819562fcebdac5afc5c113c3ec36f902840b70fd4fc458799c8ce4607ae55" dependencies = [ "bytes 1.1.0", "fnv", @@ -3065,9 +2885,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "3.5.5" +version = "4.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3" +checksum = "8ad84da8f63da982543fc85fcabaee2ad1fdd809d99d64a48887e2e942ddfe46" dependencies = [ "log", "pest", @@ -3102,61 +2922,21 @@ dependencies = [ ] [[package]] -name = "headers" -version = "0.3.4" +name = "heck" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b7591fb62902706ae8e7aaff416b1b0fa2c0fd0878b46dc13baa3712d8a855" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ - "base64 0.13.0", - "bitflags", - "bytes 1.1.0", - "headers-core", - "http", - "mime", - "sha-1 0.9.8", - "time 0.1.44", + "unicode-segmentation", ] [[package]] -name = "headers-core" -version = "0.2.0" +name = "hermit-abi" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ - "http", -] - -[[package]] -name = "headers-relay" -version = "0.1.0" -dependencies = [ - "async-std", - "async-trait", - "backoff", - "futures 0.3.17", - "linked-hash-map", - "log", - "num-traits", - "parking_lot 0.11.2", - "relay-utils", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", + "libc", ] [[package]] @@ -3167,28 +2947,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961de220ec9a91af2e1e5bd80d02109155695e516771762381ef8581317066e0" -dependencies = [ - "hex-literal-impl", - "proc-macro-hack", -] - -[[package]] -name = "hex-literal" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b" - -[[package]] -name = "hex-literal-impl" -version = "0.2.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853f769599eb31de176303197b7ba4973299c38c7a7604a6bc88c3eef05b9b46" -dependencies = [ - "proc-macro-hack", -] +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" [[package]] name = "hex_fmt" @@ -3251,9 +3012,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ "bytes 1.1.0", "fnv", @@ -3262,9 +3023,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ "bytes 1.1.0", "http", @@ -3279,9 +3040,9 @@ checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" [[package]] name = "httpdate" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "humantime" @@ -3300,9 +3061,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.12" +version = "0.14.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd" +checksum = "436ec0091e4f20e655156a30a0df3770fe2900aa301e548e08446ec794b6953c" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -3315,7 +3076,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite 0.2.7", - "socket2 0.4.1", + "socket2 0.4.2", "tokio", "tower-service", "tracing", @@ -3339,19 +3100,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes 1.1.0", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "idna" version = "0.1.5" @@ -3376,9 +3124,9 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a83ec4af652890ac713ffd8dc859e650420a5ef47f7b9be29b6664ab50fbc8" +checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" dependencies = [ "if-addrs-sys", "libc", @@ -3402,7 +3150,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.17", + "futures 0.3.18", "futures-lite", "if-addrs", "ipnet", @@ -3431,9 +3179,9 @@ dependencies = [ [[package]] name = "impl-serde" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" dependencies = [ "serde", ] @@ -3462,9 +3210,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if 1.0.0", ] @@ -3490,10 +3238,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 2.0.2", ] +[[package]] +name = "io-lifetimes" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278e90d6f8a6c76a8334b336e306efa3c5f2b604048cbfd486d6f49878e3af14" +dependencies = [ + "rustc_version 0.4.0", + "winapi 0.3.9", +] + [[package]] name = "iovec" version = "0.1.4" @@ -3505,9 +3263,9 @@ dependencies = [ [[package]] name = "ip_network" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b746553d2f4a1ca26fab939943ddfb217a091f34f53571620a8e3d30691303" +checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" @@ -3518,7 +3276,7 @@ dependencies = [ "socket2 0.3.19", "widestring", "winapi 0.3.9", - "winreg 0.6.2", + "winreg", ] [[package]] @@ -3529,11 +3287,12 @@ checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" [[package]] name = "isahc" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431445cb4ba85a80cb1438a9ae8042dadb78ae4046ecee89ad027b614aa0ddb7" +checksum = "d140e84730d325378912ede32d7cd53ef1542725503b3353e5ec8113c7c6f588" dependencies = [ "async-channel", + "castaway", "crossbeam-utils", "curl", "curl-sys", @@ -3579,9 +3338,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1866b355d9c878e5e607473cbe3f63282c0b7aad2db1dbebf55076c686918254" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -3606,8 +3365,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" dependencies = [ "derive_more", - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-pubsub", "log", "serde", @@ -3615,28 +3374,13 @@ dependencies = [ "url 1.7.2", ] -[[package]] -name = "jsonrpc-core" -version = "17.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4467ab6dfa369b69e52bd0692e480c4d117410538526a57a304a0f2250fd95e" -dependencies = [ - "futures 0.3.17", - "futures-executor", - "futures-util", - "log", - "serde", - "serde_derive", - "serde_json", -] - [[package]] name = "jsonrpc-core" version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-executor", "futures-util", "log", @@ -3651,7 +3395,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-client-transports", ] @@ -3673,9 +3417,9 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "hyper", - "jsonrpc-core 18.0.0", + "jsonrpc-core", "jsonrpc-server-utils", "log", "net2", @@ -3689,8 +3433,8 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" dependencies = [ - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-server-utils", "log", "parity-tokio-ipc", @@ -3704,8 +3448,8 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" dependencies = [ - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "lazy_static", "log", "parking_lot 0.11.2", @@ -3720,9 +3464,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" dependencies = [ "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "globset", - "jsonrpc-core 18.0.0", + "jsonrpc-core", "lazy_static", "log", "tokio", @@ -3737,8 +3481,8 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" dependencies = [ - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-server-utils", "log", "parity-ws", @@ -3746,6 +3490,18 @@ dependencies = [ "slab", ] +[[package]] +name = "jsonrpsee" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373a33d987866ccfe1af4bc11b089dce941764313f9fd8b7cf13fcb51b72dc5" +dependencies = [ + "jsonrpsee-proc-macros 0.4.1", + "jsonrpsee-types 0.4.1", + "jsonrpsee-utils", + "jsonrpsee-ws-client 0.4.1", +] + [[package]] name = "jsonrpsee-proc-macros" version = "0.3.1" @@ -3760,6 +3516,19 @@ dependencies = [ "syn", ] +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d802063f7a3c867456955f9d2f15eb3ee0edb5ec9ec2b5526324756759221c0f" +dependencies = [ + "log", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "jsonrpsee-types" version = "0.3.1" @@ -3778,6 +3547,36 @@ dependencies = [ "thiserror", ] +[[package]] +name = "jsonrpsee-types" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f778cf245158fbd8f5d50823a2e9e4c708a40be164766bd35e9fb1d86715b2" +dependencies = [ + "anyhow", + "async-trait", + "beef", + "futures-channel", + "futures-util", + "hyper", + "log", + "serde", + "serde_json", + "soketto 0.7.1", + "thiserror", +] + +[[package]] +name = "jsonrpsee-utils" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0109c4f972058f3b1925b73a17210aff7b63b65967264d0045d15ee88fe84f0c" +dependencies = [ + "arrayvec 0.7.2", + "beef", + "jsonrpsee-types 0.4.1", +] + [[package]] name = "jsonrpsee-ws-client" version = "0.3.1" @@ -3786,8 +3585,8 @@ checksum = "9841352dbecf4c2ed5dc71698df9f1660262ae4e0b610e968602529bdbcf7b30" dependencies = [ "async-trait", "fnv", - "futures 0.3.17", - "jsonrpsee-types", + "futures 0.3.18", + "jsonrpsee-types 0.3.1", "log", "pin-project 1.0.8", "rustls", @@ -3802,6 +3601,30 @@ dependencies = [ "url 2.2.2", ] +[[package]] +name = "jsonrpsee-ws-client" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "559aa56fc402af206c00fc913dc2be1d9d788dcde045d14df141a535245d35ef" +dependencies = [ + "arrayvec 0.7.2", + "async-trait", + "fnv", + "futures 0.3.18", + "http", + "jsonrpsee-types 0.4.1", + "log", + "pin-project 1.0.8", + "rustls-native-certs", + "serde", + "serde_json", + "soketto 0.7.1", + "thiserror", + "tokio", + "tokio-rustls", + "tokio-util", +] + [[package]] name = "keccak" version = "0.1.0" @@ -3898,9 +3721,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.103" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" +checksum = "8521a1b57e76b1ec69af7599e75e38e7b7fad6610f037db8c79b127201b5d119" [[package]] name = "libloading" @@ -3914,9 +3737,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a" +checksum = "afe203d669ec979b7128619bae5a63b7b42e9203c1b29146079ee05e2f604b52" dependencies = [ "cfg-if 1.0.0", "winapi 0.3.9", @@ -3930,9 +3753,9 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libnghttp2-sys" -version = "0.1.6+1.43.0" +version = "0.1.7+1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0af55541a8827e138d59ec9e5877fb6095ece63fb6f4da45e7491b4fbd262855" +checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" dependencies = [ "cc", "libc", @@ -3940,13 +3763,13 @@ dependencies = [ [[package]] name = "libp2p" -version = "0.39.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9004c06878ef8f3b4b4067e69a140d87ed20bf777287f82223e49713b36ee433" +checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" dependencies = [ "atomic", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3956,12 +3779,14 @@ dependencies = [ "libp2p-identify", "libp2p-kad", "libp2p-mdns", + "libp2p-metrics", "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-plaintext", "libp2p-pnet", "libp2p-relay", + "libp2p-rendezvous", "libp2p-request-response", "libp2p-swarm", "libp2p-swarm-derive", @@ -3979,19 +3804,19 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9b4abdeaa420593a297c8592f63fad4234f4b88dc9343b8fd8e736c35faa59" +checksum = "bef22d9bba1e8bcb7ec300073e6802943fe8abb8190431842262b5f1c30abba1" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "lazy_static", - "libsecp256k1 0.5.0", + "libsecp256k1", "log", "multiaddr", "multihash 0.14.0", @@ -4000,36 +3825,36 @@ dependencies = [ "pin-project 1.0.8", "prost", "prost-build", - "rand 0.7.3", + "rand 0.8.4", "ring", "rw-stream-sink", "sha2 0.9.8", "smallvec", "thiserror", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", "zeroize", ] [[package]] name = "libp2p-deflate" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66097fccc0b7f8579f90a03ea76ba6196332ea049fd07fd969490a06819dcdc8" +checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" dependencies = [ "flate2", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ff08b3196b85a17f202d80589e93b1660a574af67275706657fdc762e42c32" +checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" dependencies = [ "async-std-resolver", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "smallvec", @@ -4038,13 +3863,13 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404eca8720967179dac7a5b4275eb91f904a53859c69ca8d018560ad6beb214f" +checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", @@ -4056,16 +3881,16 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cc48709bcbc3a3321f08a73560b4bbb4166a7d56f6fdb615bc775f4f91058e" +checksum = "dfeead619eb5dac46e65acc78c535a60aaec803d1428cca6407c3a4fc74d698d" dependencies = [ "asynchronous-codec 0.6.0", - "base64 0.13.0", + "base64", "byteorder", "bytes 1.1.0", "fnv", - "futures 0.3.17", + "futures 0.3.18", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -4076,20 +3901,21 @@ dependencies = [ "regex", "sha2 0.9.8", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "wasm-timer", ] [[package]] name = "libp2p-identify" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b61f6cf07664fb97016c318c4d4512b3dd4cc07238607f3f0163245f99008e" +checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", + "lru 0.6.6", "prost", "prost-build", "smallvec", @@ -4098,16 +3924,16 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50ed78489c87924235665a0ab345b298ee34dff0f7ad62c0ba6608b2144fb75e" +checksum = "a2297dc0ca285f3a09d1368bde02449e539b46f94d32d53233f53f6625bcd3ba" dependencies = [ "arrayvec 0.5.2", "asynchronous-codec 0.6.0", "bytes 1.1.0", "either", "fnv", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", @@ -4117,21 +3943,21 @@ dependencies = [ "sha2 0.9.8", "smallvec", "uint", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", "wasm-timer", ] [[package]] name = "libp2p-mdns" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a29e6cbc2a24b8471b6567e580a0e8e7b70a6d0f0ea2be0844d1e842d7d4fa33" +checksum = "14c864b64bdc8a84ff3910a0df88e6535f256191a450870f1e7e10cbf8e64d45" dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.17", + "futures 0.3.18", "if-watch", "lazy_static", "libp2p-core", @@ -4139,37 +3965,51 @@ dependencies = [ "log", "rand 0.8.4", "smallvec", - "socket2 0.4.1", + "socket2 0.4.2", "void", ] +[[package]] +name = "libp2p-metrics" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4af432fcdd2f8ba4579b846489f8f0812cfd738ced2c0af39df9b1c48bbb6ab2" +dependencies = [ + "libp2p-core", + "libp2p-identify", + "libp2p-kad", + "libp2p-ping", + "libp2p-swarm", + "open-metrics-client", +] + [[package]] name = "libp2p-mplex" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "313d9ea526c68df4425f580024e67a9d3ffd49f2c33de5154b1f5019816f7a99" +checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "nohash-hasher", "parking_lot 0.11.2", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", ] [[package]] name = "libp2p-noise" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1db7212f342b6ba7c981cc40e31f76e9e56cb48e65fa4c142ecaca5839523e" +checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" dependencies = [ "bytes 1.1.0", "curve25519-dalek 3.2.0", - "futures 0.3.17", + "futures 0.3.18", "lazy_static", "libp2p-core", "log", @@ -4185,11 +4025,11 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2482cfd9eb0b7a0baaf3e7b329dc4f2785181a161b1a47b7192f8d758f54a439" +checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", @@ -4200,28 +4040,28 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b4783e5423870b9a5c199f65a7a3bc66d86ab56b2b9beebf3c338d889cf8e4" +checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "prost", "prost-build", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", ] [[package]] name = "libp2p-pnet" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cb4dd4b917e5b40ddefe49b96b07adcd8d342e0317011d175b7b2bb1dcc974" +checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "log", "pin-project 1.0.8", "rand 0.7.3", @@ -4231,13 +4071,13 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0133f6cfd81cdc16e716de2982e012c62e6b9d4f12e41967b3ee361051c622aa" +checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libp2p-core", "libp2p-swarm", @@ -4247,39 +4087,60 @@ dependencies = [ "prost-build", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-rendezvous" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" +dependencies = [ + "asynchronous-codec 0.6.0", + "bimap", + "futures 0.3.18", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.8.4", + "sha2 0.9.8", + "thiserror", + "unsigned-varint 0.7.1", "void", "wasm-timer", ] [[package]] name = "libp2p-request-response" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cdae44b6821466123af93cbcdec7c9e6ba9534a8af9cdc296446d39416d241" +checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" dependencies = [ "async-trait", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", - "lru 0.6.6", - "minicbor", + "lru 0.7.0", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "wasm-timer", ] [[package]] name = "libp2p-swarm" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7083861341e1555467863b4cd802bea1e8c4787c0f7b5110097d0f1f3248f9a9" +checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" dependencies = [ "either", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "rand 0.7.3", @@ -4290,9 +4151,9 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8cb308d4fc854869f5abb54fdab0833d2cf670d407c745849dc47e6e08d79c" +checksum = "072c290f727d39bdc4e9d6d1c847978693d25a673bd757813681e33e5f6c00c2" dependencies = [ "quote", "syn", @@ -4300,40 +4161,40 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79edd26b6b4bb5feee210dcda562dca186940dfecb0024b979c3f50824b3bf28" +checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" dependencies = [ "async-io", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "if-watch", "ipnet", "libc", "libp2p-core", "log", - "socket2 0.4.1", + "socket2 0.4.2", ] [[package]] name = "libp2p-uds" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280e793440dd4e9f273d714f4497325c72cddb0fe85a49f9a03c88f41dd20182" +checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" dependencies = [ "async-std", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f553b7140fad3d7a76f50497b0ea591e26737d9607428a75509fc191e4d1b1f6" +checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -4343,29 +4204,29 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf99dcbf5063e9d59087f61b1e85c686ceab2f5abedb472d32288065c0e5e27" +checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" dependencies = [ "either", - "futures 0.3.17", + "futures 0.3.18", "futures-rustls", "libp2p-core", "log", "quicksink", "rw-stream-sink", - "soketto 0.4.2", + "soketto 0.7.1", "url 2.2.2", "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "214cc0dd9c37cbed27f0bb1eba0c41bbafdb93a8be5e9d6ae1e6b4b42cd044bf" +checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "parking_lot 0.11.2", "thiserror", @@ -4384,44 +4245,6 @@ dependencies = [ "libc", ] -[[package]] -name = "libsecp256k1" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core 0.2.2", - "libsecp256k1-gen-ecmult 0.2.1", - "libsecp256k1-gen-genmult 0.2.1", - "rand 0.7.3", - "serde", - "sha2 0.9.8", - "typenum", -] - -[[package]] -name = "libsecp256k1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core 0.2.2", - "libsecp256k1-gen-ecmult 0.2.1", - "libsecp256k1-gen-genmult 0.2.1", - "rand 0.7.3", - "serde", - "sha2 0.9.8", - "typenum", -] - [[package]] name = "libsecp256k1" version = "0.7.0" @@ -4429,29 +4252,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" dependencies = [ "arrayref", - "base64 0.13.0", + "base64", "digest 0.9.0", "hmac-drbg", - "libsecp256k1-core 0.3.0", - "libsecp256k1-gen-ecmult 0.3.0", - "libsecp256k1-gen-genmult 0.3.0", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", "rand 0.8.4", "serde", "sha2 0.9.8", "typenum", ] -[[package]] -name = "libsecp256k1-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - [[package]] name = "libsecp256k1-core" version = "0.3.0" @@ -4463,31 +4275,13 @@ dependencies = [ "subtle", ] -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core 0.2.2", -] - [[package]] name = "libsecp256k1-gen-ecmult" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" dependencies = [ - "libsecp256k1-core 0.3.0", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core 0.2.2", + "libsecp256k1-core", ] [[package]] @@ -4496,7 +4290,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" dependencies = [ - "libsecp256k1-core 0.3.0", + "libsecp256k1-core", ] [[package]] @@ -4536,6 +4330,12 @@ dependencies = [ "statrs", ] +[[package]] +name = "linux-raw-sys" +version = "0.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687387ff42ec7ea4f2149035a5675fedb675d26f98db90a1846ac63d3addb5f5" + [[package]] name = "lock_api" version = "0.3.4" @@ -4649,9 +4449,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "matrixmultiply" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741" +checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" dependencies = [ "rawpointer", ] @@ -4681,6 +4481,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4647a11b578fead29cdbb34d4adef8dd3dc35b876c9c6d5240d83f205abfe96e" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.4" @@ -4736,21 +4545,22 @@ dependencies = [ "async-trait", "bp-messages", "bp-runtime", - "futures 0.3.17", + "futures 0.3.18", "hex", "log", "num-traits", "parking_lot 0.11.2", "relay-utils", + "sp-arithmetic", ] [[package]] name = "metered-channel" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "thiserror", "tracing", @@ -4758,11 +4568,11 @@ dependencies = [ [[package]] name = "mick-jaeger" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" +checksum = "eaa77fad8461bb1e0d01be11299e24c6e544007715ed442bfec29f165dc487ae" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "rand 0.7.3", "thrift", ] @@ -4771,14 +4581,18 @@ dependencies = [ name = "millau-bridge-node" version = "0.1.0" dependencies = [ + "beefy-gadget", + "beefy-gadget-rpc", + "beefy-primitives", "bp-millau", "bp-runtime", "frame-benchmarking", "frame-benchmarking-cli", - "jsonrpc-core 18.0.0", + "jsonrpc-core", "millau-runtime", "node-inspect", "pallet-bridge-messages", + "pallet-mmr-rpc", "pallet-transaction-payment-rpc", "sc-basic-authorship", "sc-cli", @@ -4809,6 +4623,7 @@ dependencies = [ name = "millau-runtime" version = "0.1.0" dependencies = [ + "beefy-primitives", "bp-header-chain", "bp-messages", "bp-millau", @@ -4821,14 +4636,18 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "hex-literal 0.3.3", + "hex-literal", "pallet-aura", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", "pallet-bridge-dispatch", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-bridge-token-swap", "pallet-grandpa", + "pallet-mmr", + "pallet-mmr-primitives", "pallet-randomness-collective-flip", "pallet-session", "pallet-shift-session-manager", @@ -4862,24 +4681,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] -name = "minicbor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0d" -dependencies = [ - "minicbor-derive", -] - -[[package]] -name = "minicbor-derive" -version = "0.6.4" +name = "minimal-lexical" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" @@ -4912,9 +4717,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" dependencies = [ "libc", "log", @@ -4958,9 +4763,9 @@ dependencies = [ [[package]] name = "more-asserts" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "multiaddr" @@ -4976,7 +4781,7 @@ dependencies = [ "percent-encoding 2.1.0", "serde", "static_assertions", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "url 2.2.2", ] @@ -5018,7 +4823,7 @@ dependencies = [ "generic-array 0.14.4", "multihash-derive", "sha2 0.9.8", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", ] [[package]] @@ -5043,16 +4848,16 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" +checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" dependencies = [ "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "log", "pin-project 1.0.8", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", ] [[package]] @@ -5093,24 +4898,6 @@ dependencies = [ "rand 0.8.4", ] -[[package]] -name = "native-tls" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "net2" version = "0.2.37" @@ -5125,7 +4912,7 @@ dependencies = [ [[package]] name = "node-inspect" version = "0.9.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "derive_more", "parity-scale-codec", @@ -5153,13 +4940,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "6.1.2" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2" +checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" dependencies = [ - "bitvec 0.19.5", - "funty", "memchr", + "minimal-lexical", "version_check", ] @@ -5257,9 +5043,9 @@ dependencies = [ [[package]] name = "object" -version = "0.26.2" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2" +checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" dependencies = [ "crc32fast", "indexmap", @@ -5285,17 +5071,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] -name = "openssl" -version = "0.10.36" +name = "open-metrics-client" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a" +checksum = "7337d80c23c2d8b1349563981bc4fb531220733743ba8115454a67b181173f0d" dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", + "dtoa", + "itoa", + "open-metrics-client-derive-text-encode", + "owning_ref", +] + +[[package]] +name = "open-metrics-client-derive-text-encode" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c83b586f00268c619c1cb3340ec1a6f59dd9ba1d9833a273a68e6d5cd8ffc" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -5306,9 +5101,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.66" +version = "0.9.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82" +checksum = "7df13d165e607909b363a4757a6f133f8a818a74e9d3a98d09c6128e15fa4c73" dependencies = [ "autocfg", "cc", @@ -5338,7 +5133,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5354,7 +5149,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5370,7 +5165,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5385,7 +5180,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5409,7 +5204,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5424,7 +5219,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5439,7 +5234,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "beefy-primitives", "frame-support", @@ -5447,63 +5242,27 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "serde", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" -dependencies = [ - "beefy-merkle-tree", - "beefy-primitives", - "frame-support", - "frame-system", - "hex", - "libsecp256k1 0.7.0", - "log", - "pallet-beefy", - "pallet-mmr", - "pallet-mmr-primitives", - "pallet-session", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" -dependencies = [ - "frame-support", - "frame-system", - "log", - "pallet-treasury", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", + "serde", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-bridge-currency-exchange" -version = "0.1.0" +name = "pallet-beefy-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "bp-currency-exchange", - "bp-header-chain", - "frame-benchmarking", + "beefy-merkle-tree", + "beefy-primitives", "frame-support", "frame-system", + "hex", + "libsecp256k1", "log", + "pallet-beefy", + "pallet-mmr", + "pallet-mmr-primitives", + "pallet-session", "parity-scale-codec", "scale-info", "serde", @@ -5514,14 +5273,14 @@ dependencies = [ ] [[package]] -name = "pallet-bridge-dispatch" -version = "0.1.0" +name = "pallet-bounties" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "bp-message-dispatch", - "bp-runtime", "frame-support", "frame-system", "log", + "pallet-treasury", "parity-scale-codec", "scale-info", "sp-core", @@ -5531,19 +5290,17 @@ dependencies = [ ] [[package]] -name = "pallet-bridge-eth-poa" +name = "pallet-bridge-dispatch" version = "0.1.0" dependencies = [ - "bp-eth-poa", - "frame-benchmarking", + "bp-message-dispatch", + "bp-runtime", "frame-support", "frame-system", - "hex-literal 0.3.3", - "libsecp256k1 0.7.0", "log", "parity-scale-codec", "scale-info", - "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", @@ -5577,7 +5334,7 @@ dependencies = [ name = "pallet-bridge-messages" version = "0.1.0" dependencies = [ - "bitvec 0.20.4", + "bitvec", "bp-message-dispatch", "bp-messages", "bp-runtime", @@ -5585,7 +5342,7 @@ dependencies = [ "frame-support", "frame-system", "hex", - "hex-literal 0.3.3", + "hex-literal", "log", "num-traits", "pallet-balances", @@ -5625,7 +5382,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5642,7 +5399,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5658,7 +5415,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5678,7 +5435,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5695,7 +5452,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5718,7 +5475,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5734,7 +5491,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5753,7 +5510,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5769,7 +5526,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5786,7 +5543,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5804,7 +5561,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5820,9 +5577,9 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "jsonrpc-core 18.0.0", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "pallet-mmr-primitives", @@ -5837,7 +5594,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5851,7 +5608,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5865,7 +5622,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5882,7 +5639,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5896,7 +5653,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5910,7 +5667,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5926,7 +5683,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -5962,7 +5719,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5983,7 +5740,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5994,7 +5751,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -6008,7 +5765,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-benchmarking", "frame-support", @@ -6026,7 +5783,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -6044,7 +5801,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -6061,9 +5818,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "jsonrpc-core 18.0.0", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "pallet-transaction-payment-rpc-runtime-api", @@ -6078,7 +5835,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6089,7 +5846,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -6105,7 +5862,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -6120,7 +5877,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-support", "frame-system", @@ -6133,8 +5890,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "frame-support", "frame-system", @@ -6152,7 +5909,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=master#9379cd6c1863ea846ad6c6a8cbbc99848dd5d693" +source = "git+https://github.com/paritytech/cumulus?branch=master#5b245a21eb84ff7b1da6b47ad4386bda3dfb5880" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6162,17 +5919,11 @@ dependencies = [ "serde", ] -[[package]] -name = "parity-bytes" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" - [[package]] name = "parity-db" -version = "0.3.2" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b679c6acc14fac74382942e2b73bea441686a33430b951ea03b5aeb6a7f254" +checksum = "78a95abf24f1097c6e3181abbbbfc3630b3b5e681470940f719b69acb4911c7f" dependencies = [ "blake2-rfc", "crc32fast", @@ -6181,7 +5932,7 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", + "memmap2 0.2.3", "parking_lot 0.11.2", "rand 0.8.4", "snap", @@ -6193,8 +5944,8 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" dependencies = [ - "arrayvec 0.7.1", - "bitvec 0.20.4", + "arrayvec 0.7.2", + "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", @@ -6225,7 +5976,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libc", "log", "rand 0.7.3", @@ -6279,9 +6030,9 @@ checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" [[package]] name = "parity-ws" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab8a461779bd022964cae2b4989fa9c99deb270bec162da2125ec03c09fcaa" +checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" dependencies = [ "byteorder", "bytes 0.4.12", @@ -6352,9 +6103,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" [[package]] name = "pbkdf2" @@ -6437,9 +6188,9 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" dependencies = [ "fixedbitset", "indexmap", @@ -6505,31 +6256,22 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" - -[[package]] -name = "plain_hasher" -version = "0.2.3" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e19e6491bdde87c2c43d70f4c194bc8a758f2eb732df00f61e43f7362e3b4cc" -dependencies = [ - "crunchy", -] +checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" [[package]] name = "platforms" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" +checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6540,10 +6282,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6553,11 +6295,11 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -6575,10 +6317,10 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -6595,11 +6337,11 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.17", + "futures 0.3.18", "log", "polkadot-node-core-pvf", "polkadot-service", @@ -6615,8 +6357,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6645,12 +6387,12 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "always-assert", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6666,8 +6408,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6679,11 +6421,11 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -6701,8 +6443,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6715,10 +6457,10 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -6735,11 +6477,11 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "parking_lot 0.11.2", "polkadot-node-network-protocol", @@ -6754,10 +6496,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -6772,12 +6514,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "bitvec 0.20.4", + "bitvec", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "kvdb", "lru 0.7.0", @@ -6800,11 +6542,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "bitvec 0.20.4", - "futures 0.3.17", + "bitvec", + "futures 0.3.18", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -6820,11 +6562,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "bitvec 0.20.4", - "futures 0.3.17", + "bitvec", + "futures 0.3.18", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6838,10 +6580,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6853,11 +6595,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -6871,10 +6613,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6886,10 +6628,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -6903,12 +6645,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "bitvec 0.20.4", + "bitvec", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -6920,26 +6662,13 @@ dependencies = [ "tracing", ] -[[package]] -name = "polkadot-node-core-dispute-participation" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" -dependencies = [ - "futures 0.3.17", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-primitives", - "thiserror", - "tracing", -] - [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-primitives", @@ -6952,11 +6681,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "bitvec 0.20.4", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6967,14 +6695,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libc", "parity-scale-codec", @@ -6998,10 +6726,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -7016,8 +6744,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-std", "lazy_static", @@ -7034,10 +6762,10 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "metered-channel", "substrate-prometheus-endpoint", @@ -7045,29 +6773,29 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum 0.21.0", + "strum 0.23.0", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "bounded-vec", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -7085,8 +6813,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7095,11 +6823,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -7114,12 +6842,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "itertools", "lru 0.7.0", "metered-channel", @@ -7128,6 +6856,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", @@ -7141,10 +6870,10 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "lru 0.7.0", "parity-util-mem", @@ -7162,11 +6891,11 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "metered-channel", "pin-project 1.0.8", @@ -7179,8 +6908,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7190,8 +6919,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "derive_more", "frame-support", @@ -7207,12 +6936,12 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ - "bitvec 0.20.4", + "bitvec", "frame-system", - "hex-literal 0.3.3", + "hex-literal", "parity-scale-codec", "parity-util-mem", "polkadot-core-primitives", @@ -7237,12 +6966,12 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", - "jsonrpc-core 18.0.0", + "jsonrpc-core", "pallet-mmr-rpc", "pallet-transaction-payment-rpc", "polkadot-primitives", @@ -7268,11 +6997,11 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "beefy-primitives", - "bitvec 0.20.4", + "bitvec", "frame-election-provider-support", "frame-executive", "frame-support", @@ -7283,6 +7012,7 @@ dependencies = [ "pallet-authority-discovery", "pallet-authorship", "pallet-babe", + "pallet-bags-list", "pallet-balances", "pallet-bounties", "pallet-collective", @@ -7310,6 +7040,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-xcm", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", @@ -7336,20 +7067,23 @@ dependencies = [ "sp-version", "static_assertions", "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] name = "polkadot-runtime-common" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "beefy-primitives", - "bitvec 0.20.4", + "bitvec", "frame-election-provider-support", "frame-support", "frame-system", "impl-trait-for-tuples", - "libsecp256k1 0.7.0", + "libsecp256k1", "log", "pallet-authorship", "pallet-bags-list", @@ -7385,17 +7119,18 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "bitflags", - "bitvec 0.20.4", + "bitvec", "derive_more", "frame-support", "frame-system", "log", "pallet-authority-discovery", "pallet-authorship", + "pallet-babe", "pallet-balances", "pallet-session", "pallet-staking", @@ -7423,15 +7158,15 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.17", - "hex-literal 0.3.3", + "futures 0.3.18", + "hex-literal", "kvdb", "kvdb-rocksdb 0.14.0", "lru 0.7.0", @@ -7458,7 +7193,6 @@ dependencies = [ "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-dispute-participation", "polkadot-node-core-parachains-inherent", "polkadot-node-core-provisioner", "polkadot-node-core-runtime-api", @@ -7487,6 +7221,7 @@ dependencies = [ "sc-finality-grandpa", "sc-keystore", "sc-network", + "sc-offchain", "sc-service", "sc-sync-state-rpc", "sc-telemetry", @@ -7518,12 +7253,12 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "arrayvec 0.5.2", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -7539,8 +7274,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7549,11 +7284,11 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "beefy-primitives", - "bitvec 0.20.4", + "bitvec", "frame-election-provider-support", "frame-executive", "frame-support", @@ -7610,13 +7345,13 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "frame-benchmarking", "frame-system", "futures 0.1.31", - "futures 0.3.17", + "futures 0.3.18", "hex", "pallet-balances", "pallet-staking", @@ -7663,9 +7398,9 @@ dependencies = [ [[package]] name = "polling" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25" +checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" dependencies = [ "cfg-if 1.0.0", "libc", @@ -7699,9 +7434,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.10" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" [[package]] name = "primitive-types" @@ -7792,26 +7527,20 @@ version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - [[package]] name = "proc-macro2" -version = "1.0.29" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" +checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" dependencies = [ "unicode-xid", ] [[package]] name = "prometheus" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99c" +checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504" dependencies = [ "cfg-if 1.0.0", "fnv", @@ -7823,9 +7552,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" dependencies = [ "bytes 1.1.0", "prost-derive", @@ -7833,27 +7562,29 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" dependencies = [ "bytes 1.1.0", "heck", "itertools", + "lazy_static", "log", "multimap", "petgraph", "prost", "prost-types", + "regex", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" dependencies = [ "anyhow", "itertools", @@ -7864,9 +7595,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" dependencies = [ "bytes 1.1.0", "prost", @@ -7924,12 +7655,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" - [[package]] name = "radium" version = "0.6.2" @@ -8002,9 +7727,9 @@ dependencies = [ [[package]] name = "rand_distr" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051b398806e42b9cd04ad9ec8f81e355d0a382c543ac6672c62f5a5b452ef142" +checksum = "964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2f" dependencies = [ "num-traits", "rand 0.8.4", @@ -8128,13 +7853,12 @@ dependencies = [ [[package]] name = "regalloc" -version = "0.0.31" +version = "0.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" +checksum = "a6304468554ed921da3d32c355ea107b8d13d7b8996c3adfb7aab48d3bc321f4" dependencies = [ "log", "rustc-hash", - "serde", "smallvec", ] @@ -8176,24 +7900,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "relay-ethereum-client" -version = "0.1.0" -dependencies = [ - "async-std", - "bp-eth-poa", - "headers-relay", - "hex-literal 0.3.3", - "jsonrpsee-proc-macros", - "jsonrpsee-ws-client", - "libsecp256k1 0.7.0", - "log", - "relay-utils", - "thiserror", - "tokio", - "web3", -] - [[package]] name = "relay-kusama-client" version = "0.1.0" @@ -8317,10 +8023,9 @@ dependencies = [ "finality-relay", "frame-support", "frame-system", - "futures 0.3.17", - "headers-relay", - "jsonrpsee-proc-macros", - "jsonrpsee-ws-client", + "futures 0.3.18", + "jsonrpsee-proc-macros 0.3.1", + "jsonrpsee-ws-client 0.3.1", "log", "num-traits", "pallet-balances", @@ -8353,7 +8058,7 @@ dependencies = [ "backoff", "bp-runtime", "env_logger 0.8.4", - "futures 0.3.17", + "futures 0.3.18", "isahc", "jsonpath_lib", "log", @@ -8403,11 +8108,10 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "env_logger 0.9.0", - "jsonrpsee-proc-macros", - "jsonrpsee-ws-client", + "jsonrpsee", "log", "parity-scale-codec", "serde", @@ -8427,41 +8131,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "reqwest" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22" -dependencies = [ - "base64 0.13.0", - "bytes 1.1.0", - "encoding_rs", - "futures-core", - "futures-util", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "lazy_static", - "log", - "mime", - "native-tls", - "percent-encoding 2.1.0", - "pin-project-lite 0.2.7", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "url 2.2.2", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg 0.7.0", -] - [[package]] name = "resolv-conf" version = "0.7.0" @@ -8474,32 +8143,38 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c17925a9027d298a4603d286befe3f9dc0e8ed02523141914eb628798d6e5b" +checksum = "448296241d034b96c11173591deaa1302f2c17b56092106c1f92c1bc0183a8c9" [[package]] name = "rialto-bridge-node" version = "0.1.0" dependencies = [ + "beefy-gadget", + "beefy-gadget-rpc", + "beefy-primitives", "bp-rialto", "bp-runtime", "frame-benchmarking", "frame-benchmarking-cli", "frame-system-rpc-runtime-api", - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "kvdb", "kvdb-rocksdb 0.12.1", "lru 0.7.0", "node-inspect", "pallet-bridge-messages", + "pallet-mmr-primitives", + "pallet-mmr-rpc", "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", + "polkadot-client", "polkadot-collator-protocol", "polkadot-dispute-distribution", "polkadot-gossip-support", @@ -8513,7 +8188,6 @@ dependencies = [ "polkadot-node-core-chain-api", "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-dispute-participation", "polkadot-node-core-parachains-inherent", "polkadot-node-core-provisioner", "polkadot-node-core-pvf", @@ -8580,8 +8254,8 @@ dependencies = [ "derive_more", "frame-benchmarking", "frame-benchmarking-cli", - "hex-literal 0.3.3", - "jsonrpc-core 18.0.0", + "hex-literal", + "jsonrpc-core", "log", "pallet-transaction-payment-rpc", "parity-scale-codec", @@ -8680,8 +8354,7 @@ dependencies = [ name = "rialto-runtime" version = "0.1.0" dependencies = [ - "bp-currency-exchange", - "bp-eth-poa", + "beefy-primitives", "bp-header-chain", "bp-message-dispatch", "bp-messages", @@ -8694,18 +8367,20 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "hex-literal 0.3.3", - "libsecp256k1 0.7.0", + "hex-literal", + "libsecp256k1", "log", "pallet-authority-discovery", "pallet-babe", "pallet-balances", - "pallet-bridge-currency-exchange", + "pallet-beefy", + "pallet-beefy-mmr", "pallet-bridge-dispatch", - "pallet-bridge-eth-poa", "pallet-bridge-grandpa", "pallet-bridge-messages", "pallet-grandpa", + "pallet-mmr", + "pallet-mmr-primitives", "pallet-session", "pallet-shift-session-manager", "pallet-sudo", @@ -8781,6 +8456,23 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "rsix" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f64c5788d5aab8b75441499d99576a24eb09f76fb267b36fec7e3d970c66431" +dependencies = [ + "bitflags", + "cc", + "errno", + "io-lifetimes", + "itoa", + "libc", + "linux-raw-sys", + "once_cell", + "rustc_version 0.4.0", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -8817,13 +8509,22 @@ dependencies = [ "semver 0.11.0", ] +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.4", +] + [[package]] name = "rustls" version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ - "base64 0.13.0", + "base64", "log", "ring", "sct", @@ -8842,13 +8543,19 @@ dependencies = [ "security-framework", ] +[[package]] +name = "rustversion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" + [[package]] name = "rw-stream-sink" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "pin-project 0.4.28", "static_assertions", ] @@ -8870,9 +8577,9 @@ dependencies = [ [[package]] name = "salsa20" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" +checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" dependencies = [ "cipher", ] @@ -8888,8 +8595,8 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "log", "sp-core", @@ -8900,11 +8607,11 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "ip_network", "libp2p", @@ -8927,9 +8634,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -8950,7 +8657,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8966,9 +8673,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "impl-trait-for-tuples", + "memmap2 0.5.0", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -8982,7 +8690,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8993,11 +8701,11 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "chrono", "fdlimit", - "futures 0.3.17", + "futures 0.3.18", "hex", "libp2p", "log", @@ -9031,10 +8739,10 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "fnv", - "futures 0.3.17", + "futures 0.3.18", "hash-db", "log", "parity-scale-codec", @@ -9059,7 +8767,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "hash-db", "kvdb", @@ -9084,10 +8792,10 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libp2p", "log", @@ -9108,11 +8816,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "log", "parity-scale-codec", "sc-block-builder", @@ -9137,12 +8845,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "derive_more", "fork-tree", - "futures 0.3.17", + "futures 0.3.18", "log", "merlin", "num-bigint", @@ -9180,11 +8888,11 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "derive_more", - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "sc-consensus-babe", @@ -9204,7 +8912,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9217,10 +8925,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -9243,7 +8951,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "sc-client-api", "sp-authorship", @@ -9254,10 +8962,10 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "lazy_static", - "libsecp256k1 0.6.0", + "libsecp256k1", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -9266,6 +8974,7 @@ dependencies = [ "sc-executor-wasmtime", "sp-api", "sp-core", + "sp-core-hashing-proc-macro", "sp-externalities", "sp-io", "sp-panic-handler", @@ -9280,7 +8989,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "derive_more", "environmental", @@ -9298,7 +9007,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "log", "parity-scale-codec", @@ -9314,7 +9023,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "cfg-if 1.0.0", "libc", @@ -9332,14 +9041,14 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -9369,12 +9078,12 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "derive_more", "finality-grandpa", - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "jsonrpc-pubsub", @@ -9393,10 +9102,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-util-mem", @@ -9410,7 +9119,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "derive_more", @@ -9422,28 +9131,10 @@ dependencies = [ "sp-keystore", ] -[[package]] -name = "sc-light" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" -dependencies = [ - "hash-db", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-client-api", - "sc-executor", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-externalities", - "sp-runtime", - "sp-state-machine", -] - [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-std", "async-trait", @@ -9455,7 +9146,7 @@ dependencies = [ "either", "fnv", "fork-tree", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "hex", "ip_network", @@ -9463,7 +9154,7 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.6.6", + "lru 0.7.0", "parity-scale-codec", "parking_lot 0.11.2", "pin-project 1.0.8", @@ -9494,13 +9185,13 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libp2p", "log", - "lru 0.6.6", + "lru 0.7.0", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -9510,17 +9201,17 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "bytes 1.1.0", "fnv", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "hex", "hyper", "hyper-rustls", - "log", "num_cpus", + "once_cell", "parity-scale-codec", "parking_lot 0.11.2", "rand 0.7.3", @@ -9532,14 +9223,15 @@ dependencies = [ "sp-offchain", "sp-runtime", "threadpool", + "tracing", ] [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p", "log", "sc-utils", @@ -9549,8 +9241,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9559,11 +9251,11 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "hash-db", - "jsonrpc-core 18.0.0", + "jsonrpc-core", "jsonrpc-pubsub", "log", "parity-scale-codec", @@ -9590,10 +9282,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "jsonrpc-pubsub", @@ -9615,10 +9307,10 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", "jsonrpc-pubsub", @@ -9632,15 +9324,15 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "hash-db", - "jsonrpc-core 18.0.0", + "jsonrpc-core", "jsonrpc-pubsub", "log", "parity-scale-codec", @@ -9656,7 +9348,6 @@ dependencies = [ "sc-executor", "sc-informant", "sc-keystore", - "sc-light", "sc-network", "sc-offchain", "sc-rpc", @@ -9697,7 +9388,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "log", "parity-scale-codec", @@ -9711,9 +9402,9 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "jsonrpc-core 18.0.0", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "parity-scale-codec", @@ -9733,10 +9424,10 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "chrono", - "futures 0.3.17", + "futures 0.3.18", "libp2p", "log", "parking_lot 0.11.2", @@ -9751,12 +9442,13 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "ansi_term 0.12.1", "atty", "chrono", "lazy_static", + "libc", "log", "once_cell", "parking_lot 0.11.2", @@ -9781,7 +9473,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9792,9 +9484,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "intervalier", "linked-hash-map", "log", @@ -9819,10 +9511,10 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "log", "serde", "sp-blockchain", @@ -9833,9 +9525,9 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "lazy_static", "prometheus", @@ -9847,7 +9539,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f" dependencies = [ - "bitvec 0.20.4", + "bitvec", "cfg-if 1.0.0", "derive_more", "parity-scale-codec", @@ -9907,26 +9599,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "scroll" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sct" version = "0.6.1" @@ -9937,24 +9609,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "secp256k1" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d03ceae636d0fed5bae6a7f4f664354c5f4fcedf6eef053fef17e49f837d0a" -dependencies = [ - "secp256k1-sys", -] - -[[package]] -name = "secp256k1-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827cb7cce42533829c792fc51b82fbf18b125b45a702ef2c8be77fce65463a7b" -dependencies = [ - "cc", -] - [[package]] name = "secrecy" version = "0.8.0" @@ -10012,6 +9666,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ "semver-parser 0.10.2", +] + +[[package]] +name = "semver" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +dependencies = [ "serde", ] @@ -10039,16 +9701,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-big-array" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883eee5198ea51720eab8be52a36cf6c0164ac90eea0ed95b649d5e35382404e" -dependencies = [ - "serde", - "serde_derive", -] - [[package]] name = "serde_derive" version = "1.0.130" @@ -10062,9 +9714,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.68" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" +checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527" dependencies = [ "indexmap", "itoa", @@ -10072,18 +9724,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_urlencoded" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - [[package]] name = "sha-1" version = "0.8.2" @@ -10154,9 +9794,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" dependencies = [ "lazy_static", ] @@ -10188,9 +9828,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19772be3c4dd2ceaacf03cb41d5885f2a02c4d8804884918e3a258480803335" +checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" [[package]] name = "simba" @@ -10206,23 +9846,14 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" - -[[package]] -name = "slog" -version = "2.7.0" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" -dependencies = [ - "erased-serde", -] +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "enumn", "parity-scale-codec", @@ -10294,9 +9925,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" dependencies = [ "libc", "winapi 0.3.9", @@ -10304,29 +9935,13 @@ dependencies = [ [[package]] name = "soketto" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88" -dependencies = [ - "base64 0.12.3", - "bytes 0.5.6", - "flate2", - "futures 0.3.17", - "httparse", - "log", - "rand 0.7.3", - "sha-1 0.9.8", -] - -[[package]] -name = "soketto" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4919971d141dbadaa0e82b5d369e2d7666c98e4625046140615ca363e50d4daa" +checksum = "a74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439f" dependencies = [ - "base64 0.13.0", + "base64", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "httparse", "log", "rand 0.8.4", @@ -10335,13 +9950,14 @@ dependencies = [ [[package]] name = "soketto" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439f" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64 0.13.0", + "base64", "bytes 1.1.0", - "futures 0.3.17", + "flate2", + "futures 0.3.18", "httparse", "log", "rand 0.8.4", @@ -10351,7 +9967,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "hash-db", "log", @@ -10368,7 +9984,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -10380,7 +9996,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -10393,7 +10009,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "integer-sqrt", "num-traits", @@ -10408,7 +10024,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -10421,7 +10037,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "parity-scale-codec", @@ -10433,7 +10049,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "sp-api", @@ -10445,11 +10061,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "log", - "lru 0.6.6", + "lru 0.7.0", "parity-scale-codec", "parking_lot 0.11.2", "sp-api", @@ -10463,10 +10079,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -10482,7 +10098,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "parity-scale-codec", @@ -10500,7 +10116,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "merlin", @@ -10523,10 +10139,11 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", + "serde", "sp-arithmetic", "sp-runtime", ] @@ -10534,7 +10151,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -10546,20 +10163,21 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "base58", + "bitflags", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.17", + "futures 0.3.18", "hash-db", "hash256-std-hasher", "hex", "impl-serde", "lazy_static", - "libsecp256k1 0.6.0", + "libsecp256k1", "log", "merlin", "num-traits", @@ -10574,11 +10192,13 @@ dependencies = [ "secrecy", "serde", "sha2 0.9.8", + "sp-core-hashing", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", "sp-std", "sp-storage", + "ss58-registry", "substrate-bip39", "thiserror", "tiny-bip39", @@ -10588,10 +10208,34 @@ dependencies = [ "zeroize", ] +[[package]] +name = "sp-core-hashing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" +dependencies = [ + "blake2-rfc", + "byteorder", + "sha2 0.9.8", + "sp-std", + "tiny-keccak", + "twox-hash", +] + +[[package]] +name = "sp-core-hashing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" +dependencies = [ + "proc-macro2", + "quote", + "sp-core-hashing", + "syn", +] + [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -10599,8 +10243,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "proc-macro2", "quote", @@ -10610,7 +10254,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "environmental", "parity-scale-codec", @@ -10621,7 +10265,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "finality-grandpa", "log", @@ -10639,7 +10283,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10653,11 +10297,11 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "hash-db", - "libsecp256k1 0.6.0", + "libsecp256k1", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -10677,22 +10321,22 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum 0.20.0", + "strum 0.22.0", ] [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "merlin", "parity-scale-codec", "parking_lot 0.11.2", @@ -10704,8 +10348,8 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "zstd", ] @@ -10713,7 +10357,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -10728,7 +10372,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -10739,7 +10383,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "sp-api", "sp-core", @@ -10748,16 +10392,18 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "backtrace", + "lazy_static", + "regex", ] [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "rustc-hash", "serde", @@ -10767,7 +10413,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "either", "hash256-std-hasher", @@ -10789,7 +10435,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10806,7 +10452,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -10817,8 +10463,8 @@ dependencies = [ [[package]] name = "sp-serializer" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "serde", "serde_json", @@ -10827,7 +10473,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -10841,7 +10487,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "scale-info", @@ -10852,7 +10498,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "hash-db", "log", @@ -10875,12 +10521,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10893,7 +10539,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "log", "sp-core", @@ -10906,7 +10552,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -10922,15 +10568,9 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "erased-serde", - "log", "parity-scale-codec", - "parking_lot 0.10.2", - "serde", - "serde_json", - "slog", "sp-std", "tracing", "tracing-core", @@ -10940,7 +10580,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "sp-api", "sp-runtime", @@ -10949,7 +10589,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", "log", @@ -10965,7 +10605,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "hash-db", "memory-db", @@ -10980,7 +10620,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10996,7 +10636,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11007,7 +10647,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -11021,6 +10661,20 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "ss58-registry" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78abb01d308934b82e34e9cf1f45846d31539246501745b129539176f4f3368d" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -11151,9 +10805,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa" +checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" dependencies = [ "clap", "lazy_static", @@ -11162,9 +10816,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.16" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck", "proc-macro-error 1.0.4", @@ -11175,27 +10829,36 @@ dependencies = [ [[package]] name = "strum" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" dependencies = [ - "strum_macros 0.20.1", + "strum_macros 0.21.1", ] [[package]] name = "strum" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" dependencies = [ - "strum_macros 0.21.1", + "strum_macros 0.22.0", +] + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +dependencies = [ + "strum_macros 0.23.1", ] [[package]] name = "strum_macros" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ "heck", "proc-macro2", @@ -11205,13 +10868,26 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" dependencies = [ "heck", "proc-macro2", "quote", + "rustversion", "syn", ] @@ -11231,7 +10907,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "platforms", ] @@ -11239,11 +10915,11 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.17", - "jsonrpc-core 18.0.0", + "futures 0.3.18", + "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "log", @@ -11260,8 +10936,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-std", "derive_more", @@ -11295,9 +10971,9 @@ dependencies = [ "finality-grandpa", "finality-relay", "frame-support", - "futures 0.3.17", + "futures 0.3.18", "hex", - "hex-literal 0.3.3", + "hex-literal", "log", "messages-relay", "millau-runtime", @@ -11355,7 +11031,7 @@ dependencies = [ "finality-grandpa", "finality-relay", "frame-support", - "futures 0.3.17", + "futures 0.3.18", "log", "messages-relay", "num-traits", @@ -11375,17 +11051,16 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "hex", "parity-scale-codec", "sc-client-api", "sc-client-db", "sc-consensus", "sc-executor", - "sc-light", "sc-offchain", "sc-service", "serde", @@ -11402,7 +11077,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ "ansi_term 0.12.1", "build-helper", @@ -11422,9 +11097,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.80" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" +checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" dependencies = [ "proc-macro2", "quote", @@ -11444,9 +11119,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", @@ -11517,18 +11192,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", @@ -11645,9 +11320,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.4.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5241dd6f21443a3606b432718b166d3cedc962fd4b8bea54a8bc7f514ebda986" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" dependencies = [ "tinyvec_macros", ] @@ -11660,18 +11335,17 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" +checksum = "70e992e41e0d2fb9f755b37446f20900f64446ef54874f40a60c78f021ac6144" dependencies = [ "autocfg", "bytes 1.1.0", "libc", "memchr", - "mio 0.7.13", + "mio 0.7.14", "num_cpus", "once_cell", - "parking_lot 0.11.2", "pin-project-lite 0.2.7", "signal-hook-registry", "tokio-macros", @@ -11680,25 +11354,15 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.3.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" +checksum = "c9efc1aba077437943f7515666aa2b882dfabfbfdf89c819ea75a8d6e9eaba5e" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.22.0" @@ -11712,9 +11376,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f" +checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" dependencies = [ "futures-core", "pin-project-lite 0.2.7", @@ -11723,9 +11387,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd" +checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ "bytes 1.1.0", "futures-core", @@ -11817,14 +11481,15 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62af966210b88ad5776ee3ba12d5f35b8d6a2b2a12168f3080cf02b814d7376b" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" dependencies = [ "ansi_term 0.12.1", "chrono", "lazy_static", "matchers", + "parking_lot 0.11.2", "regex", "serde", "serde_json", @@ -11859,16 +11524,6 @@ dependencies = [ "hash-db", ] -[[package]] -name = "triehash" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" -dependencies = [ - "hash-db", - "rlp", -] - [[package]] name = "trust-dns-proto" version = "0.20.3" @@ -11921,9 +11576,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#d0f6c1c60da22e04dd25c2eca46ebfe6f1571af0" +source = "git+https://github.com/paritytech/substrate?branch=master#3fdb445b3b14880017680a3af85e89fb591666a0" dependencies = [ - "jsonrpsee-ws-client", + "jsonrpsee", "log", "parity-scale-codec", "remote-externalities", @@ -11942,13 +11597,19 @@ dependencies = [ "structopt", ] +[[package]] +name = "tt-call" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" + [[package]] name = "twox-hash" version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78e" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "rand 0.8.4", "static_assertions", ] @@ -11988,9 +11649,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" @@ -12009,9 +11670,9 @@ checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" @@ -12049,9 +11710,9 @@ dependencies = [ [[package]] name = "unsigned-varint" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7f" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", @@ -12090,9 +11751,9 @@ dependencies = [ [[package]] name = "value-bag" -version = "1.0.0-alpha.7" +version = "1.0.0-alpha.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae" +checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f" dependencies = [ "ctor", "version_check", @@ -12163,21 +11824,19 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e68338db6becec24d3c7977b5bf8a48be992c934b5d07177e3931f5dc9b076c" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if 1.0.0", - "serde", - "serde_json", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34c405b4f0658583dba0c1c7c9b694f3cac32655db463b56c254a1c75269523" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -12190,9 +11849,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87d738d4abc4cf22f6eb142f5b9a81301331ee3c767f2fef2fda4e325492060" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -12202,9 +11861,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d5a6580be83b19dc570a8f9c324251687ab2184e57086f71625feb57ec77c8" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -12212,9 +11871,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3775a030dc6f5a0afd8a84981a21cc92a781eb429acef9ecce476d0c9113e92" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -12225,9 +11884,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.77" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c279e376c7a8e8752a8f1eaa35b7b0bee6bb9fb0cdacfa97cc3f1f289c87e2b4" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "wasm-gc-api" @@ -12246,7 +11905,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -12257,9 +11916,9 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ee05bba3d1d994652079893941a2ef9324d2b58a63c31b40678fb7eddd7a5a" +checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" dependencies = [ "downcast-rs", "libc", @@ -12272,24 +11931,24 @@ dependencies = [ [[package]] name = "wasmi-validation" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb8e860796d8be48efef530b60eebf84e74a88bce107374fffb0da97d504b8" +checksum = "165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937" dependencies = [ "parity-wasm 0.42.2", ] [[package]] name = "wasmparser" -version = "0.79.0" +version = "0.81.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5894be15a559c85779254700e1d35f02f843b5a69152e5c82c626d9fd66c0e" +checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" [[package]] name = "wasmtime" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbb8a082a8ef50f7eeb8b82dda9709ef1e68963ea3c94e45581644dd4041835" +checksum = "311d06b0c49346d1fbf48a17052e844036b95a7753c1afb34e8c0af3f6b5bb13" dependencies = [ "anyhow", "backtrace", @@ -12300,36 +11959,36 @@ dependencies = [ "lazy_static", "libc", "log", + "object", "paste", "psm", + "rayon", "region", "rustc-demangle", "serde", - "smallvec", "target-lexicon", "wasmparser", "wasmtime-cache", + "wasmtime-cranelift", "wasmtime-environ", "wasmtime-jit", - "wasmtime-profiling", "wasmtime-runtime", "winapi 0.3.9", ] [[package]] name = "wasmtime-cache" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d73391579ca7f24573138ef768b73b2aed5f9d542385c64979b65d60d0912399" +checksum = "36147930a4995137dc096e5b17a573b446799be2bbaea433e821ce6a80abe2c5" dependencies = [ "anyhow", - "base64 0.13.0", + "base64", "bincode", "directories-next", - "errno", "file-per-thread-logger", - "libc", "log", + "rsix", "serde", "sha2 0.9.8", "toml", @@ -12339,27 +11998,18 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81c6f5ae9205382345c7cd7454932a906186836999a2161c385e38a15f52e1fe" +checksum = "ab3083a47e1ede38aac06a1d9831640d673f9aeda0b82a64e4ce002f3432e2e7" dependencies = [ + "anyhow", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", + "cranelift-native", "cranelift-wasm", - "target-lexicon", - "wasmparser", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-debug" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c69e08f55e12f15f50b1b533bc3626723e7224254a065de6576934c86258c9e8" -dependencies = [ - "anyhow", - "gimli", + "gimli 0.25.0", + "log", "more-asserts", "object", "target-lexicon", @@ -12370,94 +12020,55 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005d93174040af37fb8625f891cd9827afdad314261f7ec4ee61ec497d6e9d3c" +checksum = "1c2d194b655321053bc4111a1aa4ead552655c8a17d17264bc97766e70073510" dependencies = [ + "anyhow", "cfg-if 1.0.0", - "cranelift-codegen", "cranelift-entity", - "cranelift-wasm", - "gimli", + "gimli 0.25.0", "indexmap", "log", "more-asserts", + "object", "serde", + "target-lexicon", "thiserror", "wasmparser", + "wasmtime-types", ] [[package]] name = "wasmtime-jit" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0bf1dfb213a35d8f21aefae40e597fe72778a907011ffdff7affb029a02af9a" +checksum = "864ac8dfe4ce310ac59f16fdbd560c257389cb009ee5d030ac6e30523b023d11" dependencies = [ - "addr2line", + "addr2line 0.16.0", "anyhow", + "bincode", "cfg-if 1.0.0", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli", + "gimli 0.25.0", "log", "more-asserts", "object", - "rayon", "region", + "rsix", "serde", "target-lexicon", "thiserror", "wasmparser", - "wasmtime-cranelift", - "wasmtime-debug", "wasmtime-environ", - "wasmtime-obj", - "wasmtime-profiling", "wasmtime-runtime", "winapi 0.3.9", ] -[[package]] -name = "wasmtime-obj" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231491878e710c68015228c9f9fc5955fe5c96dbf1485c15f7bed55b622c83c" -dependencies = [ - "anyhow", - "more-asserts", - "object", - "target-lexicon", - "wasmtime-debug", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-profiling" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21486cfb5255c2069666c1f116f9e949d4e35c9a494f11112fa407879e42198d" -dependencies = [ - "anyhow", - "cfg-if 1.0.0", - "gimli", - "lazy_static", - "libc", - "object", - "scroll", - "serde", - "target-lexicon", - "wasmtime-environ", - "wasmtime-runtime", -] - [[package]] name = "wasmtime-runtime" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ddfdf32e0a20d81f48be9dacd31612bc61de5a174d1356fef806d300f507de" +checksum = "ab97da813a26b98c9abfd3b0c2d99e42f6b78b749c0646344e2e262d212d8c8b" dependencies = [ "anyhow", "backtrace", @@ -12472,64 +12083,32 @@ dependencies = [ "more-asserts", "rand 0.8.4", "region", + "rsix", "thiserror", "wasmtime-environ", "winapi 0.3.9", ] [[package]] -name = "web-sys" -version = "0.3.54" +name = "wasmtime-types" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a84d70d1ec7d2da2d26a5bd78f4bca1b8c3254805363ce743b7a05bc30d195a" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web3" -version = "0.16.0" -source = "git+https://github.com/svyatonik/rust-web3.git?branch=bump-deps#117badfea7d6dbd748671648e877d6499e20f6ae" +checksum = "ff94409cc3557bfbbcce6b14520ccd6bd3727e965c0fe68d63ef2c185bf379c6" dependencies = [ - "arrayvec 0.5.2", - "base64 0.13.0", - "bytes 1.1.0", - "derive_more", - "ethabi", - "ethereum-types", - "futures 0.3.17", - "futures-timer 3.0.2", - "headers", - "hex", - "jsonrpc-core 17.1.0", - "log", - "parking_lot 0.11.2", - "pin-project 1.0.8", - "reqwest", - "rlp", - "secp256k1", + "cranelift-entity", "serde", - "serde_json", - "soketto 0.5.0", - "tiny-keccak", - "tokio", - "tokio-stream", - "tokio-util", - "url 2.2.2", - "web3-async-native-tls", + "thiserror", + "wasmparser", ] [[package]] -name = "web3-async-native-tls" -version = "0.4.0" +name = "web-sys" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f6d8d1636b2627fe63518d5a9b38a569405d9c9bc665c43c9c341de57227ebb" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ - "native-tls", - "thiserror", - "tokio", - "url 2.2.2", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -12629,15 +12208,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "winreg" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -12667,8 +12237,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -12680,8 +12250,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "frame-support", "frame-system", @@ -12700,8 +12270,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -12718,26 +12288,20 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=master#dd4b2e6a34a08a01b876d14641e99e7011be3463" +source = "git+https://github.com/paritytech/polkadot?branch=master#bd69f54b6853e9a2f5e0869e5e76213259d4573d" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "yaml-rust" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" - [[package]] name = "yamux" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "log", "nohash-hasher", "parking_lot 0.11.2", @@ -12747,18 +12311,18 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" +checksum = "65f1a51723ec88c66d5d1fe80c841f17f63587d6691901d66be9bec6c3b51f73" dependencies = [ "proc-macro2", "quote", diff --git a/Dockerfile b/Dockerfile index 2d03db8a76f2..ff88c6a5a0a5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ WORKDIR /parity-bridges-common COPY . . -ARG PROJECT=ethereum-poa-relay +ARG PROJECT=substrate-relay RUN cargo build --release --verbose -p ${PROJECT} && \ strip ./target/release/${PROJECT} @@ -42,7 +42,7 @@ USER user WORKDIR /home/user -ARG PROJECT=ethereum-poa-relay +ARG PROJECT=substrate-relay COPY --chown=user:user --from=builder /parity-bridges-common/target/release/${PROJECT} ./ COPY --chown=user:user --from=builder /parity-bridges-common/deployments/local-scripts/bridge-entrypoint.sh ./ diff --git a/README.md b/README.md index 41d7fec13d5b..ac3e49b94c6a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ These components include Substrate pallets for syncing headers, passing arbitrar as libraries for building relayers to provide cross-chain communication capabilities. Three bridge nodes are also available. The nodes can be used to run test networks which bridge other -Substrate chains or Ethereum Proof-of-Authority chains. +Substrate chains. 🚧 The bridges are currently under construction - a hardhat is recommended beyond this point 🚧 @@ -38,7 +38,7 @@ cargo build --all cargo test --all ``` -Also you can build the repo with +Also you can build the repo with [Parity CI Docker image](https://github.com/paritytech/scripts/tree/master/dockerfiles/bridges-ci): ```bash @@ -54,7 +54,7 @@ docker run --rm -it -w /shellhere/parity-bridges-common \ #artifacts can be found in ~/cache/target ``` -If you want to reproduce other steps of CI process you can use the following +If you want to reproduce other steps of CI process you can use the following [guide](https://github.com/paritytech/scripts#reproduce-ci-locally). If you need more information about setting up your development environment Substrate's @@ -104,7 +104,6 @@ the `relays` which are used to pass messages between chains. ├── diagrams // Pretty pictures of the project architecture │ └── ... ├── modules // Substrate Runtime Modules (a.k.a Pallets) -│ ├── ethereum // Ethereum PoA Header Sync Module │ ├── grandpa // On-Chain GRANDPA Light Client │ ├── messages // Cross Chain Message Passing │ ├── dispatch // Target Chain Message Execution diff --git a/bin/millau/node/Cargo.toml b/bin/millau/node/Cargo.toml index b650bd478a62..c4438d0cef3e 100644 --- a/bin/millau/node/Cargo.toml +++ b/bin/millau/node/Cargo.toml @@ -23,9 +23,13 @@ pallet-bridge-messages = { path = "../../../modules/messages" } # Substrate Dependencies +beefy-gadget = { git = "https://github.com/paritytech/substrate", branch = "master" } +beefy-gadget-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +beefy-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } node-inspect = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-mmr-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-cli = { git = "https://github.com/paritytech/substrate", branch = "master", features = ["wasmtime"] } diff --git a/bin/millau/node/src/chain_spec.rs b/bin/millau/node/src/chain_spec.rs index c32291fb3858..fbfca8692fcb 100644 --- a/bin/millau/node/src/chain_spec.rs +++ b/bin/millau/node/src/chain_spec.rs @@ -14,11 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Parity Bridges Common. If not, see . +use beefy_primitives::crypto::AuthorityId as BeefyId; use bp_millau::derive_account_from_rialto_id; use millau_runtime::{ - AccountId, AuraConfig, BalancesConfig, BridgeRialtoMessagesConfig, BridgeWestendGrandpaConfig, - GenesisConfig, GrandpaConfig, SessionConfig, SessionKeys, Signature, SudoConfig, SystemConfig, - WASM_BINARY, + AccountId, AuraConfig, BalancesConfig, BeefyConfig, BridgeRialtoMessagesConfig, + BridgeWestendGrandpaConfig, GenesisConfig, GrandpaConfig, SessionConfig, SessionKeys, + Signature, SudoConfig, SystemConfig, WASM_BINARY, }; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{sr25519, Pair, Public}; @@ -57,10 +58,11 @@ where } /// Helper function to generate an authority key for Aura -pub fn get_authority_keys_from_seed(s: &str) -> (AccountId, AuraId, GrandpaId) { +pub fn get_authority_keys_from_seed(s: &str) -> (AccountId, AuraId, BeefyId, GrandpaId) { ( get_account_id_from_seed::(s), get_from_seed::(s), + get_from_seed::(s), get_from_seed::(s), ) } @@ -173,12 +175,12 @@ impl Alternative { } } -fn session_keys(aura: AuraId, grandpa: GrandpaId) -> SessionKeys { - SessionKeys { aura, grandpa } +fn session_keys(aura: AuraId, beefy: BeefyId, grandpa: GrandpaId) -> SessionKeys { + SessionKeys { aura, beefy, grandpa } } fn testnet_genesis( - initial_authorities: Vec<(AccountId, AuraId, GrandpaId)>, + initial_authorities: Vec<(AccountId, AuraId, BeefyId, GrandpaId)>, root_key: AccountId, endowed_accounts: Vec, _enable_println: bool, @@ -186,18 +188,20 @@ fn testnet_genesis( GenesisConfig { system: SystemConfig { code: WASM_BINARY.expect("Millau development WASM not available").to_vec(), - changes_trie_config: Default::default(), }, balances: BalancesConfig { balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 50)).collect(), }, aura: AuraConfig { authorities: Vec::new() }, + beefy: BeefyConfig { authorities: Vec::new() }, grandpa: GrandpaConfig { authorities: Vec::new() }, sudo: SudoConfig { key: root_key }, session: SessionConfig { keys: initial_authorities .iter() - .map(|x| (x.0.clone(), x.0.clone(), session_keys(x.1.clone(), x.2.clone()))) + .map(|x| { + (x.0.clone(), x.0.clone(), session_keys(x.1.clone(), x.2.clone(), x.3.clone())) + }) .collect::>(), }, bridge_westend_grandpa: BridgeWestendGrandpaConfig { diff --git a/bin/millau/node/src/command.rs b/bin/millau/node/src/command.rs index 4285ecaced51..4dbf9575dfec 100644 --- a/bin/millau/node/src/command.rs +++ b/bin/millau/node/src/command.rs @@ -20,7 +20,7 @@ use crate::{ service::new_partial, }; use millau_runtime::{Block, RuntimeApi}; -use sc_cli::{ChainSpec, Role, RuntimeVersion, SubstrateCli}; +use sc_cli::{ChainSpec, RuntimeVersion, SubstrateCli}; use sc_service::PartialComponents; impl SubstrateCli for Cli { @@ -72,7 +72,7 @@ impl SubstrateCli for Cli { pub fn run() -> sc_cli::Result<()> { let cli = Cli::from_args(); // make sure to set correct crypto version. - sp_core::crypto::set_default_ss58_version(sp_core::crypto::Ss58AddressFormat::Custom( + sp_core::crypto::set_default_ss58_version(sp_core::crypto::Ss58AddressFormat::custom( millau_runtime::SS58Prefix::get() as u16, )); @@ -146,11 +146,7 @@ pub fn run() -> sc_cli::Result<()> { None => { let runner = cli.create_runner(&cli.run)?; runner.run_node_until_exit(|config| async move { - match config.role { - Role::Light => service::new_light(config), - _ => service::new_full(config), - } - .map_err(sc_cli::Error::Service) + service::new_full(config).map_err(sc_cli::Error::Service) }) }, } diff --git a/bin/millau/node/src/service.rs b/bin/millau/node/src/service.rs index b8d42f9c7ed3..b01c0bfca906 100644 --- a/bin/millau/node/src/service.rs +++ b/bin/millau/node/src/service.rs @@ -21,18 +21,19 @@ // ===================================================================================== // UPDATE GUIDE: // 1) replace everything with node-template/src/service.rs contents (found in main Substrate repo); -// 2) the only thing to keep from old code, is `rpc_extensions_builder` - we use our own custom -// RPCs; 3) fix compilation errors; -// 4) test :) +// 2) from old code keep `rpc_extensions_builder` - we use our own custom RPCs; +// 3) from old code keep the Beefy gadget; +// 4) fix compilation errors; +// 5) test :) // ===================================================================================== // ===================================================================================== // ===================================================================================== use millau_runtime::{self, opaque::Block, RuntimeApi}; -use sc_client_api::{ExecutorProvider, RemoteBackend}; +use sc_client_api::ExecutorProvider; use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams}; pub use sc_executor::NativeElseWasmExecutor; - +use sc_finality_grandpa::SharedVoterState; use sc_keystore::LocalKeystore; use sc_service::{error::Error as ServiceError, Configuration, TaskManager}; use sc_telemetry::{Telemetry, TelemetryWorker}; @@ -40,13 +41,16 @@ use sp_consensus::SlotData; use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; use std::{sync::Arc, time::Duration}; -type Executor = NativeElseWasmExecutor; - // Our native executor instance. pub struct ExecutorDispatch; impl sc_executor::NativeExecutionDispatch for ExecutorDispatch { + /// Only enable the benchmarking host functions when we actually want to benchmark. + #[cfg(feature = "runtime-benchmarks")] type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + /// Otherwise we only use the default Substrate host functions. + #[cfg(not(feature = "runtime-benchmarks"))] + type ExtendHostFunctions = (); fn dispatch(method: &str, data: &[u8]) -> Option> { millau_runtime::api::dispatch(method, data) @@ -62,7 +66,6 @@ type FullClient = type FullBackend = sc_service::TFullBackend; type FullSelectChain = sc_consensus::LongestChain; -#[allow(clippy::type_complexity)] pub fn new_partial( config: &Configuration, ) -> Result< @@ -86,7 +89,7 @@ pub fn new_partial( ServiceError, > { if config.keystore_remote.is_some() { - return Err(ServiceError::Other("Remote Keystores are not supported.".to_string())) + return Err(ServiceError::Other(format!("Remote Keystores are not supported."))) } let telemetry = config @@ -107,15 +110,15 @@ pub fn new_partial( ); let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::( - config, + sc_service::new_full_parts::( + &config, telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), executor, )?; let client = Arc::new(client); let telemetry = telemetry.map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", worker.run()); + task_manager.spawn_handle().spawn("telemetry", None, worker.run()); telemetry }); @@ -175,7 +178,7 @@ pub fn new_partial( }) } -fn remote_keystore(_url: &str) -> Result, &'static str> { +fn remote_keystore(_url: &String) -> Result, &'static str> { // FIXME: here would the concrete keystore be built, // must return a concrete type (NOT `LocalKeystore`) that // implements `CryptoStore` and `SyncCryptoStore` @@ -207,10 +210,11 @@ pub fn new_full(mut config: Configuration) -> Result } config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config()); + config.network.extra_sets.push(beefy_gadget::beefy_peers_set_config()); let warp_sync = Arc::new(sc_finality_grandpa::warp_proof::NetworkProvider::new( backend.clone(), grandpa_link.shared_authority_set().clone(), - vec![], + Vec::default(), )); let (network, system_rpc_tx, network_starter) = @@ -220,7 +224,6 @@ pub fn new_full(mut config: Configuration) -> Result transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), import_queue, - on_demand: None, block_announce_validator_builder: None, warp_sync: Some(warp_sync), })?; @@ -240,7 +243,9 @@ pub fn new_full(mut config: Configuration) -> Result let name = config.network.node_name.clone(); let enable_grandpa = !config.disable_grandpa; let prometheus_registry = config.prometheus_registry().cloned(); - let shared_voter_state = sc_finality_grandpa::SharedVoterState::empty(); + let shared_voter_state = SharedVoterState::empty(); + let (signed_commitment_sender, signed_commitment_stream) = + beefy_gadget::notification::BeefySignedCommitmentStream::channel(); let rpc_extensions_builder = { use sc_finality_grandpa::FinalityProofProvider as GrandpaFinalityProofProvider; @@ -263,7 +268,7 @@ pub fn new_full(mut config: Configuration) -> Result Some(shared_authority_set.clone()), ); - Box::new(move |_, subscription_executor| { + Box::new(move |_, subscription_executor: sc_rpc::SubscriptionTaskExecutor| { let mut io = jsonrpc_core::IoHandler::default(); io.extend_with(SystemApi::to_delegate(FullSystem::new( client.clone(), @@ -277,9 +282,18 @@ pub fn new_full(mut config: Configuration) -> Result shared_authority_set.clone(), shared_voter_state.clone(), justification_stream.clone(), - subscription_executor, + subscription_executor.clone(), finality_proof_provider.clone(), ))); + io.extend_with(beefy_gadget_rpc::BeefyApi::to_delegate( + beefy_gadget_rpc::BeefyRpcHandler::new( + signed_commitment_stream.clone(), + subscription_executor, + ), + )); + io.extend_with(pallet_mmr_rpc::MmrApi::to_delegate(pallet_mmr_rpc::Mmr::new( + client.clone(), + ))); Ok(io) }) }; @@ -291,9 +305,7 @@ pub fn new_full(mut config: Configuration) -> Result task_manager: &mut task_manager, transaction_pool: transaction_pool.clone(), rpc_extensions_builder, - on_demand: None, - remote_blockchain: None, - backend, + backend: backend.clone(), system_rpc_tx, config, telemetry: telemetry.as_mut(), @@ -317,17 +329,18 @@ pub fn new_full(mut config: Configuration) -> Result let aura = sc_consensus_aura::start_aura::( StartAuraParams { slot_duration, - client, + client: client.clone(), select_chain, block_import, proposer_factory, create_inherent_data_providers: move |_, ()| async move { let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( - *timestamp, - raw_slot_duration, - ); + let slot = + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( + *timestamp, + raw_slot_duration, + ); Ok((timestamp, slot)) }, @@ -345,7 +358,9 @@ pub fn new_full(mut config: Configuration) -> Result // the AURA authoring task is considered essential, i.e. if it // fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking("aura", aura); + task_manager + .spawn_essential_handle() + .spawn_blocking("aura", Some("block-authoring"), aura); } // if the node isn't actively participating in consensus then it doesn't @@ -353,6 +368,23 @@ pub fn new_full(mut config: Configuration) -> Result let keystore = if role.is_authority() { Some(keystore_container.sync_keystore()) } else { None }; + let beefy_params = beefy_gadget::BeefyParams { + client, + backend, + key_store: keystore.clone(), + network: network.clone(), + signed_commitment_sender, + min_block_delta: 4, + prometheus_registry: prometheus_registry.clone(), + }; + + // Start the BEEFY bridge gadget. + task_manager.spawn_essential_handle().spawn_blocking( + "beefy-gadget", + None, + beefy_gadget::start_beefy_gadget::<_, _, _, _>(beefy_params), + ); + let grandpa_config = sc_finality_grandpa::Config { // FIXME #1578 make this available through chainspec gossip_duration: Duration::from_millis(333), @@ -385,6 +417,7 @@ pub fn new_full(mut config: Configuration) -> Result // if it fails we take down the service with it. task_manager.spawn_essential_handle().spawn_blocking( "grandpa-voter", + None, sc_finality_grandpa::run_grandpa_voter(grandpa_config)?, ); } @@ -392,144 +425,3 @@ pub fn new_full(mut config: Configuration) -> Result network_starter.start_network(); Ok(task_manager) } - -/// Builds a new service for a light client. -pub fn new_light(mut config: Configuration) -> Result { - let telemetry = config - .telemetry_endpoints - .clone() - .filter(|x| !x.is_empty()) - .map(|endpoints| -> Result<_, sc_telemetry::Error> { - let worker = TelemetryWorker::new(16)?; - let telemetry = worker.handle().new_telemetry(endpoints); - Ok((worker, telemetry)) - }) - .transpose()?; - - let executor = NativeElseWasmExecutor::::new( - config.wasm_method, - config.default_heap_pages, - config.max_runtime_instances, - ); - - let (client, backend, keystore_container, mut task_manager, on_demand) = - sc_service::new_light_parts::( - &config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - )?; - - let mut telemetry = telemetry.map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", worker.run()); - telemetry - }); - - config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config()); - - let select_chain = sc_consensus::LongestChain::new(backend.clone()); - - let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light( - config.transaction_pool.clone(), - config.prometheus_registry(), - task_manager.spawn_essential_handle(), - client.clone(), - on_demand.clone(), - )); - - let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import( - client.clone(), - &(client.clone() as Arc<_>), - select_chain, - telemetry.as_ref().map(|x| x.handle()), - )?; - - let slot_duration = sc_consensus_aura::slot_duration(&*client)?.slot_duration(); - - let import_queue = - sc_consensus_aura::import_queue::(ImportQueueParams { - block_import: grandpa_block_import.clone(), - justification_import: Some(Box::new(grandpa_block_import)), - client: client.clone(), - create_inherent_data_providers: move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( - *timestamp, - slot_duration, - ); - - Ok((timestamp, slot)) - }, - spawner: &task_manager.spawn_essential_handle(), - can_author_with: sp_consensus::NeverCanAuthor, - registry: config.prometheus_registry(), - check_for_equivocation: Default::default(), - telemetry: telemetry.as_ref().map(|x| x.handle()), - })?; - - let warp_sync = Arc::new(sc_finality_grandpa::warp_proof::NetworkProvider::new( - backend.clone(), - grandpa_link.shared_authority_set().clone(), - vec![], - )); - - let (network, system_rpc_tx, network_starter) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: &config, - client: client.clone(), - transaction_pool: transaction_pool.clone(), - spawn_handle: task_manager.spawn_handle(), - import_queue, - on_demand: Some(on_demand.clone()), - block_announce_validator_builder: None, - warp_sync: Some(warp_sync), - })?; - - if config.offchain_worker.enabled { - sc_service::build_offchain_workers( - &config, - task_manager.spawn_handle(), - client.clone(), - network.clone(), - ); - } - - let enable_grandpa = !config.disable_grandpa; - if enable_grandpa { - let name = config.network.node_name.clone(); - - let config = sc_finality_grandpa::Config { - gossip_duration: std::time::Duration::from_millis(333), - justification_period: 512, - name: Some(name), - observer_enabled: false, - keystore: None, - local_role: config.role.clone(), - telemetry: telemetry.as_ref().map(|x| x.handle()), - }; - - task_manager.spawn_handle().spawn_blocking( - "grandpa-observer", - sc_finality_grandpa::run_grandpa_observer(config, grandpa_link, network.clone())?, - ); - } - - sc_service::spawn_tasks(sc_service::SpawnTasksParams { - remote_blockchain: Some(backend.remote_blockchain()), - transaction_pool, - task_manager: &mut task_manager, - on_demand: Some(on_demand), - rpc_extensions_builder: Box::new(|_, _| Ok(())), - config, - client, - keystore: keystore_container.sync_keystore(), - backend, - network, - system_rpc_tx, - telemetry: telemetry.as_mut(), - })?; - - network_starter.start_network(); - Ok(task_manager) -} diff --git a/bin/millau/runtime/Cargo.toml b/bin/millau/runtime/Cargo.toml index c8d7f0a15958..13195b95194b 100644 --- a/bin/millau/runtime/Cargo.toml +++ b/bin/millau/runtime/Cargo.toml @@ -30,6 +30,7 @@ pallet-shift-session-manager = { path = "../../../modules/shift-session-manager" # Substrate Dependencies +beefy-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -37,7 +38,11 @@ frame-system = { git = "https://github.com/paritytech/substrate", branch = "mast frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-beefy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-beefy-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -64,6 +69,7 @@ substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", bran [features] default = ["std"] std = [ + "beefy-primitives/std", "bp-header-chain/std", "bp-messages/std", "bp-millau/std", @@ -78,11 +84,14 @@ std = [ "frame-system/std", "pallet-aura/std", "pallet-balances/std", + "pallet-beefy/std", + "pallet-beefy-mmr/std", "pallet-bridge-dispatch/std", "pallet-bridge-grandpa/std", "pallet-bridge-messages/std", "pallet-bridge-token-swap/std", "pallet-grandpa/std", + "pallet-mmr/std", "pallet-randomness-collective-flip/std", "pallet-session/std", "pallet-shift-session-manager/std", diff --git a/bin/millau/runtime/src/lib.rs b/bin/millau/runtime/src/lib.rs index 4e486c267010..288ff9a47d60 100644 --- a/bin/millau/runtime/src/lib.rs +++ b/bin/millau/runtime/src/lib.rs @@ -34,19 +34,23 @@ pub mod rialto_messages; use crate::rialto_messages::{ToRialtoMessagePayload, WithRialtoMessageBridge}; +use beefy_primitives::{crypto::AuthorityId as BeefyId, mmr::MmrLeafVersion, ValidatorSet}; use bridge_runtime_common::messages::{ source::estimate_message_dispatch_and_delivery_fee, MessageBridge, }; use pallet_grandpa::{ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, }; +use pallet_mmr_primitives::{ + DataOrHash, EncodableOpaqueLeaf, Error as MmrError, LeafDataProvider, Proof as MmrProof, +}; use pallet_transaction_payment::{FeeDetails, Multiplier, RuntimeDispatchInfo}; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{Block as BlockT, IdentityLookup, NumberFor, OpaqueKeys}, + traits::{Block as BlockT, IdentityLookup, Keccak256, NumberFor, OpaqueKeys}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, FixedPointNumber, MultiSignature, MultiSigner, Perquintill, }; @@ -100,9 +104,6 @@ pub type Hash = bp_millau::Hash; /// Hashing algorithm used by the chain. pub type Hashing = bp_millau::Hasher; -/// Digest item type. -pub type DigestItem = generic::DigestItem; - /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know /// the specifics of the runtime. They can then be made to be agnostic over specific formats /// of data like extrinsics, allowing for them to continue syncing the network through upgrades @@ -123,6 +124,7 @@ pub mod opaque { impl_opaque_keys! { pub struct SessionKeys { pub aura: Aura, + pub beefy: Beefy, pub grandpa: Grandpa, } } @@ -215,6 +217,11 @@ impl pallet_aura::Config for Runtime { type MaxAuthorities = MaxAuthorities; type DisabledValidators = (); } + +impl pallet_beefy::Config for Runtime { + type BeefyId = BeefyId; +} + impl pallet_bridge_dispatch::Config for Runtime { type Event = Event; type BridgeMessageId = (bp_messages::LaneId, bp_messages::MessageNonce); @@ -243,6 +250,40 @@ impl pallet_grandpa::Config for Runtime { type MaxAuthorities = MaxAuthorities; } +type MmrHash = ::Output; + +impl pallet_mmr::Config for Runtime { + const INDEXING_PREFIX: &'static [u8] = b"mmr"; + type Hashing = Keccak256; + type Hash = MmrHash; + type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; + type WeightInfo = (); + type LeafData = pallet_beefy_mmr::Pallet; +} + +parameter_types! { + /// Version of the produced MMR leaf. + /// + /// The version consists of two parts; + /// - `major` (3 bits) + /// - `minor` (5 bits) + /// + /// `major` should be updated only if decoding the previous MMR Leaf format from the payload + /// is not possible (i.e. backward incompatible change). + /// `minor` should be updated if fields are added to the previous MMR Leaf, which given SCALE + /// encoding does not prevent old leafs from being decoded. + /// + /// Hence we expect `major` to be changed really rarely (think never). + /// See [`MmrLeafVersion`] type documentation for more details. + pub LeafVersion: MmrLeafVersion = MmrLeafVersion::new(0, 0); +} + +impl pallet_beefy_mmr::Config for Runtime { + type LeafVersion = LeafVersion; + type BeefyAuthorityToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; + type ParachainHeads = (); +} + parameter_types! { pub const MinimumPeriod: u64 = bp_millau::SLOT_DURATION / 2; } @@ -462,6 +503,11 @@ construct_runtime!( ShiftSessionManager: pallet_shift_session_manager::{Pallet}, RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage}, + // BEEFY Bridges support. + Beefy: pallet_beefy::{Pallet, Storage, Config}, + Mmr: pallet_mmr::{Pallet, Storage}, + MmrLeaf: pallet_beefy_mmr::{Pallet, Storage}, + // Rialto bridge modules. BridgeRialtoGrandpa: pallet_bridge_grandpa::{Pallet, Call, Storage}, BridgeDispatch: pallet_bridge_dispatch::{Pallet, Event}, @@ -606,6 +652,45 @@ impl_runtime_apis! { } } + impl beefy_primitives::BeefyApi for Runtime { + fn validator_set() -> ValidatorSet { + Beefy::validator_set() + } + } + + impl pallet_mmr_primitives::MmrApi for Runtime { + fn generate_proof(leaf_index: u64) + -> Result<(EncodableOpaqueLeaf, MmrProof), MmrError> + { + Mmr::generate_proof(leaf_index) + .map(|(leaf, proof)| (EncodableOpaqueLeaf::from_leaf(&leaf), proof)) + } + + fn verify_proof(leaf: EncodableOpaqueLeaf, proof: MmrProof) + -> Result<(), MmrError> + { + pub type Leaf = < + ::LeafData as LeafDataProvider + >::LeafData; + + let leaf: Leaf = leaf + .into_opaque_leaf() + .try_decode() + .ok_or(MmrError::Verify)?; + Mmr::verify_leaf(leaf, proof) + } + + fn verify_proof_stateless( + root: MmrHash, + leaf: EncodableOpaqueLeaf, + proof: MmrProof + ) -> Result<(), MmrError> { + type MmrHashing = ::Hashing; + let node = DataOrHash::Data(leaf.into_opaque_leaf()); + pallet_mmr::verify_leaf_proof::(root, node, proof) + } + } + impl fg_primitives::GrandpaApi for Runtime { fn current_set_id() -> fg_primitives::SetId { Grandpa::current_set_id() diff --git a/bin/rialto-parachain/node/src/chain_spec.rs b/bin/rialto-parachain/node/src/chain_spec.rs index f93887a21e47..52012423fb71 100644 --- a/bin/rialto-parachain/node/src/chain_spec.rs +++ b/bin/rialto-parachain/node/src/chain_spec.rs @@ -151,7 +151,6 @@ fn testnet_genesis( code: rialto_parachain_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), - changes_trie_config: Default::default(), }, balances: rialto_parachain_runtime::BalancesConfig { balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), diff --git a/bin/rialto-parachain/node/src/cli.rs b/bin/rialto-parachain/node/src/cli.rs index bc2238e2fd44..78c05f90c880 100644 --- a/bin/rialto-parachain/node/src/cli.rs +++ b/bin/rialto-parachain/node/src/cli.rs @@ -103,6 +103,9 @@ pub struct Cli { #[structopt(subcommand)] pub subcommand: Option, + #[structopt(long)] + pub parachain_id: Option, + #[structopt(flatten)] pub run: cumulus_client_cli::RunCmd, diff --git a/bin/rialto-parachain/node/src/command.rs b/bin/rialto-parachain/node/src/command.rs index eb9aba2c104b..e4f52cc026a7 100644 --- a/bin/rialto-parachain/node/src/command.rs +++ b/bin/rialto-parachain/node/src/command.rs @@ -77,7 +77,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - load_spec(id, self.run.parachain_id.unwrap_or(2000).into()) + load_spec(id, self.parachain_id.unwrap_or(2000).into()) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { @@ -153,7 +153,7 @@ macro_rules! construct_async_run { /// Parse command line arguments into service configuration. pub fn run() -> Result<()> { let cli = Cli::from_args(); - sp_core::crypto::set_default_ss58_version(sp_core::crypto::Ss58AddressFormat::Custom( + sp_core::crypto::set_default_ss58_version(sp_core::crypto::Ss58AddressFormat::custom( rialto_parachain_runtime::SS58Prefix::get() as u16, )); @@ -273,7 +273,7 @@ pub fn run() -> Result<()> { [RelayChainCli::executable_name()].iter().chain(cli.relaychain_args.iter()), ); - let id = ParaId::from(cli.run.parachain_id.or(para_id).expect("Missing ParaId")); + let id = ParaId::from(cli.parachain_id.or(para_id).expect("Missing ParaId")); let parachain_account = AccountIdConversion::::into_account(&id); diff --git a/bin/rialto-parachain/node/src/service.rs b/bin/rialto-parachain/node/src/service.rs index 65a8e7bb65c5..bd3afca30744 100644 --- a/bin/rialto-parachain/node/src/service.rs +++ b/bin/rialto-parachain/node/src/service.rs @@ -147,7 +147,7 @@ where let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle()); let telemetry = telemetry.map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", worker.run()); + task_manager.spawn_handle().spawn("telemetry", None, worker.run()); telemetry }); @@ -283,7 +283,6 @@ where transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), import_queue: import_queue.clone(), - on_demand: None, block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), warp_sync: None, })?; @@ -292,8 +291,6 @@ where let rpc_extensions_builder = Box::new(move |_, _| Ok(rpc_ext_builder(rpc_client.clone()))); sc_service::spawn_tasks(sc_service::SpawnTasksParams { - on_demand: None, - remote_blockchain: None, rpc_extensions_builder, client: client.clone(), transaction_pool: transaction_pool.clone(), diff --git a/bin/rialto/node/Cargo.toml b/bin/rialto/node/Cargo.toml index 75be9bcd9fb7..2795f2eecaec 100644 --- a/bin/rialto/node/Cargo.toml +++ b/bin/rialto/node/Cargo.toml @@ -28,10 +28,15 @@ rialto-runtime = { path = "../runtime" } # Substrate Dependencies +beefy-gadget = { git = "https://github.com/paritytech/substrate", branch = "master" } +beefy-gadget-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } +beefy-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "master" } frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } node-inspect = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master" } +pallet-mmr-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "master" } pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } @@ -70,6 +75,10 @@ sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "mast substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "master" } substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "master" } +# Polkadot Dependencies + +polkadot-client = { git = "https://github.com/paritytech/polkadot", branch = "master" } + # Polkadot (parachain) Dependencies polkadot-approval-distribution = { git = "https://github.com/paritytech/polkadot", branch = "master" } @@ -88,7 +97,6 @@ polkadot-node-core-bitfield-signing = { git = "https://github.com/paritytech/pol polkadot-node-core-candidate-validation = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-node-core-chain-api = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-node-core-chain-selection = { git = "https://github.com/paritytech/polkadot", branch = "master" } -polkadot-node-core-dispute-participation = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-node-core-parachains-inherent = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-node-core-provisioner = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-node-core-pvf = { git = "https://github.com/paritytech/polkadot", branch = "master" } diff --git a/bin/rialto/node/src/chain_spec.rs b/bin/rialto/node/src/chain_spec.rs index 3ccfa13e74ac..fb18a35a6af0 100644 --- a/bin/rialto/node/src/chain_spec.rs +++ b/bin/rialto/node/src/chain_spec.rs @@ -14,12 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Parity Bridges Common. If not, see . +use beefy_primitives::crypto::AuthorityId as BeefyId; use bp_rialto::derive_account_from_millau_id; use polkadot_primitives::v1::{AssignmentId, ValidatorId}; use rialto_runtime::{ - AccountId, BabeConfig, BalancesConfig, BridgeKovanConfig, BridgeMillauMessagesConfig, - BridgeRialtoPoaConfig, ConfigurationConfig, GenesisConfig, GrandpaConfig, SessionConfig, - SessionKeys, Signature, SudoConfig, SystemConfig, WASM_BINARY, + AccountId, BabeConfig, BalancesConfig, BeefyConfig, BridgeMillauMessagesConfig, + ConfigurationConfig, GenesisConfig, GrandpaConfig, SessionConfig, SessionKeys, Signature, + SudoConfig, SystemConfig, WASM_BINARY, }; use serde_json::json; use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; @@ -62,10 +63,11 @@ where /// Helper function to generate authority keys. pub fn get_authority_keys_from_seed( s: &str, -) -> (AccountId, BabeId, GrandpaId, ValidatorId, AssignmentId, AuthorityDiscoveryId) { +) -> (AccountId, BabeId, BeefyId, GrandpaId, ValidatorId, AssignmentId, AuthorityDiscoveryId) { ( get_account_id_from_seed::(s), get_from_seed::(s), + get_from_seed::(s), get_from_seed::(s), get_from_seed::(s), get_from_seed::(s), @@ -183,18 +185,20 @@ impl Alternative { fn session_keys( babe: BabeId, + beefy: BeefyId, grandpa: GrandpaId, para_validator: ValidatorId, para_assignment: AssignmentId, authority_discovery: AuthorityDiscoveryId, ) -> SessionKeys { - SessionKeys { babe, grandpa, para_validator, para_assignment, authority_discovery } + SessionKeys { babe, beefy, grandpa, para_validator, para_assignment, authority_discovery } } fn testnet_genesis( initial_authorities: Vec<( AccountId, BabeId, + BeefyId, GrandpaId, ValidatorId, AssignmentId, @@ -207,7 +211,6 @@ fn testnet_genesis( GenesisConfig { system: SystemConfig { code: WASM_BINARY.expect("Rialto development WASM not available").to_vec(), - changes_trie_config: Default::default(), }, balances: BalancesConfig { balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 50)).collect(), @@ -216,8 +219,7 @@ fn testnet_genesis( authorities: Vec::new(), epoch_config: Some(rialto_runtime::BABE_GENESIS_EPOCH_CONFIG), }, - bridge_rialto_poa: load_rialto_poa_bridge_config(), - bridge_kovan: load_kovan_bridge_config(), + beefy: BeefyConfig { authorities: Vec::new() }, grandpa: GrandpaConfig { authorities: Vec::new() }, sudo: SudoConfig { key: root_key }, session: SessionConfig { @@ -233,6 +235,7 @@ fn testnet_genesis( x.3.clone(), x.4.clone(), x.5.clone(), + x.6.clone(), ), ) }) @@ -291,22 +294,6 @@ fn testnet_genesis( } } -fn load_rialto_poa_bridge_config() -> BridgeRialtoPoaConfig { - BridgeRialtoPoaConfig { - initial_header: rialto_runtime::rialto_poa::genesis_header(), - initial_difficulty: 0.into(), - initial_validators: rialto_runtime::rialto_poa::genesis_validators(), - } -} - -fn load_kovan_bridge_config() -> BridgeKovanConfig { - BridgeKovanConfig { - initial_header: rialto_runtime::kovan::genesis_header(), - initial_difficulty: 0.into(), - initial_validators: rialto_runtime::kovan::genesis_validators(), - } -} - #[test] fn derived_dave_account_is_as_expected() { let dave = get_account_id_from_seed::("Dave"); diff --git a/bin/rialto/node/src/command.rs b/bin/rialto/node/src/command.rs index 6f841a9d67f1..7be615a57760 100644 --- a/bin/rialto/node/src/command.rs +++ b/bin/rialto/node/src/command.rs @@ -70,7 +70,7 @@ impl SubstrateCli for Cli { /// Parse and run command line arguments pub fn run() -> sc_cli::Result<()> { let cli = Cli::from_args(); - sp_core::crypto::set_default_ss58_version(sp_core::crypto::Ss58AddressFormat::Custom( + sp_core::crypto::set_default_ss58_version(sp_core::crypto::Ss58AddressFormat::custom( rialto_runtime::SS58Prefix::get() as u16, )); diff --git a/bin/rialto/node/src/overseer.rs b/bin/rialto/node/src/overseer.rs index 17f7edce2a31..9a7025e77c9b 100644 --- a/bin/rialto/node/src/overseer.rs +++ b/bin/rialto/node/src/overseer.rs @@ -63,8 +63,7 @@ pub use polkadot_node_core_candidate_validation::CandidateValidationSubsystem; pub use polkadot_node_core_chain_api::ChainApiSubsystem; pub use polkadot_node_core_chain_selection::ChainSelectionSubsystem; pub use polkadot_node_core_dispute_coordinator::DisputeCoordinatorSubsystem; -pub use polkadot_node_core_dispute_participation::DisputeParticipationSubsystem; -pub use polkadot_node_core_provisioner::ProvisioningSubsystem as ProvisionerSubsystem; +pub use polkadot_node_core_provisioner::ProvisionerSubsystem; pub use polkadot_node_core_runtime_api::RuntimeApiSubsystem; pub use polkadot_statement_distribution::StatementDistribution as StatementDistributionSubsystem; @@ -160,7 +159,6 @@ pub fn prepared_overseer_builder( ApprovalVotingSubsystem, GossipSupportSubsystem, DisputeCoordinatorSubsystem, - DisputeParticipationSubsystem, DisputeDistributionSubsystem, ChainSelectionSubsystem, >, @@ -249,7 +247,6 @@ where keystore.clone(), Metrics::register(registry)?, )) - .dispute_participation(DisputeParticipationSubsystem::new()) .dispute_distribution(DisputeDistributionSubsystem::new( keystore, dispute_req_receiver, diff --git a/bin/rialto/node/src/service.rs b/bin/rialto/node/src/service.rs index e2e811eaa67f..3349b09edb9f 100644 --- a/bin/rialto/node/src/service.rs +++ b/bin/rialto/node/src/service.rs @@ -17,16 +17,11 @@ //! Rialto chain node service. //! //! The code is mostly copy of `service/src/lib.rs` file from Polkadot repository -//! without optional functions. - -// this warning comes from Error enum (sc_cli::Error in particular) && it isn't easy to use box -// there -#![allow(clippy::large_enum_variant)] -// this warning comes from `sc_service::PartialComponents` type -#![allow(clippy::type_complexity)] +//! without optional functions, and with BEEFY added on top. use crate::overseer::{OverseerGen, OverseerGenArgs}; +use polkadot_client::RuntimeApiCollection; use polkadot_node_core_approval_voting::Config as ApprovalVotingConfig; use polkadot_node_core_av_store::Config as AvailabilityConfig; use polkadot_node_core_candidate_validation::Config as CandidateValidationConfig; @@ -43,7 +38,7 @@ use sc_service::{config::PrometheusConfig, Configuration, TaskManager}; use sc_telemetry::{Telemetry, TelemetryWorker}; use sp_api::{ConstructRuntimeApi, HeaderT}; use sp_consensus::SelectChain; -use sp_runtime::traits::{BlakeTwo256, Block as BlockT}; +use sp_runtime::traits::Block as BlockT; use std::{sync::Arc, time::Duration}; use substrate_prometheus_endpoint::Registry; @@ -115,52 +110,6 @@ type FullBabeBlockImport = type FullBabeLink = sc_consensus_babe::BabeLink; type FullGrandpaLink = sc_finality_grandpa::LinkHalf; -/// A set of APIs that polkadot-like runtimes must implement. -/// -/// This is the copy of `polkadot_service::RuntimeApiCollection` with some APIs removed -/// (right now - MMR and BEEFY). -pub trait RequiredApiCollection: - sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt - + sp_consensus_babe::BabeApi - + sp_finality_grandpa::GrandpaApi - + polkadot_primitives::v1::ParachainHost - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi< - Block, - bp_rialto::AccountId, - rialto_runtime::Index, - > + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_authority_discovery::AuthorityDiscoveryApi -where - >::StateBackend: sp_api::StateBackend, -{ -} - -impl RequiredApiCollection for Api -where - Api: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt - + sp_consensus_babe::BabeApi - + sp_finality_grandpa::GrandpaApi - + polkadot_primitives::v1::ParachainHost - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi< - Block, - bp_rialto::AccountId, - rialto_runtime::Index, - > + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_authority_discovery::AuthorityDiscoveryApi, - >::StateBackend: sp_api::StateBackend, -{ -} - // If we're using prometheus, use a registry with a prefix of `polkadot`. fn set_prometheus_registry(config: &mut Configuration) -> Result<(), Error> { if let Some(PrometheusConfig { registry, .. }) = config.prometheus_config.as_mut() { @@ -170,6 +119,8 @@ fn set_prometheus_registry(config: &mut Configuration) -> Result<(), Error> { Ok(()) } +// Needed here for complex return type while `impl Trait` in type aliases is unstable. +#[allow(clippy::type_complexity)] pub fn new_partial( config: &mut Configuration, ) -> Result< @@ -184,7 +135,12 @@ pub fn new_partial( sc_rpc::DenyUnsafe, sc_rpc::SubscriptionTaskExecutor, ) -> Result, sc_service::Error>, - (FullBabeBlockImport, FullGrandpaLink, FullBabeLink), + ( + FullBabeBlockImport, + FullGrandpaLink, + FullBabeLink, + beefy_gadget::notification::BeefySignedCommitmentSender, + ), sc_finality_grandpa::SharedVoterState, std::time::Duration, Option, @@ -195,7 +151,7 @@ pub fn new_partial( where RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, >::RuntimeApi: - RequiredApiCollection>, + RuntimeApiCollection>, ExecutorDispatch: NativeExecutionDispatch + 'static, { set_prometheus_registry(config)?; @@ -226,7 +182,7 @@ where let client = Arc::new(client); let telemetry = telemetry.map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", worker.run()); + task_manager.spawn_handle().spawn("telemetry", None, worker.run()); telemetry }); @@ -282,7 +238,10 @@ where let shared_authority_set = grandpa_link.shared_authority_set().clone(); let shared_voter_state = sc_finality_grandpa::SharedVoterState::empty(); - let import_setup = (block_import, grandpa_link, babe_link); + let (signed_commitment_sender, signed_commitment_stream) = + beefy_gadget::notification::BeefySignedCommitmentStream::channel(); + + let import_setup = (block_import, grandpa_link, babe_link, signed_commitment_sender); let rpc_setup = shared_voter_state.clone(); let slot_duration = babe_config.slot_duration(); @@ -316,14 +275,23 @@ where pool, deny_unsafe, ))); - io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new(client))); + io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new( + client.clone(), + ))); io.extend_with(GrandpaApi::to_delegate(GrandpaRpcHandler::new( shared_authority_set.clone(), shared_voter_state, justification_stream.clone(), - subscription_executor, + subscription_executor.clone(), finality_proof_provider, ))); + io.extend_with(beefy_gadget_rpc::BeefyApi::to_delegate( + beefy_gadget_rpc::BeefyRpcHandler::new( + signed_commitment_stream.clone(), + subscription_executor, + ), + )); + io.extend_with(pallet_mmr_rpc::MmrApi::to_delegate(pallet_mmr_rpc::Mmr::new(client))); Ok(io) } @@ -361,7 +329,7 @@ async fn active_leaves( where RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, >::RuntimeApi: - RequiredApiCollection>, + RuntimeApiCollection>, ExecutorDispatch: NativeExecutionDispatch + 'static, { let best_block = select_chain.best_chain().await?; @@ -406,7 +374,7 @@ pub fn new_full( where RuntimeApi: ConstructRuntimeApi + Send + Sync + 'static, >::RuntimeApi: - RequiredApiCollection>, + RuntimeApiCollection>, ExecutorDispatch: NativeExecutionDispatch + 'static, { let is_collator = false; @@ -442,6 +410,8 @@ where // Substrate nodes. config.network.extra_sets.push(sc_finality_grandpa::grandpa_peers_set_config()); + config.network.extra_sets.push(beefy_gadget::beefy_peers_set_config()); + { use polkadot_network_bridge::{peer_sets_info, IsAuthority}; let is_authority = if role.is_authority() { IsAuthority::Yes } else { IsAuthority::No }; @@ -474,7 +444,6 @@ where transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), import_queue, - on_demand: None, block_announce_validator_builder: None, warp_sync: Some(warp_sync), })?; @@ -533,13 +502,11 @@ where rpc_extensions_builder: Box::new(rpc_extensions_builder), transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, - on_demand: None, - remote_blockchain: None, system_rpc_tx, telemetry: telemetry.as_mut(), })?; - let (block_import, link_half, babe_link) = import_setup; + let (block_import, link_half, babe_link, signed_commitment_sender) = import_setup; let overseer_client = client.clone(); let spawner = task_manager.spawn_handle(); @@ -574,7 +541,9 @@ where prometheus_registry.clone(), ); - task_manager.spawn_handle().spawn("authority-discovery-worker", worker.run()); + task_manager + .spawn_handle() + .spawn("authority-discovery-worker", None, worker.run()); Some(service) } else { None @@ -619,6 +588,7 @@ where let handle = handle.clone(); task_manager.spawn_essential_handle().spawn_blocking( "overseer", + None, Box::pin(async move { use futures::{pin_mut, select, FutureExt}; @@ -705,7 +675,7 @@ where }; let babe = sc_consensus_babe::start_babe(babe_config)?; - task_manager.spawn_essential_handle().spawn_blocking("babe", babe); + task_manager.spawn_essential_handle().spawn_blocking("babe", None, babe); } // if the node isn't actively participating in consensus then it doesn't @@ -713,6 +683,23 @@ where let keystore_opt = if role.is_authority() { Some(keystore_container.sync_keystore()) } else { None }; + let beefy_params = beefy_gadget::BeefyParams { + client: client.clone(), + backend: backend.clone(), + key_store: keystore_opt.clone(), + network: network.clone(), + signed_commitment_sender, + min_block_delta: 2, + prometheus_registry: prometheus_registry.clone(), + }; + + // Start the BEEFY bridge gadget. + task_manager.spawn_essential_handle().spawn_blocking( + "beefy-gadget", + None, + beefy_gadget::start_beefy_gadget::<_, _, _, _>(beefy_params), + ); + let config = sc_finality_grandpa::Config { // FIXME substrate#1578 make this available through chainspec gossip_duration: Duration::from_millis(1000), @@ -751,6 +738,7 @@ where task_manager.spawn_essential_handle().spawn_blocking( "grandpa-voter", + None, sc_finality_grandpa::run_grandpa_voter(grandpa_config)?, ); } diff --git a/bin/rialto/runtime/Cargo.toml b/bin/rialto/runtime/Cargo.toml index c0be917c2bcc..3c4ec1ebce1c 100644 --- a/bin/rialto/runtime/Cargo.toml +++ b/bin/rialto/runtime/Cargo.toml @@ -17,8 +17,6 @@ serde = { version = "1.0", optional = true, features = ["derive"] } # Bridge dependencies -bp-currency-exchange = { path = "../../../primitives/currency-exchange", default-features = false } -bp-eth-poa = { path = "../../../primitives/ethereum-poa", default-features = false } bp-header-chain = { path = "../../../primitives/header-chain", default-features = false } bp-message-dispatch = { path = "../../../primitives/message-dispatch", default-features = false } bp-messages = { path = "../../../primitives/messages", default-features = false } @@ -26,15 +24,14 @@ bp-millau = { path = "../../../primitives/chain-millau", default-features = fals bp-rialto = { path = "../../../primitives/chain-rialto", default-features = false } bp-runtime = { path = "../../../primitives/runtime", default-features = false } bridge-runtime-common = { path = "../../runtime-common", default-features = false } -pallet-bridge-currency-exchange = { path = "../../../modules/currency-exchange", default-features = false } pallet-bridge-dispatch = { path = "../../../modules/dispatch", default-features = false } -pallet-bridge-eth-poa = { path = "../../../modules/ethereum", default-features = false } pallet-bridge-grandpa = { path = "../../../modules/grandpa", default-features = false } pallet-bridge-messages = { path = "../../../modules/messages", default-features = false } pallet-shift-session-manager = { path = "../../../modules/shift-session-manager", default-features = false } # Substrate Dependencies +beefy-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } frame-executive = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -43,7 +40,11 @@ frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate" pallet-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-babe = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-beefy = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-beefy-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-mmr = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } +pallet-mmr-primitives = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-session = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } @@ -80,8 +81,7 @@ substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", bran [features] default = ["std"] std = [ - "bp-currency-exchange/std", - "bp-eth-poa/std", + "beefy-primitives/std", "bp-header-chain/std", "bp-message-dispatch/std", "bp-messages/std", @@ -99,12 +99,14 @@ std = [ "pallet-authority-discovery/std", "pallet-babe/std", "pallet-balances/std", - "pallet-bridge-currency-exchange/std", + "pallet-beefy/std", + "pallet-beefy-mmr/std", "pallet-bridge-dispatch/std", - "pallet-bridge-eth-poa/std", "pallet-bridge-grandpa/std", "pallet-bridge-messages/std", "pallet-grandpa/std", + "pallet-mmr/std", + "pallet-mmr-primitives/std", "pallet-shift-session-manager/std", "pallet-sudo/std", "pallet-timestamp/std", @@ -137,8 +139,6 @@ runtime-benchmarks = [ "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", "libsecp256k1", - "pallet-bridge-currency-exchange/runtime-benchmarks", - "pallet-bridge-eth-poa/runtime-benchmarks", "pallet-bridge-messages/runtime-benchmarks", "sp-runtime/runtime-benchmarks", ] diff --git a/bin/rialto/runtime/src/benches.rs b/bin/rialto/runtime/src/benches.rs deleted file mode 100644 index ce3f84069795..000000000000 --- a/bin/rialto/runtime/src/benches.rs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! We want to use a different validator configuration for benchmarking than what's used in Kovan -//! or in our Rialto test network. However, we can't configure a new validator set on the fly which -//! means we need to wire the runtime together like this - -use pallet_bridge_eth_poa::{ValidatorsConfiguration, ValidatorsSource}; -use sp_std::vec; - -pub use crate::kovan::{ - genesis_header, genesis_validators, BridgeAuraConfiguration, FinalityVotesCachingInterval, - PruningStrategy, -}; - -frame_support::parameter_types! { - pub BridgeValidatorsConfiguration: pallet_bridge_eth_poa::ValidatorsConfiguration = bench_validator_config(); -} - -fn bench_validator_config() -> ValidatorsConfiguration { - ValidatorsConfiguration::Multi(vec![ - (0, ValidatorsSource::List(vec![[1; 20].into()])), - (1, ValidatorsSource::Contract([3; 20].into(), vec![[1; 20].into()])), - ]) -} diff --git a/bin/rialto/runtime/src/exchange.rs b/bin/rialto/runtime/src/exchange.rs deleted file mode 100644 index 4e18053e52e3..000000000000 --- a/bin/rialto/runtime/src/exchange.rs +++ /dev/null @@ -1,259 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! Support for PoA -> Substrate native tokens exchange. -//! -//! If you want to exchange native PoA tokens for native Substrate -//! chain tokens, you need to: -//! 1) send some PoA tokens to `LOCK_FUNDS_ADDRESS` address on PoA chain. Data field of -//! the transaction must be SCALE-encoded id of Substrate account that will receive -//! funds on Substrate chain; -//! 2) wait until the 'lock funds' transaction is mined on PoA chain; -//! 3) wait until the block containing the 'lock funds' transaction is finalized on PoA chain; -//! 4) wait until the required PoA header and its finality are provided -//! to the PoA -> Substrate bridge module (it can be provided by you); -//! 5) receive tokens by providing proof-of-inclusion of PoA transaction. - -use bp_currency_exchange::{ - Error as ExchangeError, LockFundsTransaction, MaybeLockFundsTransaction, - Result as ExchangeResult, -}; -use bp_eth_poa::{transaction_decode_rlp, RawTransaction, RawTransactionReceipt}; -use codec::{Decode, Encode}; -use frame_support::RuntimeDebug; -use hex_literal::hex; -use scale_info::TypeInfo; -use sp_std::vec::Vec; - -/// Ethereum address where locked PoA funds must be sent to. -pub const LOCK_FUNDS_ADDRESS: [u8; 20] = hex!("DEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF"); - -/// Ethereum transaction inclusion proof. -#[derive(Clone, Encode, Decode, Eq, PartialEq, RuntimeDebug, TypeInfo)] -pub struct EthereumTransactionInclusionProof { - /// Hash of the block with transaction. - pub block: sp_core::H256, - /// Index of the transaction within the block. - pub index: u64, - /// The proof itself (right now it is all RLP-encoded transactions of the block + - /// RLP-encoded receipts of all transactions of the block). - pub proof: Vec<(RawTransaction, RawTransactionReceipt)>, -} - -/// We uniquely identify transfer by the pair (sender, nonce). -/// -/// The assumption is that this pair will never appear more than once in -/// transactions included into finalized blocks. This is obviously true -/// for any existing eth-like chain (that keep current TX format), because -/// otherwise transaction can be replayed over and over. -#[derive(Encode, Decode, PartialEq, RuntimeDebug, TypeInfo)] -pub struct EthereumTransactionTag { - /// Account that has locked funds. - pub account: [u8; 20], - /// Lock transaction nonce. - pub nonce: sp_core::U256, -} - -/// Ethereum transaction from runtime perspective. -pub struct EthTransaction; - -impl MaybeLockFundsTransaction for EthTransaction { - type Transaction = RawTransaction; - type Id = EthereumTransactionTag; - type Recipient = crate::AccountId; - type Amount = crate::Balance; - - fn parse( - raw_tx: &Self::Transaction, - ) -> ExchangeResult> { - let tx = transaction_decode_rlp(raw_tx).map_err(|_| ExchangeError::InvalidTransaction)?; - - // we only accept transactions sending funds directly to the pre-configured address - if tx.unsigned.to != Some(LOCK_FUNDS_ADDRESS.into()) { - log::trace!( - target: "runtime", - "Failed to parse fund locks transaction. Invalid peer recipient: {:?}", - tx.unsigned.to, - ); - - return Err(ExchangeError::InvalidTransaction) - } - - let mut recipient_raw = sp_core::H256::default(); - match tx.unsigned.payload.len() { - 32 => recipient_raw.as_fixed_bytes_mut().copy_from_slice(&tx.unsigned.payload), - len => { - log::trace!( - target: "runtime", - "Failed to parse fund locks transaction. Invalid recipient length: {}", - len, - ); - - return Err(ExchangeError::InvalidRecipient) - }, - } - let amount = tx.unsigned.value.low_u128(); - - if tx.unsigned.value != amount.into() { - log::trace!( - target: "runtime", - "Failed to parse fund locks transaction. Invalid amount: {}", - tx.unsigned.value, - ); - - return Err(ExchangeError::InvalidAmount) - } - - Ok(LockFundsTransaction { - id: EthereumTransactionTag { - account: *tx.sender.as_fixed_bytes(), - nonce: tx.unsigned.nonce, - }, - recipient: crate::AccountId::from(*recipient_raw.as_fixed_bytes()), - amount, - }) - } -} - -/// Prepares everything required to bench claim of funds locked by given transaction. -#[cfg(feature = "runtime-benchmarks")] -pub(crate) fn prepare_environment_for_claim, I: 'static>( - transactions: &[(RawTransaction, RawTransactionReceipt)], -) -> bp_eth_poa::H256 { - use bp_eth_poa::compute_merkle_root; - use pallet_bridge_eth_poa::{ - test_utils::{insert_dummy_header, validator_utils::validator, HeaderBuilder}, - BridgeStorage, Storage, - }; - - let mut storage = BridgeStorage::::new(); - let header = HeaderBuilder::with_parent_number_on_runtime::(0) - .transactions_root(compute_merkle_root(transactions.iter().map(|(tx, _)| tx))) - .receipts_root(compute_merkle_root(transactions.iter().map(|(_, receipt)| receipt))) - .sign_by(&validator(0)); - let header_id = header.compute_id(); - insert_dummy_header(&mut storage, header); - storage.finalize_and_prune_headers(Some(header_id), 0); - - header_id.hash -} - -/// Prepare signed ethereum lock-funds transaction. -#[cfg(any(feature = "runtime-benchmarks", test))] -pub(crate) fn prepare_ethereum_transaction( - recipient: &crate::AccountId, - editor: impl Fn(&mut bp_eth_poa::UnsignedTransaction), -) -> (RawTransaction, RawTransactionReceipt) { - use bp_eth_poa::{signatures::SignTransaction, Receipt, TransactionOutcome}; - - // prepare tx for OpenEthereum private dev chain: - // chain id is 0x11 - // sender secret is 0x4d5db4107d237df6a3d58ee5f70ae63d73d7658d4026f2eefd2f204c81682cb7 - let chain_id = 0x11; - let signer = libsecp256k1::SecretKey::parse(&hex!( - "4d5db4107d237df6a3d58ee5f70ae63d73d7658d4026f2eefd2f204c81682cb7" - )) - .unwrap(); - let recipient_raw: &[u8; 32] = recipient.as_ref(); - let mut eth_tx = bp_eth_poa::UnsignedTransaction { - nonce: 0.into(), - to: Some(LOCK_FUNDS_ADDRESS.into()), - value: 100.into(), - gas: 100_000.into(), - gas_price: 100_000.into(), - payload: recipient_raw.to_vec(), - }; - editor(&mut eth_tx); - ( - eth_tx.sign_by(&signer, Some(chain_id)), - Receipt { - outcome: TransactionOutcome::StatusCode(1), - gas_used: Default::default(), - log_bloom: Default::default(), - logs: Vec::new(), - } - .rlp(), - ) -} - -#[cfg(test)] -mod tests { - use super::*; - use hex_literal::hex; - - fn ferdie() -> crate::AccountId { - hex!("1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c").into() - } - - #[test] - fn valid_transaction_accepted() { - assert_eq!( - EthTransaction::parse(&prepare_ethereum_transaction(&ferdie(), |_| {}).0), - Ok(LockFundsTransaction { - id: EthereumTransactionTag { - account: hex!("00a329c0648769a73afac7f9381e08fb43dbea72"), - nonce: 0.into(), - }, - recipient: ferdie(), - amount: 100, - }), - ); - } - - #[test] - fn invalid_transaction_rejected() { - assert_eq!(EthTransaction::parse(&Vec::new()), Err(ExchangeError::InvalidTransaction),); - } - - #[test] - fn transaction_with_invalid_peer_recipient_rejected() { - assert_eq!( - EthTransaction::parse( - &prepare_ethereum_transaction(&ferdie(), |tx| { - tx.to = None; - }) - .0 - ), - Err(ExchangeError::InvalidTransaction), - ); - } - - #[test] - fn transaction_with_invalid_recipient_rejected() { - assert_eq!( - EthTransaction::parse( - &prepare_ethereum_transaction(&ferdie(), |tx| { - tx.payload.clear(); - }) - .0 - ), - Err(ExchangeError::InvalidRecipient), - ); - } - - #[test] - fn transaction_with_invalid_amount_rejected() { - assert_eq!( - EthTransaction::parse( - &prepare_ethereum_transaction(&ferdie(), |tx| { - tx.value = sp_core::U256::from(u128::max_value()) + sp_core::U256::from(1); - }) - .0 - ), - Err(ExchangeError::InvalidAmount), - ); - } -} diff --git a/bin/rialto/runtime/src/kovan.rs b/bin/rialto/runtime/src/kovan.rs deleted file mode 100644 index 95b4f8c42f03..000000000000 --- a/bin/rialto/runtime/src/kovan.rs +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -use crate::exchange::EthereumTransactionInclusionProof; - -use bp_eth_poa::{Address, AuraHeader, RawTransaction, U256}; -use bp_header_chain::InclusionProofVerifier; -use frame_support::RuntimeDebug; -use hex_literal::hex; -use pallet_bridge_eth_poa::{ - AuraConfiguration, ChainTime as TChainTime, PruningStrategy as BridgePruningStrategy, - ValidatorsConfiguration, ValidatorsSource, -}; -use sp_std::prelude::*; - -frame_support::parameter_types! { - pub const FinalityVotesCachingInterval: Option = Some(16); - pub BridgeAuraConfiguration: AuraConfiguration = - kovan_aura_configuration(); - pub BridgeValidatorsConfiguration: ValidatorsConfiguration = - kovan_validators_configuration(); -} - -/// Max number of finalized headers to keep. It is equivalent of around 24 hours of -/// finalized blocks on current Kovan chain. -const FINALIZED_HEADERS_TO_KEEP: u64 = 20_000; - -/// Aura engine configuration for Kovan chain. -pub fn kovan_aura_configuration() -> AuraConfiguration { - AuraConfiguration { - empty_steps_transition: u64::max_value(), - strict_empty_steps_transition: 0, - validate_step_transition: 0x16e360, - validate_score_transition: 0x41a3c4, - two_thirds_majority_transition: u64::max_value(), - min_gas_limit: 0x1388.into(), - max_gas_limit: U256::max_value(), - maximum_extra_data_size: 0x20, - } -} - -/// Validators configuration for Kovan chain. -pub fn kovan_validators_configuration() -> ValidatorsConfiguration { - ValidatorsConfiguration::Multi(vec![ - (0, ValidatorsSource::List(genesis_validators())), - ( - 10960440, - ValidatorsSource::List(vec![ - hex!("00D6Cc1BA9cf89BD2e58009741f4F7325BAdc0ED").into(), - hex!("0010f94b296a852aaac52ea6c5ac72e03afd032d").into(), - hex!("00a0a24b9f0e5ec7aa4c7389b8302fd0123194de").into(), - ]), - ), - ( - 10960500, - ValidatorsSource::Contract( - hex!("aE71807C1B0a093cB1547b682DC78316D945c9B8").into(), - vec![ - hex!("d05f7478c6aa10781258c5cc8b4f385fc8fa989c").into(), - hex!("03801efb0efe2a25ede5dd3a003ae880c0292e4d").into(), - hex!("a4df255ecf08bbf2c28055c65225c9a9847abd94").into(), - hex!("596e8221a30bfe6e7eff67fee664a01c73ba3c56").into(), - hex!("faadface3fbd81ce37b0e19c0b65ff4234148132").into(), - ], - ), - ), - ]) -} - -/// Genesis validators set of Kovan chain. -pub fn genesis_validators() -> Vec { - vec![ - hex!("00D6Cc1BA9cf89BD2e58009741f4F7325BAdc0ED").into(), - hex!("00427feae2419c15b89d1c21af10d1b6650a4d3d").into(), - hex!("4Ed9B08e6354C70fE6F8CB0411b0d3246b424d6c").into(), - hex!("0020ee4Be0e2027d76603cB751eE069519bA81A1").into(), - hex!("0010f94b296a852aaac52ea6c5ac72e03afd032d").into(), - hex!("007733a1FE69CF3f2CF989F81C7b4cAc1693387A").into(), - hex!("00E6d2b931F55a3f1701c7389d592a7778897879").into(), - hex!("00e4a10650e5a6D6001C38ff8E64F97016a1645c").into(), - hex!("00a0a24b9f0e5ec7aa4c7389b8302fd0123194de").into(), - ] -} - -/// Genesis header of the Kovan chain. -pub fn genesis_header() -> AuraHeader { - AuraHeader { - parent_hash: Default::default(), - timestamp: 0, - number: 0, - author: Default::default(), - transactions_root: hex!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - .into(), - uncles_hash: hex!("1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347") - .into(), - extra_data: vec![], - state_root: hex!("2480155b48a1cea17d67dbfdfaafe821c1d19cdd478c5358e8ec56dec24502b2").into(), - receipts_root: hex!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - .into(), - log_bloom: Default::default(), - gas_used: Default::default(), - gas_limit: 6000000.into(), - difficulty: 131072.into(), - seal: vec![ - vec![128], - vec![ - 184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - ], - ], - } -} - -/// Kovan headers pruning strategy. -/// -/// We do not prune unfinalized headers because exchange module only accepts -/// claims from finalized headers. And if we're pruning unfinalized headers, then -/// some claims may never be accepted. -#[derive(Default, RuntimeDebug)] -pub struct PruningStrategy; - -impl BridgePruningStrategy for PruningStrategy { - fn pruning_upper_bound(&mut self, _best_number: u64, best_finalized_number: u64) -> u64 { - best_finalized_number.saturating_sub(FINALIZED_HEADERS_TO_KEEP) - } -} - -/// PoA Header timestamp verification against `Timestamp` pallet. -#[derive(Default, RuntimeDebug)] -pub struct ChainTime; - -impl TChainTime for ChainTime { - fn is_timestamp_ahead(&self, timestamp: u64) -> bool { - let now = super::Timestamp::now(); - timestamp > now - } -} - -/// The Kovan Blockchain as seen by the runtime. -pub struct KovanBlockchain; - -impl InclusionProofVerifier for KovanBlockchain { - type Transaction = RawTransaction; - type TransactionInclusionProof = EthereumTransactionInclusionProof; - - fn verify_transaction_inclusion_proof( - proof: &Self::TransactionInclusionProof, - ) -> Option { - let is_transaction_finalized = crate::BridgeKovan::verify_transaction_finalized( - proof.block, - proof.index, - &proof.proof, - ); - - if !is_transaction_finalized { - return None - } - - proof.proof.get(proof.index as usize).map(|(tx, _)| tx.clone()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn pruning_strategy_keeps_enough_headers() { - assert_eq!( - PruningStrategy::default().pruning_upper_bound(100_000, 10_000), - 0, - "10_000 <= 20_000 => nothing should be pruned yet", - ); - - assert_eq!( - PruningStrategy::default().pruning_upper_bound(100_000, 20_000), - 0, - "20_000 <= 20_000 => nothing should be pruned yet", - ); - - assert_eq!( - PruningStrategy::default().pruning_upper_bound(100_000, 30_000), - 10_000, - "20_000 <= 30_000 => we're ready to prune first 10_000 headers", - ); - } -} diff --git a/bin/rialto/runtime/src/lib.rs b/bin/rialto/runtime/src/lib.rs index bf5a8b36ec19..0987184c73aa 100644 --- a/bin/rialto/runtime/src/lib.rs +++ b/bin/rialto/runtime/src/lib.rs @@ -30,30 +30,28 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); -pub mod exchange; - -#[cfg(feature = "runtime-benchmarks")] -pub mod benches; -pub mod kovan; pub mod millau_messages; pub mod parachains; -pub mod rialto_poa; use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge}; +use beefy_primitives::{crypto::AuthorityId as BeefyId, mmr::MmrLeafVersion, ValidatorSet}; use bridge_runtime_common::messages::{ source::estimate_message_dispatch_and_delivery_fee, MessageBridge, }; use pallet_grandpa::{ fg_primitives, AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList, }; +use pallet_mmr_primitives::{ + DataOrHash, EncodableOpaqueLeaf, Error as MmrError, LeafDataProvider, Proof as MmrProof, +}; use pallet_transaction_payment::{FeeDetails, Multiplier, RuntimeDispatchInfo}; use sp_api::impl_runtime_apis; use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, Block as BlockT, NumberFor, OpaqueKeys}, + traits::{AccountIdLookup, Block as BlockT, Keccak256, NumberFor, OpaqueKeys}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, FixedPointNumber, MultiSignature, MultiSigner, Perquintill, }; @@ -72,8 +70,6 @@ pub use frame_support::{ pub use frame_system::Call as SystemCall; pub use pallet_balances::Call as BalancesCall; -pub use pallet_bridge_currency_exchange::Call as BridgeCurrencyExchangeCall; -pub use pallet_bridge_eth_poa::Call as BridgeEthPoACall; pub use pallet_bridge_grandpa::Call as BridgeGrandpaMillauCall; pub use pallet_bridge_messages::Call as MessagesCall; pub use pallet_sudo::Call as SudoCall; @@ -109,9 +105,6 @@ pub type Hash = bp_rialto::Hash; /// Hashing algorithm used by the chain. pub type Hashing = bp_rialto::Hasher; -/// Digest item type. -pub type DigestItem = generic::DigestItem; - /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know /// the specifics of the runtime. They can then be made to be agnostic over specific formats /// of data like extrinsics, allowing for them to continue syncing the network through upgrades @@ -133,6 +126,7 @@ impl_opaque_keys! { pub struct SessionKeys { pub babe: Babe, pub grandpa: Grandpa, + pub beefy: Beefy, pub para_validator: Initializer, pub para_assignment: SessionInfo, pub authority_discovery: AuthorityDiscovery, @@ -253,46 +247,8 @@ impl pallet_babe::Config for Runtime { type WeightInfo = (); } -type RialtoPoA = pallet_bridge_eth_poa::Instance1; -impl pallet_bridge_eth_poa::Config for Runtime { - type AuraConfiguration = rialto_poa::BridgeAuraConfiguration; - type FinalityVotesCachingInterval = rialto_poa::FinalityVotesCachingInterval; - type ValidatorsConfiguration = rialto_poa::BridgeValidatorsConfiguration; - type PruningStrategy = rialto_poa::PruningStrategy; - type ChainTime = rialto_poa::ChainTime; - type OnHeadersSubmitted = (); -} - -type Kovan = pallet_bridge_eth_poa::Instance2; -impl pallet_bridge_eth_poa::Config for Runtime { - type AuraConfiguration = kovan::BridgeAuraConfiguration; - type FinalityVotesCachingInterval = kovan::FinalityVotesCachingInterval; - type ValidatorsConfiguration = kovan::BridgeValidatorsConfiguration; - type PruningStrategy = kovan::PruningStrategy; - type ChainTime = kovan::ChainTime; - type OnHeadersSubmitted = (); -} - -type RialtoCurrencyExchange = pallet_bridge_currency_exchange::Instance1; -impl pallet_bridge_currency_exchange::Config for Runtime { - type OnTransactionSubmitted = (); - type PeerBlockchain = rialto_poa::RialtoBlockchain; - type PeerMaybeLockFundsTransaction = exchange::EthTransaction; - type RecipientsMap = bp_currency_exchange::IdentityRecipients; - type Amount = Balance; - type CurrencyConverter = bp_currency_exchange::IdentityCurrencyConverter; - type DepositInto = DepositInto; -} - -type KovanCurrencyExchange = pallet_bridge_currency_exchange::Instance2; -impl pallet_bridge_currency_exchange::Config for Runtime { - type OnTransactionSubmitted = (); - type PeerBlockchain = kovan::KovanBlockchain; - type PeerMaybeLockFundsTransaction = exchange::EthTransaction; - type RecipientsMap = bp_currency_exchange::IdentityRecipients; - type Amount = Balance; - type CurrencyConverter = bp_currency_exchange::IdentityCurrencyConverter; - type DepositInto = DepositInto; +impl pallet_beefy::Config for Runtime { + type BeefyId = BeefyId; } impl pallet_bridge_dispatch::Config for Runtime { @@ -307,68 +263,6 @@ impl pallet_bridge_dispatch::Config for Runtime { type AccountIdConverter = bp_rialto::AccountIdConverter; } -pub struct DepositInto; - -impl bp_currency_exchange::DepositInto for DepositInto { - type Recipient = AccountId; - type Amount = Balance; - - fn deposit_into( - recipient: Self::Recipient, - amount: Self::Amount, - ) -> bp_currency_exchange::Result<()> { - // let balances module make all checks for us (it won't allow depositing lower than - // existential deposit, balance overflow, ...) - let deposited = as Currency>::deposit_creating( - &recipient, amount, - ); - - // I'm dropping deposited here explicitly to illustrate the fact that it'll update - // `TotalIssuance` on drop - let deposited_amount = deposited.peek(); - drop(deposited); - - // we have 3 cases here: - // - deposited == amount: success - // - deposited == 0: deposit has failed and no changes to storage were made - // - deposited != 0: (should never happen in practice) deposit has been partially completed - match deposited_amount { - _ if deposited_amount == amount => { - log::trace!( - target: "runtime", - "Deposited {} to {:?}", - amount, - recipient, - ); - - Ok(()) - }, - _ if deposited_amount == 0 => { - log::error!( - target: "runtime", - "Deposit of {} to {:?} has failed", - amount, - recipient, - ); - - Err(bp_currency_exchange::Error::DepositFailed) - }, - _ => { - log::error!( - target: "runtime", - "Deposit of {} to {:?} has partially competed. {} has been deposited", - amount, - recipient, - deposited_amount, - ); - - // we can't return DepositFailed error here, because storage changes were made - Err(bp_currency_exchange::Error::DepositPartiallyFailed) - }, - } - } -} - impl pallet_grandpa::Config for Runtime { type Event = Event; type Call = Call; @@ -385,6 +279,38 @@ impl pallet_grandpa::Config for Runtime { type WeightInfo = (); } +impl pallet_mmr::Config for Runtime { + const INDEXING_PREFIX: &'static [u8] = b"mmr"; + type Hashing = Keccak256; + type Hash = ::Output; + type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; + type WeightInfo = (); + type LeafData = pallet_beefy_mmr::Pallet; +} + +parameter_types! { + /// Version of the produced MMR leaf. + /// + /// The version consists of two parts; + /// - `major` (3 bits) + /// - `minor` (5 bits) + /// + /// `major` should be updated only if decoding the previous MMR Leaf format from the payload + /// is not possible (i.e. backward incompatible change). + /// `minor` should be updated if fields are added to the previous MMR Leaf, which given SCALE + /// encoding does not prevent old leafs from being decoded. + /// + /// Hence we expect `major` to be changed really rarely (think never). + /// See [`MmrLeafVersion`] type documentation for more details. + pub LeafVersion: MmrLeafVersion = MmrLeafVersion::new(0, 0); +} + +impl pallet_beefy_mmr::Config for Runtime { + type LeafVersion = LeafVersion; + type BeefyAuthorityToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; + type ParachainHeads = (); +} + parameter_types! { pub const MinimumPeriod: u64 = bp_rialto::SLOT_DURATION / 2; } @@ -578,11 +504,10 @@ construct_runtime!( Grandpa: pallet_grandpa::{Pallet, Call, Storage, Config, Event}, ShiftSessionManager: pallet_shift_session_manager::{Pallet}, - // Eth-PoA chains bridge modules. - BridgeRialtoPoa: pallet_bridge_eth_poa::::{Pallet, Call, Config, Storage, ValidateUnsigned}, - BridgeKovan: pallet_bridge_eth_poa::::{Pallet, Call, Config, Storage, ValidateUnsigned}, - BridgeRialtoCurrencyExchange: pallet_bridge_currency_exchange::::{Pallet, Call}, - BridgeKovanCurrencyExchange: pallet_bridge_currency_exchange::::{Pallet, Call}, + // BEEFY Bridges support. + Beefy: pallet_beefy::{Pallet, Storage, Config}, + Mmr: pallet_mmr::{Pallet, Storage}, + MmrLeaf: pallet_beefy_mmr::{Pallet, Storage}, // Millau bridge modules. BridgeMillauGrandpa: pallet_bridge_grandpa::{Pallet, Call, Storage}, @@ -693,43 +618,42 @@ impl_runtime_apis! { } } - impl bp_eth_poa::RialtoPoAHeaderApi for Runtime { - fn best_block() -> (u64, bp_eth_poa::H256) { - let best_block = BridgeRialtoPoa::best_block(); - (best_block.number, best_block.hash) - } - - fn finalized_block() -> (u64, bp_eth_poa::H256) { - let finalized_block = BridgeRialtoPoa::finalized_block(); - (finalized_block.number, finalized_block.hash) - } - - fn is_import_requires_receipts(header: bp_eth_poa::AuraHeader) -> bool { - BridgeRialtoPoa::is_import_requires_receipts(header) - } - - fn is_known_block(hash: bp_eth_poa::H256) -> bool { - BridgeRialtoPoa::is_known_block(hash) + impl beefy_primitives::BeefyApi for Runtime { + fn validator_set() -> ValidatorSet { + Beefy::validator_set() } } - impl bp_eth_poa::KovanHeaderApi for Runtime { - fn best_block() -> (u64, bp_eth_poa::H256) { - let best_block = BridgeKovan::best_block(); - (best_block.number, best_block.hash) + impl pallet_mmr_primitives::MmrApi for Runtime { + fn generate_proof(leaf_index: u64) + -> Result<(EncodableOpaqueLeaf, MmrProof), MmrError> + { + Mmr::generate_proof(leaf_index) + .map(|(leaf, proof)| (EncodableOpaqueLeaf::from_leaf(&leaf), proof)) } - fn finalized_block() -> (u64, bp_eth_poa::H256) { - let finalized_block = BridgeKovan::finalized_block(); - (finalized_block.number, finalized_block.hash) + fn verify_proof(leaf: EncodableOpaqueLeaf, proof: MmrProof) + -> Result<(), MmrError> + { + pub type Leaf = < + ::LeafData as LeafDataProvider + >::LeafData; + + let leaf: Leaf = leaf + .into_opaque_leaf() + .try_decode() + .ok_or(MmrError::Verify)?; + Mmr::verify_leaf(leaf, proof) } - fn is_import_requires_receipts(header: bp_eth_poa::AuraHeader) -> bool { - BridgeKovan::is_import_requires_receipts(header) - } - - fn is_known_block(hash: bp_eth_poa::H256) -> bool { - BridgeKovan::is_known_block(hash) + fn verify_proof_stateless( + root: Hash, + leaf: EncodableOpaqueLeaf, + proof: MmrProof + ) -> Result<(), MmrError> { + type MmrHashing = ::Hashing; + let node = DataOrHash::Data(leaf.into_opaque_leaf()); + pallet_mmr::verify_leaf_proof::(root, node, proof) } } @@ -744,18 +668,6 @@ impl_runtime_apis! { } } - impl bp_currency_exchange::RialtoCurrencyExchangeApi for Runtime { - fn filter_transaction_proof(proof: exchange::EthereumTransactionInclusionProof) -> bool { - BridgeRialtoCurrencyExchange::filter_transaction_proof(&proof) - } - } - - impl bp_currency_exchange::KovanCurrencyExchangeApi for Runtime { - fn filter_transaction_proof(proof: exchange::EthereumTransactionInclusionProof) -> bool { - BridgeKovanCurrencyExchange::filter_transaction_proof(&proof) - } - } - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { fn validate_transaction( source: TransactionSource, @@ -845,6 +757,13 @@ impl_runtime_apis! { polkadot_runtime_parachains::runtime_api_impl::v1::persisted_validation_data::(para_id, assumption) } + fn assumed_validation_data( + para_id: polkadot_primitives::v1::Id, + expected_persisted_validation_data_hash: Hash, + ) -> Option<(polkadot_primitives::v1::PersistedValidationData, polkadot_primitives::v1::ValidationCodeHash)> { + polkadot_runtime_parachains::runtime_api_impl::v1::assumed_validation_data::(para_id, expected_persisted_validation_data_hash) + } + fn check_validation_outputs( para_id: polkadot_primitives::v1::Id, outputs: polkadot_primitives::v1::CandidateCommitments, @@ -1028,17 +947,10 @@ impl_runtime_apis! { use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList}; use frame_support::traits::StorageInfoTrait; - use pallet_bridge_currency_exchange::benchmarking::Pallet as BridgeCurrencyExchangeBench; use pallet_bridge_messages::benchmarking::Pallet as MessagesBench; let mut list = Vec::::new(); - list_benchmark!(list, extra, pallet_bridge_eth_poa, BridgeRialtoPoa); - list_benchmark!( - list, - extra, - pallet_bridge_currency_exchange, BridgeCurrencyExchangeBench:: - ); list_benchmark!(list, extra, pallet_bridge_messages, MessagesBench::); list_benchmark!(list, extra, pallet_bridge_grandpa, BridgeMillauGrandpa); @@ -1068,46 +980,6 @@ impl_runtime_apis! { let mut batches = Vec::::new(); let params = (&config, &whitelist); - use pallet_bridge_currency_exchange::benchmarking::{ - Pallet as BridgeCurrencyExchangeBench, - Config as BridgeCurrencyExchangeConfig, - ProofParams as BridgeCurrencyExchangeProofParams, - }; - - impl BridgeCurrencyExchangeConfig for Runtime { - fn make_proof( - proof_params: BridgeCurrencyExchangeProofParams, - ) -> crate::exchange::EthereumTransactionInclusionProof { - use bp_currency_exchange::DepositInto; - - if proof_params.recipient_exists { - >::DepositInto::deposit_into( - proof_params.recipient.clone(), - ExistentialDeposit::get(), - ).unwrap(); - } - - let (transaction, receipt) = crate::exchange::prepare_ethereum_transaction( - &proof_params.recipient, - |tx| { - // our runtime only supports transactions where data is exactly 32 bytes long - // (receiver key) - // => we are ignoring `transaction_size_factor` here - tx.value = (ExistentialDeposit::get() * 10).into(); - }, - ); - let transactions = sp_std::iter::repeat((transaction, receipt)) - .take(1 + proof_params.proof_size_factor as usize) - .collect::>(); - let block_hash = crate::exchange::prepare_environment_for_claim::(&transactions); - crate::exchange::EthereumTransactionInclusionProof { - block: block_hash, - index: 0, - proof: transactions, - } - } - } - use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge}; use bp_runtime::messages::DispatchFeePayment; use bridge_runtime_common::messages; @@ -1274,13 +1146,6 @@ impl_runtime_apis! { } } - add_benchmark!(params, batches, pallet_bridge_eth_poa, BridgeRialtoPoa); - add_benchmark!( - params, - batches, - pallet_bridge_currency_exchange, - BridgeCurrencyExchangeBench:: - ); add_benchmark!( params, batches, @@ -1322,48 +1187,8 @@ where #[cfg(test)] mod tests { use super::*; - use bp_currency_exchange::DepositInto; use bridge_runtime_common::messages; - fn run_deposit_into_test(test: impl Fn(AccountId) -> Balance) { - let mut ext: sp_io::TestExternalities = - SystemConfig::default().build_storage::().unwrap().into(); - ext.execute_with(|| { - // initially issuance is zero - assert_eq!( - as Currency>::total_issuance(), - 0, - ); - - // create account - let account: AccountId = [1u8; 32].into(); - let initial_amount = ExistentialDeposit::get(); - let deposited = - as Currency>::deposit_creating( - &account, - initial_amount, - ); - drop(deposited); - assert_eq!( - as Currency>::total_issuance(), - initial_amount, - ); - assert_eq!( - as Currency>::free_balance(&account), - initial_amount, - ); - - // run test - let total_issuance_change = test(account); - - // check that total issuance has changed by `run_deposit_into_test` - assert_eq!( - as Currency>::total_issuance(), - initial_amount + total_issuance_change, - ); - }); - } - #[test] fn ensure_rialto_message_lane_weights_are_correct() { type Weights = pallet_bridge_messages::weights::RialtoWeight; @@ -1405,53 +1230,12 @@ mod tests { ); } - #[test] - fn deposit_into_existing_account_works() { - run_deposit_into_test(|existing_account| { - let initial_amount = - as Currency>::free_balance( - &existing_account, - ); - let additional_amount = 10_000; - >::DepositInto::deposit_into( - existing_account.clone(), - additional_amount, - ) - .unwrap(); - assert_eq!( - as Currency>::free_balance( - &existing_account - ), - initial_amount + additional_amount, - ); - additional_amount - }); - } - - #[test] - fn deposit_into_new_account_works() { - run_deposit_into_test(|_| { - let initial_amount = 0; - let additional_amount = ExistentialDeposit::get() + 10_000; - let new_account: AccountId = [42u8; 32].into(); - >::DepositInto::deposit_into( - new_account.clone(), - additional_amount, - ) - .unwrap(); - assert_eq!( - as Currency>::free_balance( - &new_account - ), - initial_amount + additional_amount, - ); - additional_amount - }); - } - #[test] fn call_size() { - const MAX_CALL_SIZE: usize = 230; // value from polkadot-runtime tests - assert!(core::mem::size_of::() <= MAX_CALL_SIZE); + const DOT_MAX_CALL_SZ: usize = 230; + assert!(core::mem::size_of::>() <= DOT_MAX_CALL_SZ); + // FIXME: get this down to 230. https://github.com/paritytech/grandpa-bridge-gadget/issues/359 + const BEEFY_MAX_CALL_SZ: usize = 232; + assert!(core::mem::size_of::>() <= BEEFY_MAX_CALL_SZ); } } diff --git a/bin/rialto/runtime/src/parachains.rs b/bin/rialto/runtime/src/parachains.rs index 9a2f85460153..332a3387ac69 100644 --- a/bin/rialto/runtime/src/parachains.rs +++ b/bin/rialto/runtime/src/parachains.rs @@ -71,7 +71,9 @@ impl parachains_paras::Config for Runtime { type WeightInfo = parachains_paras::TestWeightInfo; } -impl parachains_paras_inherent::Config for Runtime {} +impl parachains_paras_inherent::Config for Runtime { + type WeightInfo = parachains_paras_inherent::TestWeightInfo; +} impl parachains_scheduler::Config for Runtime {} diff --git a/bin/rialto/runtime/src/rialto_poa.rs b/bin/rialto/runtime/src/rialto_poa.rs deleted file mode 100644 index 865ef387d1b4..000000000000 --- a/bin/rialto/runtime/src/rialto_poa.rs +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2020-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! Configuration parameters for the Rialto PoA chain. - -use crate::exchange::EthereumTransactionInclusionProof; - -use bp_eth_poa::{Address, AuraHeader, RawTransaction, U256}; -use bp_header_chain::InclusionProofVerifier; -use frame_support::RuntimeDebug; -use hex_literal::hex; -use pallet_bridge_eth_poa::{ - AuraConfiguration, ChainTime as TChainTime, PruningStrategy as TPruningStrategy, - ValidatorsConfiguration, ValidatorsSource, -}; -use sp_std::prelude::*; - -frame_support::parameter_types! { - pub const FinalityVotesCachingInterval: Option = Some(8); - pub BridgeAuraConfiguration: AuraConfiguration = - aura_configuration(); - pub BridgeValidatorsConfiguration: ValidatorsConfiguration = - validators_configuration(); -} - -/// Max number of finalized headers to keep. -const FINALIZED_HEADERS_TO_KEEP: u64 = 5_000; - -/// Aura engine configuration for Rialto chain. -pub fn aura_configuration() -> AuraConfiguration { - AuraConfiguration { - empty_steps_transition: 0xfffffffff, - strict_empty_steps_transition: 0, - validate_step_transition: 0, - validate_score_transition: 0, - two_thirds_majority_transition: u64::max_value(), - min_gas_limit: 0x1388.into(), - max_gas_limit: U256::max_value(), - maximum_extra_data_size: 0x20, - } -} - -/// Validators configuration for Rialto PoA chain. -pub fn validators_configuration() -> ValidatorsConfiguration { - ValidatorsConfiguration::Single(ValidatorsSource::List(genesis_validators())) -} - -/// Genesis validators set of Rialto PoA chain. -pub fn genesis_validators() -> Vec { - vec![ - hex!("005e714f896a8b7cede9d38688c1a81de72a58e4").into(), - hex!("007594304039c2937a12220338aab821d819f5a4").into(), - hex!("004e7a39907f090e19b0b80a277e77b72b22e269").into(), - ] -} - -/// Genesis header of the Rialto PoA chain. -/// -/// To obtain genesis header from a running node, invoke: -/// ```bash -/// $ http localhost:8545 jsonrpc=2.0 id=1 method=eth_getBlockByNumber params:='["earliest", false]' -v -/// ``` -pub fn genesis_header() -> AuraHeader { - AuraHeader { - parent_hash: Default::default(), - timestamp: 0, - number: 0, - author: Default::default(), - transactions_root: hex!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - .into(), - uncles_hash: hex!("1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347") - .into(), - extra_data: vec![], - state_root: hex!("a992d04c791620ed7ed96555a80cf0568355bb4bee2656f46899a4372f25f248").into(), - receipts_root: hex!("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - .into(), - log_bloom: Default::default(), - gas_used: Default::default(), - gas_limit: 0x222222.into(), - difficulty: 0x20000.into(), - seal: vec![vec![0x80], { - let mut vec = vec![0xb8, 0x41]; - vec.resize(67, 0); - vec - }], - } -} - -/// Rialto PoA headers pruning strategy. -/// -/// We do not prune unfinalized headers because exchange module only accepts -/// claims from finalized headers. And if we're pruning unfinalized headers, then -/// some claims may never be accepted. -#[derive(Default, RuntimeDebug)] -pub struct PruningStrategy; - -impl TPruningStrategy for PruningStrategy { - fn pruning_upper_bound(&mut self, _best_number: u64, best_finalized_number: u64) -> u64 { - best_finalized_number.saturating_sub(FINALIZED_HEADERS_TO_KEEP) - } -} - -/// ChainTime provider -#[derive(Default)] -pub struct ChainTime; - -impl TChainTime for ChainTime { - fn is_timestamp_ahead(&self, timestamp: u64) -> bool { - let now = super::Timestamp::now(); - timestamp > now - } -} - -/// The Rialto PoA Blockchain as seen by the runtime. -pub struct RialtoBlockchain; - -impl InclusionProofVerifier for RialtoBlockchain { - type Transaction = RawTransaction; - type TransactionInclusionProof = EthereumTransactionInclusionProof; - - fn verify_transaction_inclusion_proof( - proof: &Self::TransactionInclusionProof, - ) -> Option { - let is_transaction_finalized = crate::BridgeRialtoPoa::verify_transaction_finalized( - proof.block, - proof.index, - &proof.proof, - ); - - if !is_transaction_finalized { - return None - } - - proof.proof.get(proof.index as usize).map(|(tx, _)| tx.clone()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn genesis_hash_matches() { - assert_eq!( - genesis_header().compute_hash(), - hex!("1468e1a0fa20d30025a5a0f87e1cced4fdc393b84b7d2850b11ca5863db482cb").into(), - ); - } - - #[test] - fn pruning_strategy_keeps_enough_headers() { - assert_eq!( - PruningStrategy::default().pruning_upper_bound(100_000, 1_000), - 0, - "1_000 <= 5_000 => nothing should be pruned yet", - ); - - assert_eq!( - PruningStrategy::default().pruning_upper_bound(100_000, 5_000), - 0, - "5_000 <= 5_000 => nothing should be pruned yet", - ); - - assert_eq!( - PruningStrategy::default().pruning_upper_bound(100_000, 10_000), - 5_000, - "5_000 <= 10_000 => we're ready to prune first 5_000 headers", - ); - } -} diff --git a/ci.Dockerfile b/ci.Dockerfile index 0bd2bc4dae83..eec619a79831 100644 --- a/ci.Dockerfile +++ b/ci.Dockerfile @@ -24,7 +24,7 @@ USER user WORKDIR /home/user -ARG PROJECT=ethereum-poa-relay +ARG PROJECT=substrate-relay COPY --chown=user:user ./${PROJECT} ./ COPY --chown=user:user ./bridge-entrypoint.sh ./ diff --git a/deployments/README.md b/deployments/README.md index f9207e6d683e..920935d5fdb8 100644 --- a/deployments/README.md +++ b/deployments/README.md @@ -44,16 +44,16 @@ the monitoring Compose file is _not_ optional, and must be included for bridge d ### Running and Updating Deployments We currently support two bridge deployments -1. Ethereum PoA to Rialto Substrate -2. Rialto Substrate to Millau Substrate +1. Rialto Substrate to Millau Substrate +2. Westend Substrate to Millau Substrate These bridges can be deployed using our [`./run.sh`](./run.sh) script. The first argument it takes is the name of the bridge you want to run. Right now we only support two -bridges: `poa-rialto` and `rialto-millau`. +bridges: `rialto-millau` and `westend-millau`. ```bash -./run.sh poa-rialto +./run.sh rialto-millau ``` If you add a second `update` argument to the script it will pull the latest images from Docker Hub @@ -66,7 +66,7 @@ and restart the deployment. You can also bring down a deployment using the script with the `stop` argument. ```bash -./run.sh poa-rialto stop +./run.sh rialto-millau stop ``` ### Adding Deployments @@ -80,7 +80,6 @@ not strictly required. ## General Notes Rialto authorities are named: `Alice`, `Bob`, `Charlie`, `Dave`, `Eve`. -Rialto-PoA authorities are named: `Arthur`, `Bertha`, `Carlos`. Millau authorities are named: `Alice`, `Bob`, `Charlie`, `Dave`, `Eve`. Both authorities and following accounts have enough funds (for test purposes) on corresponding Substrate chains: @@ -89,8 +88,8 @@ Both authorities and following accounts have enough funds (for test purposes) on - on Millau: `Ferdie`, `George`, `Harry`. Names of accounts on Substrate (Rialto and Millau) chains may be prefixed with `//` and used as -seeds for the `sr25519` keys. This seed may also be used in the signer argument in Substrate -and PoA relays. Example: +seeds for the `sr25519` keys. This seed may also be used in the signer argument in Substrate relays. +Example: ```bash ./substrate-relay relay-headers rialto-to-millau \ @@ -105,13 +104,6 @@ and PoA relays. Example: Some accounts are used by bridge components. Using these accounts to sign other transactions is not recommended, because this may lead to nonces conflict. -Following accounts are used when `poa-rialto` bridge is running: - -- Rialto's `Alice` signs relay transactions with new Rialto-PoA headers; -- Rialto's `Bob` signs relay transactions with Rialto-PoA -> Rialto currency exchange proofs. -- Rialto-PoA's `Arthur`: signs relay transactions with new Rialto headers; -- Rialto-PoA's `Bertha`: signs currency exchange transactions. - Following accounts are used when `rialto-millau` bridge is running: - Millau's `Charlie` signs complex headers+messages relay transactions on Millau chain; @@ -133,10 +125,10 @@ Following accounts are used when `westend-millau` bridge is running: When the network is running you can query logs from individual nodes using: ```bash -docker logs rialto_poa-node-bertha_1 -f +docker logs rialto_millau-node-charlie_1 -f ``` -To kill all left over containers and start the network from scratch next time: +To kill all leftover containers and start the network from scratch next time: ```bash docker ps -a --format "{{.ID}}" | xargs docker rm # This removes all containers! ``` @@ -190,7 +182,6 @@ Here are the arguments currently supported: - `PROJECT`: Project to build withing bridges repo. Can be one of: - `rialto-bridge-node` - `millau-bridge-node` - - `ethereum-poa-relay` - `substrate-relay` ### GitHub Actions diff --git a/deployments/bridges/poa-rialto/Front-end.Dockerfile b/deployments/bridges/poa-rialto/Front-end.Dockerfile deleted file mode 100644 index 427f0504e57d..000000000000 --- a/deployments/bridges/poa-rialto/Front-end.Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM node:12 as build-deps - -# install tools and dependencies -RUN set -eux; \ - apt-get install -y git - -# clone UI repo -RUN cd /usr/src/ && git clone https://github.com/paritytech/bridge-ui.git -WORKDIR /usr/src/bridge-ui -RUN yarn -ARG SUBSTRATE_PROVIDER -ARG ETHEREUM_PROVIDER -ARG EXPECTED_ETHEREUM_NETWORK_ID - -ENV SUBSTRATE_PROVIDER $SUBSTRATE_PROVIDER -ENV ETHEREUM_PROVIDER $ETHEREUM_PROVIDER -ENV EXPECTED_ETHEREUM_NETWORK_ID $EXPECTED_ETHEREUM_NETWORK_ID - -RUN yarn build:docker - -# Stage 2 - the production environment -FROM nginx:1.12 -COPY --from=build-deps /usr/src/bridge-ui/nginx/*.conf /etc/nginx/conf.d/ -COPY --from=build-deps /usr/src/bridge-ui/dist /usr/share/nginx/html -EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] diff --git a/deployments/bridges/poa-rialto/dashboard/grafana/relay-poa-to-rialto-exchange-dashboard.json b/deployments/bridges/poa-rialto/dashboard/grafana/relay-poa-to-rialto-exchange-dashboard.json deleted file mode 100644 index 7e197bb882f8..000000000000 --- a/deployments/bridges/poa-rialto/dashboard/grafana/relay-poa-to-rialto-exchange-dashboard.json +++ /dev/null @@ -1,474 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "links": [], - "panels": [ - { - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 7, - "x": 0, - "y": 0 - }, - "id": 2, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Ethereum_to_Substrate_Exchange_best_block_numbers", - "instant": true, - "interval": "", - "legendFormat": "Best {{type}} block", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Best finalized blocks", - "type": "stat" - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 7, - "y": 0 - }, - "id": 12, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Ethereum_to_Substrate_Exchange_processed_blocks", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Number of processed blocks since last restart", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 6, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "Ethereum_to_Substrate_Exchange_system_average_load", - "interval": "", - "legendFormat": "Average system load in last {{over}}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": null - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Average System Load", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 8, - "options": { - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Ethereum_to_Substrate_Exchange_process_cpu_usage_percentage", - "interval": "", - "legendFormat": "1 CPU = 100", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Relay Process CPU Usage", - "type": "gauge" - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 0, - "y": 7 - }, - "id": 14, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Ethereum_to_Substrate_Exchange_processed_transactions", - "instant": true, - "interval": "", - "legendFormat": "{{type}} transactions", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Number of processed transactions since last restart", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 9 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "Ethereum_to_Substrate_Exchange_process_memory_usage_bytes / 1024 / 1024", - "interval": "", - "legendFormat": "Process memory, MB", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory Usage for Relay Process", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5s", - "schemaVersion": 26, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Ethereum PoA to Rialto Exchange Dashboard", - "uid": "relay-poa-to-rialto-exchange", - "version": 1 -} diff --git a/deployments/bridges/poa-rialto/dashboard/grafana/relay-poa-to-rialto-headers-dashboard.json b/deployments/bridges/poa-rialto/dashboard/grafana/relay-poa-to-rialto-headers-dashboard.json deleted file mode 100644 index 05d06e949819..000000000000 --- a/deployments/bridges/poa-rialto/dashboard/grafana/relay-poa-to-rialto-headers-dashboard.json +++ /dev/null @@ -1,694 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "links": [], - "panels": [ - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "min" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "5m", - "frequency": "5m", - "handler": 1, - "message": "", - "name": "Synced Header Difference is Over 5 (Ethereum PoA to Rialto)", - "noDataState": "no_data", - "notifications": [] - }, - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "Shows how many headers behind the target chain is from the source chain.", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "max(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"source\"}) - max(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"target\"})", - "format": "table", - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 5 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Difference Between Source and Target Headers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "lt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "2m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "min" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "3m", - "frequency": "5m", - "handler": 1, - "name": "No New Headers (Ethereum PoA to Rialto)", - "noDataState": "no_data", - "notifications": [] - }, - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "How many headers has the relay synced from the source node in the last 2 mins?", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 16, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "max_over_time(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"source\"}[2m])-min_over_time(Ethereum_to_Substrate_Sync_best_block_numbers{node=\"source\"}[2m])", - "interval": "", - "legendFormat": "Number of new Headers on Ethereum PoA (Last 2 Mins)", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "lt", - "value": 5 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Headers Synced on Rialto (Last 2 Mins)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": { - "align": null - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 2, - "interval": "5s", - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Ethereum_to_Substrate_Sync_best_block_numbers", - "format": "time_series", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "Best Known Header on {{node}} Node", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Best Blocks according to Relay", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 6, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "Ethereum_to_Substrate_Sync_system_average_load", - "interval": "", - "legendFormat": "Average system load in last {{over}}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": null - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Average System Load", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 18, - "y": 8 - }, - "id": 12, - "options": { - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "avg_over_time(Ethereum_to_Substrate_Sync_process_cpu_usage_percentage[1m])", - "instant": true, - "interval": "", - "legendFormat": "1 CPU = 100", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Relay Process CPU Usage ", - "type": "gauge" - }, - { - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 4, - "options": { - "displayMode": "gradient", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showUnfilled": true - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Ethereum_to_Substrate_Sync_blocks_in_state", - "instant": true, - "interval": "", - "legendFormat": "{{state}}", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Queued Headers in Relay", - "type": "bargauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 16 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "Ethereum_to_Substrate_Sync_process_memory_usage_bytes / 1024 / 1024", - "interval": "", - "legendFormat": "Process memory, MB", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory Usage for Relay Process", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5s", - "schemaVersion": 26, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Ethereum PoA to Rialto Header Sync Dashboard", - "uid": "relay-poa-to-rialto-headers", - "version": 1 -} diff --git a/deployments/bridges/poa-rialto/dashboard/grafana/relay-rialto-to-poa-headers-dashboard.json b/deployments/bridges/poa-rialto/dashboard/grafana/relay-rialto-to-poa-headers-dashboard.json deleted file mode 100644 index 149c637fcb15..000000000000 --- a/deployments/bridges/poa-rialto/dashboard/grafana/relay-rialto-to-poa-headers-dashboard.json +++ /dev/null @@ -1,694 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "links": [], - "panels": [ - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "min" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "5m", - "frequency": "5m", - "handler": 1, - "message": "", - "name": "Synced Header Difference is Over 5 (Rialto to Ethereum PoA)", - "noDataState": "no_data", - "notifications": [] - }, - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "Shows how many headers behind the target chain is from the source chain.", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 14, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "max(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"source\"}) - max(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"target\"})", - "format": "table", - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 5 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Difference Between Source and Target Headers", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "lt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "2m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "min" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "3m", - "frequency": "5m", - "handler": 1, - "name": "No New Headers (Rialto to Ethereum PoA)", - "noDataState": "no_data", - "notifications": [] - }, - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "How many headers has the relay synced from the source node in the last 2 mins?", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 16, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "max_over_time(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"source\"}[2m])-min_over_time(Substrate_to_Ethereum_Sync_best_block_numbers{node=\"source\"}[2m])", - "interval": "", - "legendFormat": "Number of new Headers on Rialto (Last 2 Mins)", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "lt", - "value": 5 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Headers Synced on Ethereum PoA (Last 2 Mins)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": { - "align": null - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 8 - }, - "id": 2, - "interval": "5s", - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Substrate_to_Ethereum_Sync_best_block_numbers", - "format": "time_series", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "Best Known Header on {{node}} Node", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Best Blocks according to Relay", - "type": "stat" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 6, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "Substrate_to_Ethereum_Sync_system_average_load", - "interval": "", - "legendFormat": "Average system load in last {{over}}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": null - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Average System Load", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "datasource": "Prometheus", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 18, - "y": 8 - }, - "id": 12, - "options": { - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "avg_over_time(Substrate_to_Ethereum_Sync_process_cpu_usage_percentage[1m])", - "instant": true, - "interval": "", - "legendFormat": "1 CPU = 100", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Relay Process CPU Usage ", - "type": "gauge" - }, - { - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {}, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 12, - "x": 0, - "y": 14 - }, - "id": 4, - "options": { - "displayMode": "gradient", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showUnfilled": true - }, - "pluginVersion": "7.1.3", - "targets": [ - { - "expr": "Substrate_to_Ethereum_Sync_blocks_in_state", - "instant": true, - "interval": "", - "legendFormat": "{{state}}", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Queued Headers in Relay", - "type": "bargauge" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "description": "", - "fieldConfig": { - "defaults": { - "custom": {} - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 16 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "percentage": false, - "pluginVersion": "7.1.3", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "Substrate_to_Ethereum_Sync_process_memory_usage_bytes / 1024 / 1024", - "interval": "", - "legendFormat": "Process memory, MB", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Memory Usage for Relay Process", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "5s", - "schemaVersion": 26, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Rialto to Ethereum PoA Header Sync Dashboard", - "uid": "relay-rialto-to-poa-headers", - "version": 1 -} diff --git a/deployments/bridges/poa-rialto/dashboard/prometheus/targets.yml b/deployments/bridges/poa-rialto/dashboard/prometheus/targets.yml deleted file mode 100644 index b0038008ef6d..000000000000 --- a/deployments/bridges/poa-rialto/dashboard/prometheus/targets.yml +++ /dev/null @@ -1,4 +0,0 @@ -- targets: - - relay-headers-poa-to-rialto:9616 - - relay-poa-exchange-rialto:9616 - - relay-headers-rialto-to-poa:9616 diff --git a/deployments/bridges/poa-rialto/docker-compose.yml b/deployments/bridges/poa-rialto/docker-compose.yml deleted file mode 100644 index 6bdcb2301242..000000000000 --- a/deployments/bridges/poa-rialto/docker-compose.yml +++ /dev/null @@ -1,94 +0,0 @@ -# This Compose file should be built using the Rialto and Eth-PoA node -# compose files. Otherwise it won't work. -# -# Exposed ports: 9616, 9716, 9816, 9916, 8080 - -version: '3.5' -services: - # We override these nodes to make sure we have the correct chain config for this network. - poa-node-arthur: &poa-node - volumes: - - ./bridges/poa-rialto/poa-config:/config - poa-node-bertha: - <<: *poa-node - poa-node-carlos: - <<: *poa-node - - # We provide an override for this particular node since this is a public facing - # node which we use to connect from things like Polkadot JS Apps. - rialto-node-charlie: - environment: - VIRTUAL_HOST: rialto.bridges.test-installations.parity.io,wss.rialto.brucke.link - VIRTUAL_PORT: 9944 - LETSENCRYPT_HOST: rialto.bridges.test-installations.parity.io,wss.rialto.brucke.link - LETSENCRYPT_EMAIL: admin@parity.io - - relay-headers-poa-to-rialto: ð-poa-relay - image: paritytech/ethereum-poa-relay - entrypoint: /entrypoints/relay-headers-poa-to-rialto-entrypoint.sh - volumes: - - ./bridges/poa-rialto/entrypoints:/entrypoints - environment: - RUST_LOG: rpc=trace,bridge=trace - ports: - - "9616:9616" - depends_on: &all-nodes - - poa-node-arthur - - poa-node-bertha - - poa-node-carlos - - rialto-node-alice - - rialto-node-bob - - rialto-node-charlie - - rialto-node-dave - - rialto-node-eve - - relay-poa-exchange-rialto: - <<: *eth-poa-relay - entrypoint: /entrypoints/relay-poa-exchange-rialto-entrypoint.sh - ports: - - "9716:9616" - - relay-headers-rialto-to-poa: - <<: *eth-poa-relay - entrypoint: /entrypoints/relay-headers-rialto-to-poa-entrypoint.sh - ports: - - "9816:9616" - - poa-exchange-tx-generator: - <<: *eth-poa-relay - entrypoint: /entrypoints/poa-exchange-tx-generator-entrypoint.sh - environment: - EXCHANGE_GEN_MIN_AMOUNT_FINNEY: ${EXCHANGE_GEN_MIN_AMOUNT_FINNEY:-1} - EXCHANGE_GEN_MAX_AMOUNT_FINNEY: ${EXCHANGE_GEN_MAX_AMOUNT_FINNEY:-100000} - EXCHANGE_GEN_MAX_SUBMIT_DELAY_S: ${EXCHANGE_GEN_MAX_SUBMIT_DELAY_S:-60} - ports: - - "9916:9616" - depends_on: - - relay-headers-poa-to-rialto - - relay-headers-rialto-to-poa - - front-end: - build: - context: . - dockerfile: ./bridges/poa-rialto/Front-end.Dockerfile - args: - SUBSTRATE_PROVIDER: ${UI_SUBSTRATE_PROVIDER:-ws://localhost:9944} - ETHEREUM_PROVIDER: ${UI_ETHEREUM_PROVIDER:-http://localhost:8545} - EXPECTED_ETHEREUM_NETWORK_ID: ${UI_EXPECTED_ETHEREUM_NETWORK_ID:-105} - ports: - - "8080:80" - - # Note: These are being overridden from the top level `monitoring` compose file. - prometheus-metrics: - volumes: - - ./bridges/poa-rialto/dashboard/prometheus/targets.yml:/etc/prometheus/targets-poa-rialto.yml - depends_on: *all-nodes - - grafana-dashboard: - volumes: - - ./bridges/poa-rialto/dashboard/grafana:/etc/grafana/dashboards/poa-rialto:ro - environment: - VIRTUAL_HOST: dashboard.rialto.bridges.test-installations.parity.io,grafana.rialto.brucke.link - VIRTUAL_PORT: 3000 - LETSENCRYPT_HOST: dashboard.rialto.bridges.test-installations.parity.io,grafana.rialto.brucke.link - LETSENCRYPT_EMAIL: admin@parity.io diff --git a/deployments/bridges/poa-rialto/entrypoints/poa-exchange-tx-generator-entrypoint.sh b/deployments/bridges/poa-rialto/entrypoints/poa-exchange-tx-generator-entrypoint.sh deleted file mode 100755 index 9af373b0216f..000000000000 --- a/deployments/bridges/poa-rialto/entrypoints/poa-exchange-tx-generator-entrypoint.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash - -# THIS SCRIPT IS NOT INTENDED FOR USE IN PRODUCTION ENVIRONMENT -# -# This scripts periodically calls relay binary to generate PoA -> Substrate -# exchange transaction from hardcoded PoA senders (assuming they have -# enough funds) to hardcoded Substrate recipients. - -set -eu - -# Path to relay binary -RELAY_BINARY_PATH=${RELAY_BINARY_PATH:-./ethereum-poa-relay} -# Ethereum node host -ETH_HOST=${ETH_HOST:-poa-node-arthur} -# Ethereum node websocket port -ETH_PORT=${ETH_PORT:-8546} -# Ethereum chain id -ETH_CHAIN_ID=${ETH_CHAIN_ID:-105} - -# All possible Substrate recipients (hex-encoded public keys) -SUB_RECIPIENTS=( - # Alice (5GrwvaEF...) - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"\ - # Bob (5FHneW46...) - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"\ - # Charlie (5FLSigC9...) - "90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22"\ - # Dave (5DAAnrj7...) - "306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20"\ - # Eve (5HGjWAeF...) - "e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e"\ - # Ferdie (5CiPPseX...) - "1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c" -) -# All possible Ethereum signers (hex-encoded private keys) -# (note that we're tracking nonce here => sender must not send concurrent transactions) -ETH_SIGNERS=( - # Bertha account (0x007594304039c2937a12220338aab821d819f5a4) and its current nonce (unknown by default) - "bc10e0f21e33456ade82182dd1ebdbdd89bca923d4e4adbd90fb5b44d7098cbe" "" -) -# Minimal exchange amount (in finney) -MIN_EXCHANGE_AMOUNT_FINNEY=${EXCHANGE_GEN_MIN_AMOUNT_FINNEY:-1} # 0.1 ETH -# Maximal exchange amount (in finney) -MAX_EXCHANGE_AMOUNT_FINNEY=${EXCHANGE_GEN_MAX_AMOUNT_FINNEY:-100000} # 100 ETH -# Max delay before submitting transactions (s) -MAX_SUBMIT_DELAY_S=${EXCHANGE_GEN_MAX_SUBMIT_DELAY_S:-60} - -while true -do - # sleep some time - SUBMIT_DELAY_S=`shuf -i 0-$MAX_SUBMIT_DELAY_S -n 1` - echo "Sleeping $SUBMIT_DELAY_S seconds..." - sleep $SUBMIT_DELAY_S - - # select recipient - SUB_RECIPIENTS_MAX_INDEX=$((${#SUB_RECIPIENTS[@]} - 1)) - SUB_RECIPIENT_INDEX=`shuf -i 0-$SUB_RECIPIENTS_MAX_INDEX -n 1` - SUB_RECIPIENT=${SUB_RECIPIENTS[$SUB_RECIPIENT_INDEX]} - - # select signer - ETH_SIGNERS_MAX_INDEX=$(((${#ETH_SIGNERS[@]} - 1) / 2)) - ETH_SIGNERS_INDEX=`shuf -i 0-$ETH_SIGNERS_MAX_INDEX -n 1` - ETH_SIGNER_INDEX=$(($ETH_SIGNERS_INDEX * 2)) - ETH_SIGNER_NONCE_INDEX=$(($ETH_SIGNER_INDEX + 1)) - ETH_SIGNER=${ETH_SIGNERS[$ETH_SIGNER_INDEX]} - ETH_SIGNER_NONCE=${ETH_SIGNERS[$ETH_SIGNER_NONCE_INDEX]} - if [ -z $ETH_SIGNER_NONCE ]; then - ETH_SIGNER_NONCE_ARG= - else - ETH_SIGNER_NONCE_ARG=`printf -- "--eth-nonce=%s" $ETH_SIGNER_NONCE` - fi - - # select amount - EXCHANGE_AMOUNT_FINNEY=`shuf -i $MIN_EXCHANGE_AMOUNT_FINNEY-$MAX_EXCHANGE_AMOUNT_FINNEY -n 1` - EXCHANGE_AMOUNT_ETH=`printf "%s000" $EXCHANGE_AMOUNT_FINNEY` - - # submit transaction - echo "Sending $EXCHANGE_AMOUNT_ETH from PoA:$ETH_SIGNER to Substrate:$SUB_RECIPIENT. Nonce: $ETH_SIGNER_NONCE" - set -x - SUBMIT_OUTPUT=`$RELAY_BINARY_PATH 2>&1 eth-submit-exchange-tx \ - --sub-recipient=$SUB_RECIPIENT \ - --eth-host=$ETH_HOST \ - --eth-port=$ETH_PORT \ - --eth-chain-id=$ETH_CHAIN_ID \ - --eth-signer=$ETH_SIGNER \ - --eth-amount=$EXCHANGE_AMOUNT_ETH \ - $ETH_SIGNER_NONCE_ARG` - set +x - - # update sender nonce - SUBMIT_OUTPUT_RE='nonce: ([0-9]+)' - if [[ $SUBMIT_OUTPUT =~ $SUBMIT_OUTPUT_RE ]]; then - ETH_SIGNER_NONCE=${BASH_REMATCH[1]} - ETH_SIGNERS[$ETH_SIGNER_NONCE_INDEX]=$(($ETH_SIGNER_NONCE + 1)) - else - echo "Missing nonce in relay response: $SUBMIT_OUTPUT" - exit 1 - fi -done diff --git a/deployments/bridges/poa-rialto/entrypoints/relay-headers-poa-to-rialto-entrypoint.sh b/deployments/bridges/poa-rialto/entrypoints/relay-headers-poa-to-rialto-entrypoint.sh deleted file mode 100755 index b49362c03cdd..000000000000 --- a/deployments/bridges/poa-rialto/entrypoints/relay-headers-poa-to-rialto-entrypoint.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -xeu - -sleep 60 -curl -v http://poa-node-arthur:8545/api/health -curl -v http://poa-node-bertha:8545/api/health -curl -v http://poa-node-carlos:8545/api/health -curl -v http://rialto-node-alice:9933/health -curl -v http://rialto-node-bob:9933/health -curl -v http://rialto-node-charlie:9933/health - -/home/user/ethereum-poa-relay eth-to-sub \ - --sub-host rialto-node-alice \ - --eth-host poa-node-arthur \ - --prometheus-host=0.0.0.0 diff --git a/deployments/bridges/poa-rialto/entrypoints/relay-headers-rialto-to-poa-entrypoint.sh b/deployments/bridges/poa-rialto/entrypoints/relay-headers-rialto-to-poa-entrypoint.sh deleted file mode 100755 index 8fbf9ac0d97c..000000000000 --- a/deployments/bridges/poa-rialto/entrypoints/relay-headers-rialto-to-poa-entrypoint.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -xeu - -sleep 60 - -curl -v http://rialto-node-bob:9933/health -curl -v http://poa-node-bertha:8545/api/health - -# Try to deploy contracts first -# networkID = 0x69 -# Arthur's key. -/home/user/ethereum-poa-relay eth-deploy-contract \ - --eth-chain-id 105 \ - --eth-signer 0399dbd15cf6ee8250895a1f3873eb1e10e23ca18e8ed0726c63c4aea356e87d \ - --sub-host rialto-node-bob \ - --eth-host poa-node-bertha || echo "Failed to deploy contracts." - -sleep 10 -echo "Starting SUB -> ETH relay" -/home/user/ethereum-poa-relay sub-to-eth \ - --eth-contract c9a61fb29e971d1dabfd98657969882ef5d0beee \ - --eth-chain-id 105 \ - --eth-signer 0399dbd15cf6ee8250895a1f3873eb1e10e23ca18e8ed0726c63c4aea356e87d \ - --sub-host rialto-node-bob \ - --eth-host poa-node-bertha \ - --prometheus-host=0.0.0.0 diff --git a/deployments/bridges/poa-rialto/entrypoints/relay-poa-exchange-rialto-entrypoint.sh b/deployments/bridges/poa-rialto/entrypoints/relay-poa-exchange-rialto-entrypoint.sh deleted file mode 100755 index 54d6baeebb06..000000000000 --- a/deployments/bridges/poa-rialto/entrypoints/relay-poa-exchange-rialto-entrypoint.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -set -xeu - -sleep 60 -curl -v http://poa-node-arthur:8545/api/health -curl -v http://poa-node-bertha:8545/api/health -curl -v http://poa-node-carlos:8545/api/health -curl -v http://rialto-node-alice:9933/health -curl -v http://rialto-node-bob:9933/health -curl -v http://rialto-node-charlie:9933/health - -/home/user/ethereum-poa-relay eth-exchange-sub \ - --sub-host rialto-node-alice \ - --sub-signer //Bob \ - --eth-host poa-node-arthur \ - --prometheus-host=0.0.0.0 diff --git a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/address_book.json b/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/address_book.json deleted file mode 100644 index 9e26dfeeb6e6..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/address_book.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/arthur.json b/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/arthur.json deleted file mode 100644 index fa59a46480c2..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/arthur.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"dd04f316-bc9d-2deb-4a34-51014cd5f34f","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"aa91e6f0e6cf48208be4a1bcf15c6f30"},"ciphertext":"6e057599b13a87e8181bb39a40e14848fdc97958d493ddfa6bb1260350f69328","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"79dd8c09c5c066b830179a2558a51efca6d97c0db2c4128090a01835786823c5"},"mac":"8f8b8e2c9de29ec8eefc54a60055e30ae7ff4dd4a367eaf38880edb887da771e"},"address":"005e714f896a8b7cede9d38688c1a81de72a58e4","name":"","meta":"{}"} \ No newline at end of file diff --git a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/bertha.json b/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/bertha.json deleted file mode 100644 index 7168ec4f71f7..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/bertha.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"6d1e690f-0b52-35f7-989b-46100e7c65ed","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"a5b4d0466834e75c9fd29c6cbbac57ad"},"ciphertext":"102ac328cbe66d8cb8515c42e3268776a9be4419a5cb7b79852860b1e691c15b","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"e8daf2e70086b0cacf925d368fd3f60cada1285e39a42c4cc73c135368cfdbef"},"mac":"1bc3b750900a1143c64ba9e677d69e1093aab47cb003ba09f3cd595a3b422db5"},"address":"007594304039c2937a12220338aab821d819f5a4","name":"","meta":"{}"} \ No newline at end of file diff --git a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/carlos.json b/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/carlos.json deleted file mode 100644 index 2f9759f7bdfe..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/carlos.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"ffaebba1-f1b9-8758-7034-0314040b1396","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"97f124bc8a7bf55d00eb2755c2b50364"},"ciphertext":"b87827816f33d2bef2dc3102a8a7744b86912f8ace10e45cb282a13487769ed2","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"3114c67a05bff7831d112083f566b176bfc874aea160eebadbe5564e406ee85c"},"mac":"e9bfe8fd6f612bc036bb57659297fc03db022264f5086a1b5726972d3ab6f64a"},"address":"004e7a39907f090e19b0b80a277e77b72b22e269","name":"","meta":"{}"} \ No newline at end of file diff --git a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/diego.json b/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/diego.json deleted file mode 100644 index f1df56b84136..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/keys/BridgePoa/diego.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"ef9eb431-dc73-cf31-357e-736f64febe68","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"7077f1c4170d9fc2e05c5956be32fb51"},"ciphertext":"a053be448768d984257aeb8f9c7913e3f54c6e6e741accad9f09dd70c2d9828c","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"12580aa4624040970301e7474d3f9b2a93552bfe9ea2517f7119ccf8e91ebd0d"},"mac":"796dbb48adcfc09041fe39121632801d9f950d3c73dd47105180d8097d4f4491"},"address":"00eed42bf93b498f28acd21d207427a14074defe","name":"","meta":"{}"} \ No newline at end of file diff --git a/deployments/bridges/poa-rialto/poa-config/pass b/deployments/bridges/poa-rialto/poa-config/pass deleted file mode 100644 index f3097ab13082..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/pass +++ /dev/null @@ -1 +0,0 @@ -password diff --git a/deployments/bridges/poa-rialto/poa-config/poa-node-config b/deployments/bridges/poa-rialto/poa-config/poa-node-config deleted file mode 100644 index 2b3c56453d7b..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/poa-node-config +++ /dev/null @@ -1,20 +0,0 @@ -[parity] -chain = "/config/poa.json" -keys_path = "/config/keys" -no_persistent_txqueue = true - -[account] -password = ["/config/pass"] - -[network] -reserved_peers = "/config/reserved" - -[rpc] -apis = ["all"] -cors = ["moz-extension://*", "chrome-extension://*"] - -[mining] -force_sealing = true - -[misc] -unsafe_expose = true diff --git a/deployments/bridges/poa-rialto/poa-config/poa.json b/deployments/bridges/poa-rialto/poa-config/poa.json deleted file mode 100644 index 12a8a58f263b..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/poa.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "name": "BridgePoa", - "engine": { - "authorityRound": { - "params": { - "stepDuration": 10, - "validators": { - "list": [ - "0x005e714f896a8b7cede9d38688c1a81de72a58e4", - "0x007594304039c2937a12220338aab821d819f5a4", - "0x004e7a39907f090e19b0b80a277e77b72b22e269" - ] - }, - "validateScoreTransition": 0, - "validateStepTransition": 0, - "maximumUncleCountTransition": 0, - "maximumUncleCount": 0, - "emptyStepsTransition": "0xfffffffff", - "maximumEmptySteps": 1 - } - } - }, - "params": { - "accountStartNonce": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip140Transition": "0x0", - "eip145Transition": "0x0", - "eip150Transition": "0x0", - "eip155Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip98Transition": "0x7fffffffffffff", - "gasLimitBoundDivisor": "0x0400", - "maxCodeSize": 24576, - "maxCodeSizeTransition": "0x0", - "maximumExtraDataSize": "0x20", - "minGasLimit": "0x1388", - "networkID" : "0x69", - "validateChainIdTransition": "0x0", - "validateReceiptsTransition": "0x0" - }, - "genesis": { - "seal": { - "authorityRound": { - "step": "0x0", - "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - "difficulty": "0x20000", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x00", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData": "0x", - "gasLimit": "0x222222" - }, - "accounts": { - "0000000000000000000000000000000000000001": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } }, - "0000000000000000000000000000000000000002": { "balance": "1", "nonce": "1048576", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } }, - "0000000000000000000000000000000000000003": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, - "0000000000000000000000000000000000000004": { "balance": "1", "nonce": "1048576", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } }, - "0000000000000000000000000000000000000005": { "balance": "1", "builtin": { "name": "modexp", "activate_at": 0, "pricing": { "modexp": { "divisor": 20 } } } }, - "0000000000000000000000000000000000000006": { - "balance": "1", - "builtin": { - "name": "alt_bn128_add", - "pricing": { - "0": { - "price": { "alt_bn128_const_operations": { "price": 500 }} - }, - "0x7fffffffffffff": { - "info": "EIP 1108 transition", - "price": { "alt_bn128_const_operations": { "price": 150 }} - } - } - } - }, - "0000000000000000000000000000000000000007": { - "balance": "1", - "builtin": { - "name": "alt_bn128_mul", - "pricing": { - "0": { - "price": { "alt_bn128_const_operations": { "price": 40000 }} - }, - "0x7fffffffffffff": { - "info": "EIP 1108 transition", - "price": { "alt_bn128_const_operations": { "price": 6000 }} - } - } - } - }, - "0000000000000000000000000000000000000008": { - "balance": "1", - "builtin": { - "name": "alt_bn128_pairing", - "pricing": { - "0": { - "price": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 }} - }, - "0x7fffffffffffff": { - "info": "EIP 1108 transition", - "price": { "alt_bn128_pairing": { "base": 45000, "pair": 34000 }} - } - } - } - }, - "0x0000000000000000000000000000000000000009": { - "builtin": { - "name": "blake2_f", - "activate_at": "0xd751a5", - "pricing": { - "blake2_f": { - "gas_per_round": 1 - } - } - } - }, - "0x0000000000000000000000000000000000000010": { - "builtin": { - "name": "parse_substrate_header", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000011": { - "builtin": { - "name": "get_substrate_header_signal", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000012": { - "builtin": { - "name": "verify_substrate_finality_proof", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000013": { - "builtin": { - "name": "my_test", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x005e714f896a8b7cede9d38688c1a81de72a58e4": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - }, - "0x007594304039c2937a12220338aab821d819f5a4": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - }, - "0x004e7a39907f090e19b0b80a277e77b72b22e269": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - }, - "0x00eed42bf93b498f28acd21d207427a14074defe": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - } - } -} diff --git a/deployments/bridges/poa-rialto/poa-config/reserved b/deployments/bridges/poa-rialto/poa-config/reserved deleted file mode 100644 index 209d71b7fb30..000000000000 --- a/deployments/bridges/poa-rialto/poa-config/reserved +++ /dev/null @@ -1,3 +0,0 @@ -enode://543d0874df46dff238d62547160f9d11e3d21897d7041bbbe46a04d2ee56d9eaf108f2133c0403159624f7647198e224d0755d23ad0e1a50c0912973af6e8a8a@poa-node-arthur:30303 -enode://710de70733e88a24032e53054985f7239e37351f5f3335a468a1a78a3026e9f090356973b00262c346a6608403df2c7107fc4def2cfe4995ea18a41292b9384f@poa-node-bertha:30303 -enode://943525f415b9482f1c49bd39eb979e4e2b406f4137450b0553bffa5cba2928e25ff89ef70f7325aad8a75dbb5955eaecc1aee7ac55d66bcaaa07c8ea58adb23a@poa-node-carlos:30303 diff --git a/deployments/bridges/rialto-millau/dashboard/grafana/relay-millau-to-rialto-messages-dashboard.json b/deployments/bridges/rialto-millau/dashboard/grafana/relay-millau-to-rialto-messages-dashboard.json index 6fd0fb4ebc7d..32f3e53d6671 100644 --- a/deployments/bridges/rialto-millau/dashboard/grafana/relay-millau-to-rialto-messages-dashboard.json +++ b/deployments/bridges/rialto-millau/dashboard/grafana/relay-millau-to-rialto-messages-dashboard.json @@ -1441,7 +1441,7 @@ "pluginVersion": "7.1.3", "targets": [ { - "expr": "avg_over_time(Millau_to_Rialto_MessageLane_00000000_process_cpu_usage_percentage[1m])", + "expr": "avg_over_time(process_cpu_usage_percentage{instance='relay-millau-rialto:9616'}[1m])", "instant": true, "interval": "", "legendFormat": "1 CPU = 100", @@ -1499,7 +1499,7 @@ "steppedLine": false, "targets": [ { - "expr": "Millau_to_Rialto_MessageLane_00000000_system_average_load", + "expr": "system_average_load{instance='relay-millau-rialto:9616'}", "interval": "", "legendFormat": "Average system load in last {{over}}", "refId": "A" @@ -1592,7 +1592,7 @@ "steppedLine": false, "targets": [ { - "expr": "Millau_to_Rialto_MessageLane_00000000_process_memory_usage_bytes / 1024 / 1024", + "expr": "process_memory_usage_bytes{instance='relay-millau-rialto:9616'} / 1024 / 1024", "interval": "", "legendFormat": "Process memory, MB", "refId": "A" diff --git a/deployments/bridges/rialto-millau/dashboard/grafana/relay-rialto-to-millau-messages-dashboard.json b/deployments/bridges/rialto-millau/dashboard/grafana/relay-rialto-to-millau-messages-dashboard.json index 33725dc60961..eaca8610aec7 100644 --- a/deployments/bridges/rialto-millau/dashboard/grafana/relay-rialto-to-millau-messages-dashboard.json +++ b/deployments/bridges/rialto-millau/dashboard/grafana/relay-rialto-to-millau-messages-dashboard.json @@ -1190,7 +1190,7 @@ "pluginVersion": "7.1.3", "targets": [ { - "expr": "avg_over_time(Rialto_to_Millau_MessageLane_00000000_process_cpu_usage_percentage[1m])", + "expr": "avg_over_time(process_cpu_usage_percentage{instance='relay-millau-rialto:9616'}[1m])", "instant": true, "interval": "", "legendFormat": "1 CPU = 100", @@ -1248,7 +1248,7 @@ "steppedLine": false, "targets": [ { - "expr": "Rialto_to_Millau_MessageLane_00000000_system_average_load", + "expr": "system_average_load{instance='relay-millau-rialto:9616'}", "interval": "", "legendFormat": "Average system load in last {{over}}", "refId": "A" @@ -1341,7 +1341,7 @@ "steppedLine": false, "targets": [ { - "expr": "Rialto_to_Millau_MessageLane_00000000_process_memory_usage_bytes / 1024 / 1024", + "expr": "process_memory_usage_bytes{instance='relay-millau-rialto:9616'} / 1024 / 1024", "interval": "", "legendFormat": "Process memory, MB", "refId": "A" diff --git a/deployments/bridges/rialto-millau/dashboard/grafana/rialto-millau-maintenance-dashboard.json b/deployments/bridges/rialto-millau/dashboard/grafana/rialto-millau-maintenance-dashboard.json index 61ff281cc2a9..5280da748502 100644 --- a/deployments/bridges/rialto-millau/dashboard/grafana/rialto-millau-maintenance-dashboard.json +++ b/deployments/bridges/rialto-millau/dashboard/grafana/rialto-millau-maintenance-dashboard.json @@ -65,7 +65,7 @@ "targets": [ { "exemplar": true, - "expr": "Rialto_to_Millau_MessageLane_00000000_rialto_storage_proof_overhead", + "expr": "rialto_storage_proof_overhead{instance='relay-millau-rialto:9616'}", "interval": "", "legendFormat": "Actual overhead", "refId": "A" @@ -169,14 +169,14 @@ "targets": [ { "exemplar": true, - "expr": "Westend_to_Millau_Sync_kusama_to_base_conversion_rate / Westend_to_Millau_Sync_polkadot_to_base_conversion_rate", + "expr": "kusama_to_base_conversion_rate{instance='relay-millau-rialto:9616'} / polkadot_to_base_conversion_rate{instance='relay-millau-rialto:9616'}", "interval": "", "legendFormat": "Outside of runtime (actually Polkadot -> Kusama)", "refId": "A" }, { "exemplar": true, - "expr": "Rialto_to_Millau_MessageLane_00000000_rialto_millau_to_rialto_conversion_rate", + "expr": "Millau_Rialto_to_Millau_conversion_rate{instance='relay-millau-rialto:9616'}", "hide": false, "interval": "", "legendFormat": "At runtime", @@ -187,7 +187,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Rialto: Millau -> Rialto conversion rate", + "title": "Millau: Rialto -> Millau conversion rate", "tooltip": { "shared": true, "sort": 0, @@ -273,7 +273,7 @@ "targets": [ { "exemplar": true, - "expr": "Millau_to_Rialto_MessageLane_00000000_millau_storage_proof_overhead", + "expr": "millau_storage_proof_overhead{instance='relay-millau-rialto:9616'}", "interval": "", "legendFormat": "Actual overhead", "refId": "A" @@ -377,14 +377,14 @@ "targets": [ { "exemplar": true, - "expr": "Westend_to_Millau_Sync_polkadot_to_base_conversion_rate / Westend_to_Millau_Sync_kusama_to_base_conversion_rate", + "expr": "polkadot_to_base_conversion_rate{instance='relay-millau-rialto:9616'} / kusama_to_base_conversion_rate{instance='relay-millau-rialto:9616'}", "interval": "", "legendFormat": "Outside of runtime (actually Kusama -> Polkadot)", "refId": "A" }, { "exemplar": true, - "expr": "Millau_to_Rialto_MessageLane_00000000_millau_rialto_to_millau_conversion_rate", + "expr": "Rialto_Millau_to_Rialto_conversion_rate{instance='relay-millau-rialto:9616'}", "hide": false, "interval": "", "legendFormat": "At runtime", @@ -395,7 +395,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Millau: Rialto -> Millau conversion rate", + "title": "Rialto: Millau -> Rialto conversion rate", "tooltip": { "shared": true, "sort": 0, diff --git a/deployments/bridges/westend-millau/dashboard/grafana/relay-westend-to-millau-headers-dashboard.json b/deployments/bridges/westend-millau/dashboard/grafana/relay-westend-to-millau-headers-dashboard.json index 6003604fa531..1a3603512fdf 100644 --- a/deployments/bridges/westend-millau/dashboard/grafana/relay-westend-to-millau-headers-dashboard.json +++ b/deployments/bridges/westend-millau/dashboard/grafana/relay-westend-to-millau-headers-dashboard.json @@ -401,7 +401,7 @@ "steppedLine": false, "targets": [ { - "expr": "Westend_to_Millau_Sync_system_average_load", + "expr": "system_average_load{instance='relay-headers-westend-to-millau:9616'}", "interval": "", "legendFormat": "Average system load in last {{over}}", "refId": "A" @@ -500,7 +500,7 @@ "pluginVersion": "7.1.3", "targets": [ { - "expr": "avg_over_time(Westend_to_Millau_Sync_process_cpu_usage_percentage[1m])", + "expr": "avg_over_time(process_cpu_usage_percentage{instance='relay-headers-westend-to-millau:9616'}[1m])", "instant": true, "interval": "", "legendFormat": "1 CPU = 100", @@ -615,7 +615,7 @@ "steppedLine": false, "targets": [ { - "expr": "Westend_to_Millau_Sync_process_memory_usage_bytes / 1024 / 1024", + "expr": "process_memory_usage_bytes{instance='relay-headers-westend-to-millau:9616'} / 1024 / 1024", "interval": "", "legendFormat": "Process memory, MB", "refId": "A" diff --git a/deployments/dev/poa-config/keys/BridgePoa/address_book.json b/deployments/dev/poa-config/keys/BridgePoa/address_book.json deleted file mode 100644 index 9e26dfeeb6e6..000000000000 --- a/deployments/dev/poa-config/keys/BridgePoa/address_book.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/deployments/dev/poa-config/keys/BridgePoa/arthur.json b/deployments/dev/poa-config/keys/BridgePoa/arthur.json deleted file mode 100644 index fa59a46480c2..000000000000 --- a/deployments/dev/poa-config/keys/BridgePoa/arthur.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"dd04f316-bc9d-2deb-4a34-51014cd5f34f","version":3,"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"aa91e6f0e6cf48208be4a1bcf15c6f30"},"ciphertext":"6e057599b13a87e8181bb39a40e14848fdc97958d493ddfa6bb1260350f69328","kdf":"pbkdf2","kdfparams":{"c":10240,"dklen":32,"prf":"hmac-sha256","salt":"79dd8c09c5c066b830179a2558a51efca6d97c0db2c4128090a01835786823c5"},"mac":"8f8b8e2c9de29ec8eefc54a60055e30ae7ff4dd4a367eaf38880edb887da771e"},"address":"005e714f896a8b7cede9d38688c1a81de72a58e4","name":"","meta":"{}"} \ No newline at end of file diff --git a/deployments/dev/poa-config/pass b/deployments/dev/poa-config/pass deleted file mode 100644 index f3097ab13082..000000000000 --- a/deployments/dev/poa-config/pass +++ /dev/null @@ -1 +0,0 @@ -password diff --git a/deployments/dev/poa-config/poa-node-config b/deployments/dev/poa-config/poa-node-config deleted file mode 100644 index 146bbac17cf9..000000000000 --- a/deployments/dev/poa-config/poa-node-config +++ /dev/null @@ -1,17 +0,0 @@ -[parity] -chain = "./deployments/dev/poa-config/poa.json" -keys_path = "./deployments/dev/poa-config/keys" -no_persistent_txqueue = true - -[account] -password = ["./deployments/dev/poa-config/pass"] - -[rpc] -apis = ["all"] -cors = ["moz-extension://*", "chrome-extension://*"] - -[mining] -force_sealing = true - -[misc] -unsafe_expose = true diff --git a/deployments/dev/poa-config/poa.json b/deployments/dev/poa-config/poa.json deleted file mode 100644 index ecc21766b035..000000000000 --- a/deployments/dev/poa-config/poa.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "name": "BridgePoa", - "engine": { - "authorityRound": { - "params": { - "stepDuration": 10, - "validators": { - "list": [ - "0x005e714f896a8b7cede9d38688c1a81de72a58e4" - ] - }, - "validateScoreTransition": 0, - "validateStepTransition": 0, - "maximumUncleCountTransition": 0, - "maximumUncleCount": 0, - "emptyStepsTransition": "0xfffffffff", - "maximumEmptySteps": 1 - } - } - }, - "params": { - "accountStartNonce": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip140Transition": "0x0", - "eip145Transition": "0x0", - "eip150Transition": "0x0", - "eip155Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip98Transition": "0x7fffffffffffff", - "gasLimitBoundDivisor": "0x0400", - "maxCodeSize": 24576, - "maxCodeSizeTransition": "0x0", - "maximumExtraDataSize": "0x20", - "minGasLimit": "0x1388", - "networkID" : "0x69", - "validateChainIdTransition": "0x0", - "validateReceiptsTransition": "0x0" - }, - "genesis": { - "seal": { - "authorityRound": { - "step": "0x0", - "signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - }, - "difficulty": "0x20000", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x00", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData": "0x", - "gasLimit": "0x222222" - }, - "accounts": { - "0000000000000000000000000000000000000001": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } }, - "0000000000000000000000000000000000000002": { "balance": "1", "nonce": "1048576", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } }, - "0000000000000000000000000000000000000003": { "balance": "1", "nonce": "1048576", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } }, - "0000000000000000000000000000000000000004": { "balance": "1", "nonce": "1048576", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } }, - "0000000000000000000000000000000000000005": { "balance": "1", "builtin": { "name": "modexp", "activate_at": 0, "pricing": { "modexp": { "divisor": 20 } } } }, - "0000000000000000000000000000000000000006": { - "balance": "1", - "builtin": { - "name": "alt_bn128_add", - "pricing": { - "0": { - "price": { "alt_bn128_const_operations": { "price": 500 }} - }, - "0x7fffffffffffff": { - "info": "EIP 1108 transition", - "price": { "alt_bn128_const_operations": { "price": 150 }} - } - } - } - }, - "0000000000000000000000000000000000000007": { - "balance": "1", - "builtin": { - "name": "alt_bn128_mul", - "pricing": { - "0": { - "price": { "alt_bn128_const_operations": { "price": 40000 }} - }, - "0x7fffffffffffff": { - "info": "EIP 1108 transition", - "price": { "alt_bn128_const_operations": { "price": 6000 }} - } - } - } - }, - "0000000000000000000000000000000000000008": { - "balance": "1", - "builtin": { - "name": "alt_bn128_pairing", - "pricing": { - "0": { - "price": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 }} - }, - "0x7fffffffffffff": { - "info": "EIP 1108 transition", - "price": { "alt_bn128_pairing": { "base": 45000, "pair": 34000 }} - } - } - } - }, - "0x0000000000000000000000000000000000000009": { - "builtin": { - "name": "blake2_f", - "activate_at": "0xd751a5", - "pricing": { - "blake2_f": { - "gas_per_round": 1 - } - } - } - }, - "0x0000000000000000000000000000000000000010": { - "builtin": { - "name": "parse_substrate_header", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000011": { - "builtin": { - "name": "get_substrate_header_signal", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000012": { - "builtin": { - "name": "verify_substrate_finality_proof", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000013": { - "builtin": { - "name": "my_test", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x005e714f896a8b7cede9d38688c1a81de72a58e4": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - }, - "0x007594304039c2937a12220338aab821d819f5a4": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - }, - "0x004e7a39907f090e19b0b80a277e77b72b22e269": { - "balance": "1606938044258990275541962092341162602522202993782792835301376", - "nonce": "0x1" - } - } -} diff --git a/deployments/networks/OpenEthereum.Dockerfile b/deployments/networks/OpenEthereum.Dockerfile deleted file mode 100644 index d47708ca29bf..000000000000 --- a/deployments/networks/OpenEthereum.Dockerfile +++ /dev/null @@ -1,91 +0,0 @@ -FROM ubuntu:xenial AS builder - -# show backtraces -ENV RUST_BACKTRACE 1 - -ENV LAST_DEPS_UPDATE 2020-06-19 - -# install tools and dependencies -RUN set -eux; \ - apt-get update && \ - apt-get install -y file curl jq ca-certificates && \ - apt-get install -y cmake pkg-config libssl-dev git clang libclang-dev - -ENV LAST_CERTS_UPDATE 2020-06-19 - -RUN update-ca-certificates && \ - curl https://sh.rustup.rs -sSf | sh -s -- -y - -ENV PATH="/root/.cargo/bin:${PATH}" -ENV LAST_RUST_UPDATE="2020-09-09" -RUN rustup update stable && \ - rustup install nightly && \ - rustup target add wasm32-unknown-unknown --toolchain nightly - -RUN rustc -vV && \ - cargo -V && \ - gcc -v && \ - g++ -v && \ - cmake --version - -WORKDIR /openethereum - -### Build from the repo -ARG ETHEREUM_REPO=https://github.com/paritytech/openethereum.git -ARG ETHEREUM_HASH=344991dbba2bc8657b00916f0e4b029c66f159e8 -RUN git clone $ETHEREUM_REPO /openethereum && git checkout $ETHEREUM_HASH - -### Build locally. Make sure to set the CONTEXT to main directory of the repo. -# ADD openethereum /openethereum - -WORKDIR /parity-bridges-common - -### Build from the repo -# Build using `master` initially. -ARG BRIDGE_REPO=https://github.com/paritytech/parity-bridges-common -RUN git clone $BRIDGE_REPO /parity-bridges-common && git checkout master - -WORKDIR /openethereum -RUN cargo build --release --verbose || true - -# Then rebuild by switching to a different branch to only incrementally -# build the changes. -WORKDIR /parity-bridges-common -ARG BRIDGE_HASH=master -RUN git checkout . && git fetch && git checkout $BRIDGE_HASH -### Build locally. Make sure to set the CONTEXT to main directory of the repo. -# ADD . /parity-bridges-common - -WORKDIR /openethereum -RUN cargo build --release --verbose -RUN strip ./target/release/openethereum - -FROM ubuntu:xenial - -# show backtraces -ENV RUST_BACKTRACE 1 - -RUN set -eux; \ - apt-get update && \ - apt-get install -y curl - -RUN groupadd -g 1000 openethereum \ - && useradd -u 1000 -g openethereum -s /bin/sh -m openethereum - -# switch to user openethereum here -USER openethereum - -WORKDIR /home/openethereum - -COPY --chown=openethereum:openethereum --from=builder /openethereum/target/release/openethereum ./ -# Solve issues with custom --keys-path -RUN mkdir -p ~/.local/share/io.parity.ethereum/keys/ -# check if executable works in this container -RUN ./openethereum --version - -EXPOSE 8545 8546 30303/tcp 30303/udp - -HEALTHCHECK --interval=2m --timeout=5s \ - CMD curl -f http://localhost:8545/api/health || exit 1 - -ENTRYPOINT ["/home/openethereum/openethereum"] diff --git a/deployments/networks/eth-poa.yml b/deployments/networks/eth-poa.yml deleted file mode 100644 index 7291a2ccfd70..000000000000 --- a/deployments/networks/eth-poa.yml +++ /dev/null @@ -1,46 +0,0 @@ -# Compose file for quickly spinning up a local instance of an Ethereum PoA network. -# -# Note that this PoA network is only used for testing, so the configuration settings you see here -# are *not* recommended for a production environment. -# -# For example, do *not* keep your account key in version control, and unless you're _really_ sure -# you want to provide public access to your nodes do *not* publicly expose RPC methods. -version: '3.5' -services: - poa-node-arthur: &poa-node - image: hcastano/openethereum-bridge-builtins - entrypoint: - - /home/openethereum/openethereum - - --config=/config/poa-node-config - - --node-key=arthur - - --engine-signer=0x005e714f896a8b7cede9d38688c1a81de72a58e4 - environment: - RUST_LOG: rpc=trace,txqueue=trace,bridge-builtin=trace - ports: - - "8545:8545" - - "8546:8546" - - "30303:30303" - - poa-node-bertha: - <<: *poa-node - entrypoint: - - /home/openethereum/openethereum - - --config=/config/poa-node-config - - --node-key=bertha - - --engine-signer=0x007594304039c2937a12220338aab821d819f5a4 - ports: - - "8645:8545" - - "8646:8546" - - "31303:30303" - - poa-node-carlos: - <<: *poa-node - entrypoint: - - /home/openethereum/openethereum - - --config=/config/poa-node-config - - --node-key=carlos - - --engine-signer=0x004e7a39907f090e19b0b80a277e77b72b22e269 - ports: - - "8745:8545" - - "8746:8546" - - "32303:30303" diff --git a/deployments/networks/millau.yml b/deployments/networks/millau.yml index 001f3a060947..d42c1d7d07cb 100644 --- a/deployments/networks/millau.yml +++ b/deployments/networks/millau.yml @@ -20,7 +20,7 @@ services: - --unsafe-rpc-external - --unsafe-ws-external environment: - RUST_LOG: runtime=trace,rpc=debug,txpool=trace,runtime::bridge=trace,sc_basic_authorship=trace + RUST_LOG: runtime=trace,rpc=debug,txpool=trace,runtime::bridge=trace,sc_basic_authorship=trace,beefy=debug ports: - "19933:9933" - "19944:9944" diff --git a/deployments/networks/rialto.yml b/deployments/networks/rialto.yml index 9b902a1ca28a..0a484b2dad75 100644 --- a/deployments/networks/rialto.yml +++ b/deployments/networks/rialto.yml @@ -20,7 +20,7 @@ services: - --unsafe-rpc-external - --unsafe-ws-external environment: - RUST_LOG: runtime=trace,rpc=debug,txpool=trace,runtime::bridge=trace + RUST_LOG: runtime=trace,rpc=debug,txpool=trace,runtime::bridge=trace,beefy=debug ports: - "9933:9933" - "9944:9944" diff --git a/deployments/run.sh b/deployments/run.sh index a82e0985c5e5..5c1cded1e832 100755 --- a/deployments/run.sh +++ b/deployments/run.sh @@ -4,7 +4,7 @@ # # To deploy a network you can run this script with the name of the bridge (or multiple bridges) you want to run. # -# `./run.sh poa-rialto rialto-millau` +# `./run.sh westend-millau rialto-millau` # # To update a deployment to use the latest images available from the Docker Hub add the `update` # argument after the bridge name. @@ -30,7 +30,6 @@ function show_help () { echo Error: $1 echo " " echo "Usage:" - echo " ./run.sh poa-rialto [stop|update] Run PoA <> Rialto Networks & Bridge" echo " ./run.sh rialto-millau [stop|update] Run Rialto <> Millau Networks & Bridge" echo " ./run.sh westend-millau [stop|update] Run Westend -> Millau Networks & Bridge" echo " " @@ -39,13 +38,12 @@ function show_help () { echo " --no-ui Disable UI" echo " " echo "You can start multiple bridges at once by passing several bridge names:" - echo " ./run.sh poa-rialto rialto-millau westend-millau [stop|update]" + echo " ./run.sh rialto-millau westend-millau [stop|update]" exit 1 } RIALTO=' -f ./networks/rialto.yml -f ./networks/rialto-parachain.yml' MILLAU=' -f ./networks/millau.yml' -ETH_POA=' -f ./networks/eth-poa.yml' MONITORING=' -f ./monitoring/docker-compose.yml' UI=' -f ./ui/docker-compose.yml' @@ -65,14 +63,6 @@ do shift continue ;; - poa-rialto) - BRIDGES+=($i) - NETWORKS+=${RIALTO} - RIALTO='' - NETWORKS+=${ETH_POA} - ETH_POA='' - shift - ;; rialto-millau) BRIDGES+=($i) NETWORKS+=${RIALTO} diff --git a/deployments/ui/docker-compose.yml b/deployments/ui/docker-compose.yml index 0a35fa98e234..8b3f8178c36e 100644 --- a/deployments/ui/docker-compose.yml +++ b/deployments/ui/docker-compose.yml @@ -7,7 +7,7 @@ services: VIRTUAL_PORT: 80 LETSENCRYPT_HOST: ui.brucke.link LETSENCRYPT_EMAIL: admin@parity.io - CHAIN_1_SUBSTRATE_PROVIDER: ws://localhost:9944 - CHAIN_2_SUBSTRATE_PROVIDER: ws://localhost:19944 + CHAIN_1_SUBSTRATE_PROVIDER: ${UI_CHAIN_1:-ws://localhost:9944} + CHAIN_2_SUBSTRATE_PROVIDER: ${UI_CHAIN_2:-ws://localhost:19944} ports: - "8080:80" diff --git a/diagrams/ARCHITECTURE.md b/diagrams/ARCHITECTURE.md deleted file mode 100644 index 6da88c448c95..000000000000 --- a/diagrams/ARCHITECTURE.md +++ /dev/null @@ -1,13 +0,0 @@ -# Bridge Architecture Diagrams - -## Bridge Relay -![General Overview](general-overview.svg) -![Bridge Relay Node](bridge-relay.svg) - -## Runtime Modules -![Ethereum Pallet](ethereum-pallet.svg) -![Currency Exchange Pallet](currency-exchange-pallet.svg) - -## Usage -![Cross Chain Fund Transfer](cross-chain-fund-transfer.svg) -![Parachain](parachain.svg) diff --git a/diagrams/bridge-architecture-diagrams.drawio b/diagrams/bridge-architecture-diagrams.drawio deleted file mode 100644 index bf073129c297..000000000000 --- a/diagrams/bridge-architecture-diagrams.drawio +++ /dev/null @@ -1 +0,0 @@ -5VjZctowFP0aHul4wYAfCVm70DR0JklfOootbE1kiQg52P36XmF5lSctaWkmDQ9gHclXvuccpGsN3HmSnQm0jj/xENOBY4XZwD0eOI499X34UUheII7tjQokEiTUo2pgSX5gDVoaTUmIN62BknMqyboNBpwxHMgWhoTg2/awFaftWdcowgawDBA10WsSyrhAp55V4+eYRHE5s23pnjsU3EeCp0zPxzjDRU+CyjB66CZGId82IPdk4M4F57K4SrI5porXkjH/4b1k2SKJtxfn4/lksTr3vgyLYKf73FIlJzCTzw6dffh0tZiFF6v01sZe9PCwHrLhpAj9iGiqmdS5yrykFtJeq8sgp4SFWAzco21MJF6uUaDwLVgKsFgmFFo2XN4pOnH48a4CKpI/pxKiYI1vpOD3lWBA6NFvZqoZecRC4qzhAJ35GeYJliKHIbp3OC2dmpfAVAPb2i/ORGNxwytuCSLt0aiKXrMNF5rwPcgfvxXy3ZclvzcLxyD/CFY2WGUc6wpTlBtSiIJYzd4vVDDJXRFK55xysYvmrnafQ5LuWU6bdNvyTNZtzzNZt+1Dse4arC85JSGR6smXCRISfuecSYFgl3jtEkymHd9PehRwrB7fe39BgO/Xs+D92bfTW9j6bvJ08fVKXvbYHkoCFq4RgEcpoXJ4wf4/3seTf8h771pvGbyfyBgLnCaAXvIZfC+w3HJxb7APWcs+iktKdyVLm2UNIUoipnYPIHi3dygOCVRNM92RkDBU0/RqWqtuHVSsUUesUc/mYLs9YjmHEss2xFqmd0A6kmp7WED5/NZEcgyR/JcWyVzJGv+oq5RJkii14GUnpaZer21Jc/zuVjLuWdL6BBgfSoCevbzxL/n/FRj3FbH/VIGRocA8FZB4oJ77JAtixKI3ooX10lpMDS0MljELZ+qsQy32FG02JNixCUWvCTf4BvJEfqNX+F3jVjXeeWXzOGt2HudlKyPyph4JrdtGT32TapT37KfYhqciwE+Qoo8XIMUIPxVPc4XD1imPqX9DXe+J6k3AC5wkj+2zoT7F9QyXnDDZsFdVLlbvq37HNkXm+r7moYsRyu2E8rslZkGOEQosoV5Cq2FrNWDz5EN7nZl8r+PqImbt8YrZ59veP7zt7f1sv5+FX5s17e6rzfOtaXdruoNZ03joP7QmNOtj12J4fa7tnvwE7Vtdd5s4EP01Pmf3oTlI4suPsZOm3U27aewmbd8wKIYNRi6I2O6vX2EEBklZY5/g4Lh5iTSIQbp3GM2McA8NZ8ur2Jn7n4iHwx7UvGUPXfQgBJreZ/8yyaqQGHoumcaBx2UbwSj4hYuBXJoGHk5qAykhIQ3mdaFLogi7tCZz4pgs6sMeSFh/6tyZYkkwcp1Qlt4HHvVzqQ2tjfwDDqZ+8WRg8hVPHPdxGpM04s+LSITzKzOnUMPXmPiORxYVEbrsoWFMCM1bs+UQhxmuBWL3H1f34fWjefXXl+Sn83Xw9/jz3btc2ftdbikXF+OI7q/aH7vjxXl4i6O7wSNBqO8u+S3akxOmHEm+VroqoF2DgzMlWg8NFn5A8WjuuNnVBbMmJvPpLGQ9wJoJjcljSQGDaNBw7nyNTzimeFnhlK/lCpMZpvGKDSmuIj53brJQ5/3Fhn+jz2V+hXtkcaHDbW5a6t6gxxocwB3ARBKYI5LGLpYgZZY0z5ruKgwYtvF2XCc5CdeTUlDa7T8pZVowl7cGd78Ot23JcKvQBqAttHUJ7bETTzF9C2gboGtoG7JtryKXSa4JmUuQs2VSlWMYkpAw/C/WXhYNHoIwFEROGEyjjCyG6JqqDLSAOfpzfmEWeF72GCWHdV/VFjum4HkMmRxTQQ5sixtruxPHkXeebbMZsqGTJIFbp2c3qLBX241loKo+WIFEIYtx6NDgqb6Hq+DhT7ghAZve5i0x9DOjRoUpYpysHTC/r7o5blVlia8SXXsXSdWasXLp+5NonyiJEG1FvimJsirJHlomsb+dxI2LAvuEU1WX2YPoYf3X5r5v9WuIIk12drqlMA+9LW8H2o9ZDw6yXjdbRSgLVK8g0FoDGbw5kA1D6xrIUAK5SBi0YRjgSI5ljwxzYNcxt5ACdKAAHbWGuZw2nOo+a5svts9aYk7d8j4L5HTkNFhUxKki9PuHvJJBtM2inLjc3gwlIt92Mgmsuou0gSLAOmQ2CeRM5PRYMeyusdIgtdjm8fAyoN8y4Nh7n/e+V65cLDmm685qL4Bz39MgeO+IOxWrmhJ/jbdEKCgSA5iWXSlsEK8fg3l0a7dFonmIrDY1DxMar2se8tFEnEZ/lHwk6aQHmWotnweTYOr/eWI+X6+TDRQ1d6Aqurfm86Gcq9RYYxwJrDEeT401EzWgzbIOSZsqOTHDjAMveGLNadYcpRNGg0OzZL92lJKPZE+uDD4xToFQqrEVlB40+oJmE0ovqY9jnM5+MyrH02bXGG1waHbspfq+Imc5aKkeNjjUOnKQ9dcHWc4Mb2Li4iRhwk8sRiAea9ziJA1pcmJuBwnBAVKk8Yf1O8WEKmx9nXt5GFB8v8JZOz2yrDPxHExBFzIOSZecV5d0lWc1v+nim7ySLnh2UMLg9i2njUIIAzdeVW7Kut+r1za3rXstFVD4XlAmhNvCn44WWox9Cy26kMTrtqDomUILswdnVRk2zwYkkjW+QCkGyaWYgxjoCxtaxwxIL851C96NfQ1IVNTvnAG9wAn2EXu4IqfY6uL6nTZQY99jW90UFDX8xO15A204YVv733mZwonZruOLT2afP67ebbw4f2E8a+SI7Ptuxv7UuvkBJ++CMfn3Uvvxzf14p/g5RRnTv8YHPVIw1/Q9fL6Oo9VZaPODHtbd/LgmZ2jz6yV0+R8=7Vxbd6I6FP41PtoFhOuj2jr1zFjbOr3oy1mIUahIHMCqfTi//SQQlJsa26qo0zWrJRsIw97f/vbOTkIJ1MbzH64+MZuoD+2SwPXnJXBdEgSeEzX8h0gWkUQSQ8nQtfpUthK0rQ8YXUilU6sPvcSFPkK2b02SQgM5DjT8hEx3XTRLXjZAdvKpE30IM4K2odtZ6YvV981QqkrcSn4LraEZPZnn6JmeboyGLpo69HkOcmB4ZqxH3dBLPVPvo1lMBG5KoOYi5IdH43kN2kSvkcY6wsNtxX2ZP92Zzdn0X69lvw3LYWf1XW5ZvpwLHf/TXT8/NH/fPFbE22Zt6nTrlvHDmtNbuHfdnlJN0nf1F5FqA+VA0glXAtWZafmwPdENcnaG0YRlpj+2cYvHhwPLtmvIRi5uB6oEVfoE6PpwnjLWlvfhl0rGwIVoDH13ge+jvQiRCRcpY89iAFCozIwbPzKoTkE3XPa9Uh8+oBrM12bj58/RU/WpbjxKgLt2TH5SeY0MtUmb0OlXCN5xy7B1z7OMpALh3PJfY8cdovcribau59QMQWNBG7uoE/ul7g6hv+EtlPA62E+4XNYOMT1LOWqOZC60dd96TzpqnurpE+6RhV9jaWZeSpoZiCnreWjqGpDeFcd/qqOlH0cdSamOQsVkOgqQsHztL4BDYkAH1nmbNpHrm2iIHN2+WUmrSW9cXfMLoQmFzRv0/QWlaH3qoyTAdgNLqNwNbwUYQSUygooZLV9yVJAxRWM8wcrEsrY1dLB+Be4W6n3obqBDfjsd7qbsDEeu5z5VSmCZl7Pct6S5uFPKe6M++RzRLTKiWyoUusX16C4yqEUtSdAFALVyjqCWGEEtFwrU2ehZw3olmH7WbYsQtu6Q3w3nnbZDrHvFBLusFg7sWiHAjvXsLl5XWS9pdqKslzRWOXDQ+lwSvNVJZEYn4fnv9pL87FXjk3hR2JJXPNbQF7HLJuQCb8NjuFRiwaUGlensXFA23oAPwv/Ct6bSYhaqdygXrL/0HrSTAMPsMHTwsYGBgkMhqBKntQzdrtATY6vfD7EMPetD7wX9EYhR5eHOpWpJus4F3WbXyg6CaUGEPqUUryzk0QZ3xalASWi8TN30swCLLkGDgQf3MvIRGKoMpxdGmRmCK1QcFdWMMTowGySL4zxL9HzZecrcFR45yUV3l+xI6jrIZ2YQ/xpYGPIE4STfWQS5wZosx0Tj3tQ7XoajiqkMB+RkOOCg9TnhLEswCiMRgWLxUBbmBeehCDzfwkOprKnonASyFbOSINtYX9W+9Y4Ph+SQJGGhED8kJj+Gk0WF9FXxvBM7k19IL8jYg9Wh1e926PwcX9SUqyRcgXbY0nm2DNPATLEs1RYt8oHUIApw2cin5gQ+dV9xD5xlHUtldBPtQG6SqslL3GGdJJvXL6u+T453irMaonLsmpgoHiV0rQlD/GHDkMbqX6wTxl+dCVZSM/6ZqeA9e1i26nSS8yrHd6vI9ucVj6JCzxFqxl8r/GfLc49wprskXLSnvbHl+0WFNs+liwxHn0aJoHxm2GZdPMQLhcK2kJ0LP25ETwwrV+H9MBGd3YrfXitaN30EUiGdZwvpu85rZeapwCHmqfhsnIuVcl1oQKK64Hwgjmq5oJ6l22MPajGLpmpWefVc8aD1XPHIznzUKlHEtMXNzzNBdt8rLLOh97erGyMs+oHQKaQzIl+0dEYElxwvWVe3HszF5FS+Cw5cZOKz8wD3U8fyTCyr6qfoYsIeR8NPHnRbvTey4UXg7HAWi9z6DF1rsEiVDeypYfUNU3f98JYGtYNvdpvC3POvX7yH8MrNtXI59v7UpDEjxFScZwH8b4Acnzomz9N2tKWjRABHfrDcw3dazhBLAWn5LhrBFpH5RLM8t7s/7lApBHLCiKoCMkbU5KwNFWFnG+JmzIwbzVozYRBsBlhXAleZYtpziTawU5BZOa5m6s4wmuNcZ+4yNvft80ipdM1XFnMrF2BuoIgFNPdmO/6H7fgxrvm1udBnsaPKasd45OTVHAvm2ybJvrpr0FuCILo1ons4rvjRxqVoYxeJvsvdTD0bYfAHorplL2k8tqPpiuMAL8RnY1dzs/eYEbFpyFR+MgEoc7HbchKB9I3fnAEorKu8lE/smlpuQkyMliLhbqnC+gExewrwCaqzBviXA2fLwWtptUSJTNGSfZypNUrrHAa+dZu/P0Yv/zy3OiwOo10A8UnRkOaEiM/GdpSu1cZb76HMYEeVY7XjX+I7JPGxLkJRWKfXz4P4GJP24ajbNLtQaz5UZBYnEL5CZusQLnGnQnOpndzROoAtLBctZT4Gy4nYwI7VgvPH4Q2LgcGFsJysiaIIBFVTT4vvVNZqqsK6Le48+C53hcM6pzDsbtPSfk0rr9OfLE4hHiiFC66jHfNbuS64A2M8K4n1PQh+9lmoUlKkyOdNt4hZXEWlkf2wYsPBJ+J44DD8EClx+MglH2nZCBAPdZuPd3B0bzoeC0CkC8jxZYk/uRy/iu340pOa7WlbYLEjc03yxKPfacW8KHXfvtCc9fsG5xHzmro7KsX2j5PnClydljX6m12jNek2u8q8/CJe1Vlc4xLqt4qqnRzFPWM7jv80fjVuJn9Y7Pi3fltEilNZP3ahXlb99t6dku/cca2gPnvLUp/VsEM8d64mPX94x+IQl1Cf1YTkXvxTIDbjT7fZK5uPVqs1Z7Cj9rc+W0hiY94keFn12bBeEWx1qgaGx+ymB8tTSkI1mcWx0V4Hu4v8Xgei+MQyH6/xrO5ylpVcnudSKzNOoJbLYxPXXzv3//hig8XEzMX6y2TEZQlY40T1SOzIvHeNdSvOebDjXTBTv4cJLI15fuMsaU9OrcqMvoZ5VNK7cbaUKna18ZdKFSdvY16W0itHD2llLFp9ajwkhdW33MHN/w==5VpdV6M8EP41vXRPAqUtl9rWj3P86K67x1dv9qSQQjQQDMG2/vo3gSCf1lqrrWe9kUyGgTzzzGQmtGMOg8UJR5F/wVxMOwZwFx1z1DEMCLq2/Kcky1xidTOJx4mrZYXgmjzjXFFLE+LiuKIoGKOCRFWhw8IQO6IiQ5yzeVVtxmj1qRHycENw7SDalN4QV/iZdGCBQn6KiefnT4ZAz0yR8+BxloT6eSELcTYToNyMVo195LJ5SWSOO+aQMyayq2AxxFThmiN2PT4fJ/dD93Hi9/2jx8mjMWEHmbHj99zysjiOQ7Gx6cNxd+CeUfE4t9njYhksEXIODL00scyRxK4EVg8ZFz7zWIjouJAepWhhZRXIUaFzzlgkhVAK77EQS80SlAgmRb4IqJ6Vq+DL//T96eBWDX5Y+XC0KE+Olnq0Jgwarpgl3NGLurzD4Z+Zc3N7B/4KByx/To2hhgsIxD0sVmCk7SlgSmTTIJ9gFmD5klKBY4oEeaoyEmliey96hYvkhfZSOvwTY341vVfhYQCKpphmt/7mKIyRIwgLM5s0cYjr+IiLTP1Me9h7uLvw77B98fOwl2nmvn99/VWulHhQ8tfcJwJfRyhFcy4zSIUESgNxR3vbUo6asVDoMYR6PGSU8dS0CdI/KY+lTRJ6UmqqkeDsAV8pmVAuh+D9Tn/CXODFSjfls3lY65RnQo3ZvMgfthb5pdTRHbzbsXJY8u07orO3i+jcPMpa17BulFlfFGXrIa/f+gnRRD9pgngsdwbQiMaSd6pB0RY2G+O8PrFNWCU27IEGsV/IX2Z2rrd1MM3dbjLFvnJbntv6JrNq83iT/mCv6N9t0P9WVndtXjzP9qky8ogSL5TXjkQQy5R/pLhLZK12qCcC4rqZk3FMntE0taewjxgJRboW66hjjVq9sYphjSB5KTj1QyqVW1vwHIAfEPT7lQDKi6S1odfWJ2o1JRU2m8WSA3XfvLzE5u6CO9kovlmEwa3Xcemth5yjZUlBc7hJgzw996vpuduvle01fQgGg1U3yIvsFbbLqH4jA1yyPU4AeQRsJQPYwLYrkO9/Amh46yzOYFPPZzP1EqqtJjK+ZTi7qvGlzHnomMfNIsZnwTSJd1jAAKuK/sBqFjBmSwED4WdVMHDHJcxX9cmrKvPvkmCtbq2xA/YX5Evrm1VMcJsl06BnGd8rYTbddYqeVHs3kzGrUieiHCNXLXOKcahQoYgEKpr3MGN27VrL121p+UBbxgSfljFBA6bvd3bRXzPz2dtOfB+Cvlm6jXDEYqIiS8YXS1/EIRHBWbA5joRdNFm9D4cZg+6+HWbAnRyZb5nY9s629A9hbzeY/QvPEVfl7HUyDYhQu+de8hgCo9rFfSaRX/uQMA7dzNb7PyCsYMe/+wUB1JJTW6PyhZ8Q7Mu+Efds/3QijJuDoTGZLY5bDrIPFRicOGm1g9NecM4SmvaEShZKWSqdSbRljvBJs46NfRSpS1miUpaIt+MqwlxWT2lxm980KUSf5qJe7bClv2bQDbawe+C/1IPPEb8ySASdE352FrHdfG/dfPNoXcO6X3T6u9o7Vr11KRCGLFRMUkznLMgIj1W/JYv9hEuwnGVRMVEmaVuZ2cdtps73Ly2XWmFvnky9co74z56lrGLrm7FT9OCGNr1pz52fntRbSbvGjGyJ+q6CHA1Djcq9bijDYIWhj5wCyGHxw5xMvfjlkzn+Hw==5VhdU6MwFP01POoAgaqPtlZ3R3d0ts7sc4BbyBhIJ4R++Os3KeEzONZVnLr2BXJJbsg599x7i4Vm6faG41Xyi0VALdeOtha6slzXsb0LeVGWXWXxvdIScxJpW2NYkGeoJmprQSLIOxMFY1SQVdcYsiyDUHRsmHO26U5bMtrddYVjMAyLEFPT+odEIimt577d2H8AiZNqZ8fWTwIcPsWcFZneL2MZlE9SXLnRU/MER2zTMqG5hWacMVHepdsZUIVrhdht+pM4cjMes+y68Cfp+vH2pHR2/ZYl9eE4ZOJjXbul6zWmhUZyLhLgUKT6zGJXQSyPv1K34Y6SLAJuoekmIQIWKxwq+0aGlrQlIqVy5MjbQMEK0V1QG2qw7wshvYC2H3g+jcMauIBti3d93htgKQi+k1P0Uxdp6nRYu+d6vGlipI6EpB0f1UKs4zKufTcIyxsN8hsARwbgiyLIBccC/gfEvcnRIe4ZiF+GgvEX0S5SWk5AU3VuIpPMHQ6APrCcCMIyOSVgQrBUTqDqwbTGeMaoWie9oeX+1/JxSUms1grW44yVxMzqzGiPyI/jd/nxfZMfNEDPZCx2JgY7BjGQRZeqRCglUJznJOwC+DasIOpUEhOpFhL+ABKVjQPFgqy79WcIHr3DAyPy9RoiLnpEuD2Ec1bwEPSqdlrvOXK9riOv70hgHoMwHO3Zqo/97wRWHUCLQedUjheSNnm5Y+GTvDxuTVolEXthddnEWiehZBP4gIBSEkXKx5RDTp5xsPenNLNSR9wf2p9a/tXhkVHFYF9FdbuiN+nU/SF12ae263Xz3/uCpZrClsscxqHPMehzFX3zlKgXmK9Bh81QqsyYgAOK0gs1KML86V6uIkKBJbHzP7EVqPXXLkzOgN7Px8p8jtl7TWVvLbOTa/+W8bIzYOdlddfwvYL6WECiXr7x7QEg3c8sIY7ZU32PGoLcV1L/oTUE9boCrx/0Y9cQs0dDp3sZ4OjFJHQ89aMOwA8oIM7ki9UP/5uKz+uLr6+ZQ8XnnfUc9f8JjS0+swX3Wg2c6tzsB87Y8pgVWEXhuxV4IiXYbRSOXoFnBn++4u+G4/0bXMumITe4+4ItXP/bwpgtnBw2H/ZKppovp2j+Fw==3ZnLcpswFIafxstmEEIOLGPHSWbaTtx60aY7GVRgAsgjhI3z9BVG4ibqOB5fszL6EQfrO7+kI3sAx3H+yPAi+E49Eg1Mw8sH8H5gmsCwHPFRKGulIKtUfBZ6UquFWfhGVEepZqFH0lZHTmnEw0VbdGmSEJe3NMwYXbW7/aVR+60L7BNNmLk40tVfoceDUrWRUetPJPQD9WZgyDtz7L76jGaJfF9CE1LeibEKI7umAfboqiHByQCOGaW8vIrzMYkKrorY16c0c//APGEPy2ecvC3Wyx9fymAPH3mkGhwjCT9saLMMvcRRJklOafQqxsnlmPlaIRbDXxSX7joKE4+wARytgpCT2QK7hb4S1hJawONItIC4nBdYifdtXgkV7OeMiyhE6juOT3JYEsZJ3si7HO8joTHhbC26yLu2zJx0tXmLyvaqtogJZZ+gYQ+oRCxt6Veha8DiQjL+AG+o8f4MnC0TtUEr8E3QqA+0eSzQlgZ6wgPCSBYL9WeW8DAW89wQS2EWES0HrCQqsb2D/2hUrTZVC/VQBX1UjwUVaVBn2TzlDHNytVQRODfVoUZ1nDExbLf41pPcDXDiXy9f6Jybr/3+mksS766oQoplN8JpGrqCUMox47q8N8OUZswl72/G4rU+2RZPbiLEa9VEekYaxPsWX6UxEmEeLtuVVF8W5BumNBTDrRIOUXuXRUYnkeW45VPNAqUTyDLagar1TgUqwWiBNqaohr2/T5ytq9sIp2JqmcY4wGEiPu8+w8Ztd5Cb+lwFdo91zKPt22pl2DELo8+QBWA47TRA6/x5AFoeGgXUlN7VSbj+BHSnwbCn0jo1f/1kNhIn77IQEAv2Or3M7d8GHSv3HAXAsAclsI6GcodD154FAMlD/ltcGzeOM5Ttl00bQUu27wsyhmqsG40pYaKe48UU2WgHLifgjuWEstqF1BPDzmJoWc4N2q+i6M7rnlBHrimAfg49mPcS8dVK8yHVfGneq423aTWd13hMOXarWw/sTLW5XJs17Y41h90zy87G7ARCJy51gX6SP7ctD22xXQ9TzmU5DP2nEvyow5xuZe+c2GH6rxqH3nRBe8M96QK2q7tUNXQh9gJGpzyzbvf0FzCGnUjdUnhvg4lm/adK2b3+1wpO/gE= \ No newline at end of file diff --git a/diagrams/bridge-relay.svg b/diagrams/bridge-relay.svg deleted file mode 100644 index 2907a7c7fce9..000000000000 --- a/diagrams/bridge-relay.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -SourceSourceTargetTargetSync LoopSync LoopSource ClientSource ClientRPCRPCRPCRPCrun(source=sub, target=eth)run(source=sub, target=eth)run(source=eth, target=sub)run(source=eth, target=sub)Substrate Sync LoopSubstrate Sync LoopEthereum Sync LoopEthereum Sync LoopProcess Method ResultsProcess Method ResultsUpdate Target MethodsUpdate Target MethodsUpdate Source MethodsUpdate Source MethodsTarget ClientTarget ClientViewer does not support full SVG 1.1 \ No newline at end of file diff --git a/diagrams/cross-chain-fund-transfer.svg b/diagrams/cross-chain-fund-transfer.svg deleted file mode 100644 index 5fd9ced1d436..000000000000 --- a/diagrams/cross-chain-fund-transfer.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -EthereumEthereumSubstrateSubstrateActorActor1. Send Lock Tx1. Send Lock Tx2. Emit Event2. Emit EventBridge RelayBridge Relay3. Read Event3. Read Event4. Send Tx Proof4. Send Tx Proof5. Grant Funds5. Grant FundsViewer does not support full SVG 1.1 \ No newline at end of file diff --git a/diagrams/currency-exchange-pallet.svg b/diagrams/currency-exchange-pallet.svg deleted file mode 100644 index 1f1b2ef7b5ce..000000000000 --- a/diagrams/currency-exchange-pallet.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -TransactionTransactionParse TransactionParse TransactionYesYesNoNoIs part of a finalized block?Is part of a finalize...YesYesHave funds already been claimed?Have funds alrea...Deposit into recipient accountDeposit into recipie...Reward SubmitterReward SubmitterEndEndA price feed would be needed for thisA price feed would b...Convert from foreign currency into local currencyConvert from foreign...NoNoViewer does not support full SVG 1.1 \ No newline at end of file diff --git a/diagrams/ethereum-pallet.svg b/diagrams/ethereum-pallet.svg deleted file mode 100644 index 934255be2260..000000000000 --- a/diagrams/ethereum-pallet.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -Import Signed HeaderImport Signed HeaderImport HeaderImport HeaderCount Valid and Invalid HeadersCount Valid and Inva...NoNoYesYesDid we finalize any headersDid we finalize any h...YesYesNoNoIs SignedIs SignedImport Unsigned HeaderImport Unsigned Head...Import HeaderImport HeaderReward SubmitterReward SubmitterDid we receive valid headers?Did we receive valid he...Track Good SubmitterTrack Good SubmitterPunish Bad SubmitterPunish Bad SubmitterVerify HeaderVerify HeaderCheck for Authority Set ChangesCheck for Authori...Check if new header finalizes old headersCheck if new head...Header HeaderImport HeaderImport HeaderInsert Header into StorageInsert Header int...Mark Headers as FinalizedMark Headers as F...Prune Old HeadersPrune Old HeadersImported Block Hash + Finalized HeadersImported Block Ha...New HeaderNew HeaderEndEndViewer does not support full SVG 1.1 \ No newline at end of file diff --git a/diagrams/general-overview.svg b/diagrams/general-overview.svg deleted file mode 100644 index d7706893ab9d..000000000000 --- a/diagrams/general-overview.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -Bridge RelayBridge RelaySolidity Smart ContractSolidity Smart ContractGrandpa Built-InGrandpa Built-InEthereum PoA NetworkEthereum PoA NetworkSubstrate NodeSubstrate NodeEthereum Runtime ModuleEthereum Runtime ModuleSubstrate Runtime ModuleSubstrate Runtime ModuleCurrency Exchange Runtime ModuleCurrency Exchange Runtime ModuleViewer does not support full SVG 1.1 \ No newline at end of file diff --git a/diagrams/parachain.svg b/diagrams/parachain.svg deleted file mode 100644 index a1a15f172cf0..000000000000 --- a/diagrams/parachain.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -PolkadotPolkadotEthereum Runtime ModuleEthereum Runtime ModuleSubstrate Runtime ModuleSubstrate Runtime ModuleCurrency Exchange Runtime ModuleCurrency Exchange Runtime ModuleSubstrate Based Chain ASubstrate Based Chain ASubstrate Based Chain BSubstrate Based Chain BEthereum PoA ChainEthereum PoA ChainBridge RelaysBridge RelaysViewer does not support full SVG 1.1 \ No newline at end of file diff --git a/docs/poa-eth.md b/docs/poa-eth.md deleted file mode 100644 index 43b30f8bb737..000000000000 --- a/docs/poa-eth.md +++ /dev/null @@ -1,71 +0,0 @@ -# PoA Ethereum High Level Documentation - -NOTE: This is from the old README - -### Ethereum Bridge Runtime Module -The main job of this runtime module is to keep track of useful information an Ethereum PoA chain -which has been submitted by a bridge relayer. This includes: - - - Ethereum headers and their status (e.g are they the best header, are they finalized, etc.) - - Current validator set, and upcoming validator sets - -This runtime module has more responsibilties than simply storing headers and validator sets. It is -able to perform checks on the incoming headers to verify their general integrity, as well as whether -or not they've been finalized by the authorities on the PoA chain. - -This module is laid out as so: - -``` -├── ethereum -│ └── src -│ ├── error.rs // Runtime error handling -│ ├── finality.rs // Manage finality operations -│ ├── import.rs // Import new Ethereum headers -│ ├── lib.rs // Store headers and validator set info -│ ├── validators.rs // Track current and future PoA validator sets -│ └── verification.rs // Verify validity of incoming Ethereum headers -``` - -### Currency Exchange Runtime Module -The currency exchange module is used to faciliate cross-chain funds transfers. It works by accepting -a transaction which proves that funds were locked on one chain, and releases a corresponding amount -of funds on the recieving chain. - -For example: Alice would like to send funds from chain A to chain B. What she would do is send a -transaction to chain A indicating that she would like to send funds to an address on chain B. This -transaction would contain the amount of funds she would like to send, as well as the address of the -recipient on chain B. These funds would now be locked on chain A. Once the block containing this -"locked-funds" transaction is finalized it can be relayed to chain B. Chain B will verify that this -transaction was included in a finalized block on chain A, and if successful deposit funds into the -recipient account on chain B. - -Chain B would need a way to convert from a foreign currency to its local currency. How this is done -is left to the runtime developer for chain B. - -This module is one example of how an on-chain light client can be used to prove a particular action -was taken on a foreign chain. In particular it enables transfers of the foreign chain's native -currency, but more sophisticated modules such as ERC20 token transfers or arbitrary message transfers -are being worked on as well. - -## Ethereum Node -On the Ethereum side of things, we require two things. First, a Solidity smart contract to track the -Substrate headers which have been submitted to the bridge (by the relay), and a built-in contract to -be able to verify that headers have been finalized by the GRANDPA finality gadget. Together this -allows the Ethereum PoA chain to verify the integrity and finality of incoming Substrate headers. - -The Solidity smart contract is not part of this repo, but can be found -[here](https://github.com/svyatonik/substrate-bridge-sol/blob/master/substrate-bridge.sol) if you're -curious. We have the contract ABI in the `ethereum/relays/res` directory. - -## Rialto Runtime -The node runtime consists of several runtime modules, however not all of them are used at the same -time. When running an Ethereum PoA to Substrate bridge the modules required are the Ethereum module -and the currency exchange module. When running a Substrate to Substrate bridge the Substrate and -currency exchange modules are required. - -Below is a brief description of each of the runtime modules. - -## Bridge Relay -The bridge relay is responsible for syncing the chains which are being bridged, and passing messages -between them. The current implementation of the relay supportings syncing and interacting with -Ethereum PoA and Substrate chains. diff --git a/modules/currency-exchange/Cargo.toml b/modules/currency-exchange/Cargo.toml deleted file mode 100644 index dc06a342cc8e..000000000000 --- a/modules/currency-exchange/Cargo.toml +++ /dev/null @@ -1,50 +0,0 @@ -[package] -name = "pallet-bridge-currency-exchange" -description = "A Substrate Runtime module that accepts 'lock funds' transactions from a peer chain and grants an equivalent amount to a the appropriate Substrate account." -version = "0.1.0" -authors = ["Parity Technologies "] -edition = "2018" -license = "GPL-3.0-or-later WITH Classpath-exception-2.0" - -[dependencies] -codec = { package = "parity-scale-codec", version = "2.2.0", default-features = false } -log = { version = "0.4.14", default-features = false } -scale-info = { version = "1.0", default-features = false, features = ["derive"] } -serde = { version = "1.0", optional = true } - -# Bridge dependencies - -bp-currency-exchange = { path = "../../primitives/currency-exchange", default-features = false } -bp-header-chain = { path = "../../primitives/header-chain", default-features = false } - -# Substrate Dependencies - -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false, optional = true } - -[dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "master" } - -[features] -default = ["std"] -std = [ - "bp-currency-exchange/std", - "bp-header-chain/std", - "codec/std", - "frame-benchmarking/std", - "frame-support/std", - "frame-system/std", - "log/std", - "scale-info/std", - "serde", - "sp-runtime/std", - "sp-std/std", -] -runtime-benchmarks = [ - "frame-benchmarking", - "sp-std", -] diff --git a/modules/currency-exchange/src/benchmarking.rs b/modules/currency-exchange/src/benchmarking.rs deleted file mode 100644 index 813c1bfe884d..000000000000 --- a/modules/currency-exchange/src/benchmarking.rs +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! Exchange module complexity is mostly determined by callbacks, defined by runtime. -//! So we are giving runtime opportunity to prepare environment and construct proof -//! before invoking module calls. - -use super::{ - Call, Config as CurrencyExchangeConfig, InclusionProofVerifier, - Pallet as CurrencyExchangePallet, -}; -use sp_std::prelude::*; - -use frame_benchmarking::{account, benchmarks_instance_pallet}; -use frame_system::RawOrigin; - -const SEED: u32 = 0; -const WORST_TX_SIZE_FACTOR: u32 = 1000; -const WORST_PROOF_SIZE_FACTOR: u32 = 1000; - -/// Pallet we're benchmarking here. -pub struct Pallet, I: 'static>(CurrencyExchangePallet); - -/// Proof benchmarking parameters. -pub struct ProofParams { - /// Funds recipient. - pub recipient: Recipient, - /// When true, recipient must exists before import. - pub recipient_exists: bool, - /// When 0, transaction should have minimal possible size. When this value has non-zero value - /// n, transaction size should be (if possible) near to MIN_SIZE + n * SIZE_FACTOR. - pub transaction_size_factor: u32, - /// When 0, proof should have minimal possible size. When this value has non-zero value n, - /// proof size should be (if possible) near to MIN_SIZE + n * SIZE_FACTOR. - pub proof_size_factor: u32, -} - -/// Config that must be implemented by runtime. -pub trait Config: CurrencyExchangeConfig { - /// Prepare proof for importing exchange transaction. - fn make_proof( - proof_params: ProofParams, - ) -> <>::PeerBlockchain as InclusionProofVerifier>::TransactionInclusionProof; -} - -benchmarks_instance_pallet! { - // Benchmark `import_peer_transaction` extrinsic with the best possible conditions: - // * Proof is the transaction itself. - // * Transaction has minimal size. - // * Recipient account exists. - import_peer_transaction_best_case { - let i in 1..100; - - let recipient: T::AccountId = account("recipient", i, SEED); - let proof = T::make_proof(ProofParams { - recipient: recipient.clone(), - recipient_exists: true, - transaction_size_factor: 0, - proof_size_factor: 0, - }); - }: import_peer_transaction(RawOrigin::Signed(recipient), proof) - - // Benchmark `import_peer_transaction` extrinsic when recipient account does not exists. - import_peer_transaction_when_recipient_does_not_exists { - let i in 1..100; - - let recipient: T::AccountId = account("recipient", i, SEED); - let proof = T::make_proof(ProofParams { - recipient: recipient.clone(), - recipient_exists: false, - transaction_size_factor: 0, - proof_size_factor: 0, - }); - }: import_peer_transaction(RawOrigin::Signed(recipient), proof) - - // Benchmark `import_peer_transaction` when transaction size increases. - import_peer_transaction_when_transaction_size_increases { - let i in 1..100; - let n in 1..WORST_TX_SIZE_FACTOR; - - let recipient: T::AccountId = account("recipient", i, SEED); - let proof = T::make_proof(ProofParams { - recipient: recipient.clone(), - recipient_exists: true, - transaction_size_factor: n, - proof_size_factor: 0, - }); - }: import_peer_transaction(RawOrigin::Signed(recipient), proof) - - // Benchmark `import_peer_transaction` when proof size increases. - import_peer_transaction_when_proof_size_increases { - let i in 1..100; - let n in 1..WORST_PROOF_SIZE_FACTOR; - - let recipient: T::AccountId = account("recipient", i, SEED); - let proof = T::make_proof(ProofParams { - recipient: recipient.clone(), - recipient_exists: true, - transaction_size_factor: 0, - proof_size_factor: n, - }); - }: import_peer_transaction(RawOrigin::Signed(recipient), proof) - - // Benchmark `import_peer_transaction` extrinsic with the worst possible conditions: - // * Proof is large. - // * Transaction has large size. - // * Recipient account does not exists. - import_peer_transaction_worst_case { - let i in 1..100; - let m in WORST_TX_SIZE_FACTOR..WORST_TX_SIZE_FACTOR+1; - let n in WORST_PROOF_SIZE_FACTOR..WORST_PROOF_SIZE_FACTOR+1; - - let recipient: T::AccountId = account("recipient", i, SEED); - let proof = T::make_proof(ProofParams { - recipient: recipient.clone(), - recipient_exists: false, - transaction_size_factor: m, - proof_size_factor: n, - }); - }: import_peer_transaction(RawOrigin::Signed(recipient), proof) - -} diff --git a/modules/currency-exchange/src/lib.rs b/modules/currency-exchange/src/lib.rs deleted file mode 100644 index 31b789dd97e7..000000000000 --- a/modules/currency-exchange/src/lib.rs +++ /dev/null @@ -1,514 +0,0 @@ -// Copyright 2019-2021 Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! Runtime module that allows tokens exchange between two bridged chains. - -#![cfg_attr(not(feature = "std"), no_std)] - -use bp_currency_exchange::{ - CurrencyConverter, DepositInto, Error as ExchangeError, MaybeLockFundsTransaction, - RecipientsMap, -}; -use bp_header_chain::InclusionProofVerifier; -use frame_support::ensure; - -#[cfg(feature = "runtime-benchmarks")] -pub mod benchmarking; - -/// Called when transaction is submitted to the exchange module. -pub trait OnTransactionSubmitted { - /// Called when valid transaction is submitted and accepted by the module. - fn on_valid_transaction_submitted(submitter: AccountId); -} - -pub use pallet::*; - -#[frame_support::pallet] -pub mod pallet { - use super::*; - use frame_support::pallet_prelude::*; - use frame_system::pallet_prelude::*; - - #[pallet::config] - pub trait Config: frame_system::Config { - /// Handler for transaction submission result. - type OnTransactionSubmitted: OnTransactionSubmitted; - /// Represents the blockchain that we'll be exchanging currency with. - type PeerBlockchain: InclusionProofVerifier; - /// Peer blockchain transaction parser. - type PeerMaybeLockFundsTransaction: MaybeLockFundsTransaction< - Transaction = ::Transaction, - >; - /// Map between blockchains recipients. - type RecipientsMap: RecipientsMap< - PeerRecipient = ::Recipient, - Recipient = Self::AccountId, - >; - /// This blockchain currency amount type. - type Amount; - /// Converter from peer blockchain currency type into current blockchain currency type. - type CurrencyConverter: CurrencyConverter< - SourceAmount = ::Amount, - TargetAmount = Self::Amount, - >; - /// Something that could grant money. - type DepositInto: DepositInto; - } - - #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] - pub struct Pallet(PhantomData<(T, I)>); - - #[pallet::hooks] - impl, I: 'static> Hooks> for Pallet {} - - #[pallet::call] - impl, I: 'static> Pallet { - /// Imports lock fund transaction of the peer blockchain. - #[pallet::weight(0)] // TODO: update me (https://github.com/paritytech/parity-bridges-common/issues/78) - pub fn import_peer_transaction( - origin: OriginFor, - proof: <>::PeerBlockchain as InclusionProofVerifier>::TransactionInclusionProof, - ) -> DispatchResult { - let submitter = frame_system::ensure_signed(origin)?; - - // verify and parse transaction proof - let deposit = prepare_deposit_details::(&proof)?; - - // make sure to update the mapping if we deposit successfully to avoid double spending, - // i.e. whenever `deposit_into` is successful we MUST update `Transfers`. - { - // if any changes were made to the storage, we can't just return error here, because - // otherwise the same proof may be imported again - let deposit_result = - T::DepositInto::deposit_into(deposit.recipient, deposit.amount); - match deposit_result { - Ok(_) => (), - Err(ExchangeError::DepositPartiallyFailed) => (), - Err(error) => return Err(Error::::from(error).into()), - } - Transfers::::insert(&deposit.transfer_id, ()) - } - - // reward submitter for providing valid message - T::OnTransactionSubmitted::on_valid_transaction_submitted(submitter); - - log::trace!( - target: "runtime", - "Completed currency exchange: {:?}", - deposit.transfer_id, - ); - - Ok(()) - } - } - - #[pallet::error] - pub enum Error { - /// Invalid peer blockchain transaction provided. - InvalidTransaction, - /// Peer transaction has invalid amount. - InvalidAmount, - /// Peer transaction has invalid recipient. - InvalidRecipient, - /// Cannot map from peer recipient to this blockchain recipient. - FailedToMapRecipients, - /// Failed to convert from peer blockchain currency to this blockchain currency. - FailedToConvertCurrency, - /// Deposit has failed. - DepositFailed, - /// Deposit has partially failed (changes to recipient account were made). - DepositPartiallyFailed, - /// Transaction is not finalized. - UnfinalizedTransaction, - /// Transaction funds are already claimed. - AlreadyClaimed, - } - - /// All transfers that have already been claimed. - #[pallet::storage] - pub(super) type Transfers, I: 'static = ()> = StorageMap< - _, - Blake2_128Concat, - ::Id, - (), - ValueQuery, - >; -} - -impl, I: 'static> Pallet { - /// Returns true if currency exchange module is able to import given transaction proof in - /// its current state. - pub fn filter_transaction_proof( - proof: &::TransactionInclusionProof, - ) -> bool { - if let Err(err) = prepare_deposit_details::(proof) { - log::trace!( - target: "runtime", - "Can't accept exchange transaction: {:?}", - err, - ); - - return false - } - - true - } -} - -impl, I: 'static> From for Error { - fn from(error: ExchangeError) -> Self { - match error { - ExchangeError::InvalidTransaction => Error::InvalidTransaction, - ExchangeError::InvalidAmount => Error::InvalidAmount, - ExchangeError::InvalidRecipient => Error::InvalidRecipient, - ExchangeError::FailedToMapRecipients => Error::FailedToMapRecipients, - ExchangeError::FailedToConvertCurrency => Error::FailedToConvertCurrency, - ExchangeError::DepositFailed => Error::DepositFailed, - ExchangeError::DepositPartiallyFailed => Error::DepositPartiallyFailed, - } - } -} - -impl OnTransactionSubmitted for () { - fn on_valid_transaction_submitted(_: AccountId) {} -} - -/// Exchange deposit details. -struct DepositDetails, I: 'static> { - /// Transfer id. - pub transfer_id: ::Id, - /// Transfer recipient. - pub recipient: ::Recipient, - /// Transfer amount. - pub amount: ::TargetAmount, -} - -/// Verify and parse transaction proof, preparing everything required for importing -/// this transaction proof. -fn prepare_deposit_details, I: 'static>( - proof: &<>::PeerBlockchain as InclusionProofVerifier>::TransactionInclusionProof, -) -> Result, Error> { - // ensure that transaction is included in finalized block that we know of - let transaction = >::PeerBlockchain::verify_transaction_inclusion_proof(proof) - .ok_or(Error::::UnfinalizedTransaction)?; - - // parse transaction - let transaction = >::PeerMaybeLockFundsTransaction::parse(&transaction) - .map_err(Error::::from)?; - let transfer_id = transaction.id; - ensure!(!Transfers::::contains_key(&transfer_id), Error::::AlreadyClaimed); - - // grant recipient - let recipient = T::RecipientsMap::map(transaction.recipient).map_err(Error::::from)?; - let amount = T::CurrencyConverter::convert(transaction.amount).map_err(Error::::from)?; - - Ok(DepositDetails { transfer_id, recipient, amount }) -} - -#[cfg(test)] -mod tests { - // From construct_runtime macro - #![allow(clippy::from_over_into)] - - use super::*; - use bp_currency_exchange::LockFundsTransaction; - use frame_support::{ - assert_noop, assert_ok, construct_runtime, parameter_types, weights::Weight, - }; - use sp_core::H256; - use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, IdentityLookup}, - Perbill, - }; - - type AccountId = u64; - - const INVALID_TRANSACTION_ID: u64 = 100; - const ALREADY_CLAIMED_TRANSACTION_ID: u64 = 101; - const UNKNOWN_RECIPIENT_ID: u64 = 0; - const INVALID_AMOUNT: u64 = 0; - const MAX_DEPOSIT_AMOUNT: u64 = 1000; - const SUBMITTER: u64 = 2000; - - type RawTransaction = LockFundsTransaction; - - pub struct DummyTransactionSubmissionHandler; - - impl OnTransactionSubmitted for DummyTransactionSubmissionHandler { - fn on_valid_transaction_submitted(submitter: AccountId) { - Transfers::::insert(submitter, ()); - } - } - - pub struct DummyBlockchain; - - impl InclusionProofVerifier for DummyBlockchain { - type Transaction = RawTransaction; - type TransactionInclusionProof = (bool, RawTransaction); - - fn verify_transaction_inclusion_proof( - proof: &Self::TransactionInclusionProof, - ) -> Option { - if proof.0 { - Some(proof.1.clone()) - } else { - None - } - } - } - - pub struct DummyTransaction; - - impl MaybeLockFundsTransaction for DummyTransaction { - type Transaction = RawTransaction; - type Id = u64; - type Recipient = AccountId; - type Amount = u64; - - fn parse(tx: &Self::Transaction) -> bp_currency_exchange::Result { - match tx.id { - INVALID_TRANSACTION_ID => Err(ExchangeError::InvalidTransaction), - _ => Ok(tx.clone()), - } - } - } - - pub struct DummyRecipientsMap; - - impl RecipientsMap for DummyRecipientsMap { - type PeerRecipient = AccountId; - type Recipient = AccountId; - - fn map( - peer_recipient: Self::PeerRecipient, - ) -> bp_currency_exchange::Result { - match peer_recipient { - UNKNOWN_RECIPIENT_ID => Err(ExchangeError::FailedToMapRecipients), - _ => Ok(peer_recipient * 10), - } - } - } - - pub struct DummyCurrencyConverter; - - impl CurrencyConverter for DummyCurrencyConverter { - type SourceAmount = u64; - type TargetAmount = u64; - - fn convert(amount: Self::SourceAmount) -> bp_currency_exchange::Result { - match amount { - INVALID_AMOUNT => Err(ExchangeError::FailedToConvertCurrency), - _ => Ok(amount * 10), - } - } - } - - pub struct DummyDepositInto; - - impl DepositInto for DummyDepositInto { - type Recipient = AccountId; - type Amount = u64; - - fn deposit_into( - _recipient: Self::Recipient, - amount: Self::Amount, - ) -> bp_currency_exchange::Result<()> { - match amount { - amount if amount < MAX_DEPOSIT_AMOUNT * 10 => Ok(()), - amount if amount == MAX_DEPOSIT_AMOUNT * 10 => - Err(ExchangeError::DepositPartiallyFailed), - _ => Err(ExchangeError::DepositFailed), - } - } - } - - type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; - type Block = frame_system::mocking::MockBlock; - use crate as pallet_bridge_currency_exchange; - - construct_runtime! { - pub enum TestRuntime where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Exchange: pallet_bridge_currency_exchange::{Pallet}, - } - } - - parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const MaximumBlockWeight: Weight = 1024; - pub const MaximumBlockLength: u32 = 2 * 1024; - pub const AvailableBlockRatio: Perbill = Perbill::one(); - } - - impl frame_system::Config for TestRuntime { - type Origin = Origin; - type Index = u64; - type Call = Call; - type BlockNumber = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Header = Header; - type Event = (); - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = (); - type OnNewAccount = (); - type OnKilledAccount = (); - type BaseCallFilter = frame_support::traits::Everything; - type SystemWeightInfo = (); - type BlockWeights = (); - type BlockLength = (); - type DbWeight = (); - type SS58Prefix = (); - type OnSetCode = (); - } - - impl Config for TestRuntime { - type OnTransactionSubmitted = DummyTransactionSubmissionHandler; - type PeerBlockchain = DummyBlockchain; - type PeerMaybeLockFundsTransaction = DummyTransaction; - type RecipientsMap = DummyRecipientsMap; - type Amount = u64; - type CurrencyConverter = DummyCurrencyConverter; - type DepositInto = DummyDepositInto; - } - - fn new_test_ext() -> sp_io::TestExternalities { - let t = frame_system::GenesisConfig::default().build_storage::().unwrap(); - sp_io::TestExternalities::new(t) - } - - fn transaction(id: u64) -> RawTransaction { - RawTransaction { id, recipient: 1, amount: 2 } - } - - #[test] - fn unfinalized_transaction_rejected() { - new_test_ext().execute_with(|| { - assert_noop!( - Exchange::import_peer_transaction( - Origin::signed(SUBMITTER), - (false, transaction(0)) - ), - Error::::UnfinalizedTransaction, - ); - }); - } - - #[test] - fn invalid_transaction_rejected() { - new_test_ext().execute_with(|| { - assert_noop!( - Exchange::import_peer_transaction( - Origin::signed(SUBMITTER), - (true, transaction(INVALID_TRANSACTION_ID)), - ), - Error::::InvalidTransaction, - ); - }); - } - - #[test] - fn claimed_transaction_rejected() { - new_test_ext().execute_with(|| { - ::Transfers::insert(ALREADY_CLAIMED_TRANSACTION_ID, ()); - assert_noop!( - Exchange::import_peer_transaction( - Origin::signed(SUBMITTER), - (true, transaction(ALREADY_CLAIMED_TRANSACTION_ID)), - ), - Error::::AlreadyClaimed, - ); - }); - } - - #[test] - fn transaction_with_unknown_recipient_rejected() { - new_test_ext().execute_with(|| { - let mut transaction = transaction(0); - transaction.recipient = UNKNOWN_RECIPIENT_ID; - assert_noop!( - Exchange::import_peer_transaction(Origin::signed(SUBMITTER), (true, transaction)), - Error::