diff --git a/Cargo.lock b/Cargo.lock index d7aa3a9012..1314611d85 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -909,8 +909,8 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "16.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "hash-db", "log", @@ -919,25 +919,35 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.65.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.4", "cexpr", "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "prettyplease", + "itertools 0.13.0", "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", "shlex", "syn 2.0.106", ] +[[package]] +name = "bip39" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1526,7 +1536,6 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading", ] [[package]] @@ -1635,7 +1644,7 @@ checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ "serde", "termcolor", - "unicode-width 0.2.1", + "unicode-width 0.1.14", ] [[package]] @@ -2321,6 +2330,15 @@ dependencies = [ "sqlx", ] +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "uuid", +] + [[package]] name = "der" version = "0.7.10" @@ -3101,9 +3119,8 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "fork-tree" -version = "13.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6736bef9fd175fafbb97495565456651c43ccac2ae550faee709e11534e3621" +version = "12.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", ] @@ -3111,7 +3128,8 @@ dependencies = [ [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6736bef9fd175fafbb97495565456651c43ccac2ae550faee709e11534e3621" dependencies = [ "parity-scale-codec", ] @@ -3154,8 +3172,8 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support", "frame-support-procedural", @@ -3178,8 +3196,8 @@ dependencies = [ [[package]] name = "frame-executive" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "aquamarine", "frame-support", @@ -3208,8 +3226,8 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" -version = "0.11.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.1.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "const-hex", @@ -3224,8 +3242,8 @@ dependencies = [ [[package]] name = "frame-support" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "aquamarine", "array-bytes 6.2.3", @@ -3265,8 +3283,8 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "35.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "23.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "Inflector", "cfg-expr", @@ -3285,8 +3303,8 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" -version = "13.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "10.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.4.0", @@ -3297,8 +3315,8 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "11.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "proc-macro2", "quote", @@ -3307,8 +3325,8 @@ dependencies = [ [[package]] name = "frame-system" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "cfg-if", "docify", @@ -3326,8 +3344,8 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-benchmarking", "frame-support", @@ -3340,8 +3358,8 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "parity-scale-codec", @@ -3350,8 +3368,8 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support", "parity-scale-codec", @@ -3546,6 +3564,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "fxprof-processed-profile" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" +dependencies = [ + "bitflags 2.9.4", + "debugid", + "fxhash", + "serde", + "serde_json", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -4594,6 +4625,26 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "ittapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b996fe614c41395cdaedf3cf408a9534851090959d90d54a535f675550b64b1" +dependencies = [ + "anyhow", + "ittapi-sys", + "log", +] + +[[package]] +name = "ittapi-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5385394064fa2c886205dba02598013ce83d3e92d33dbdc0c52fe0e7bf4fc" +dependencies = [ + "cc", +] + [[package]] name = "jam-codec" version = "0.1.1" @@ -4893,16 +4944,15 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.19.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" +checksum = "3b089b6062662d720a836f055931434439fcd3a90f0059db0b831a99da6db460" dependencies = [ "kvdb", "num_cpus", "parking_lot 0.12.4", "regex", "rocksdb", - "smallvec", ] [[package]] @@ -4914,12 +4964,6 @@ dependencies = [ "spin 0.9.8", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "leb128fmt" version = "0.1.0" @@ -4932,16 +4976,6 @@ version = "0.2.176" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if", - "windows-link 0.2.0", -] - [[package]] name = "libm" version = "0.2.15" @@ -5385,14 +5419,13 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "0.11.0+8.1.1" +version = "0.17.3+10.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +checksum = "cef2a00ee60fe526157c9023edab23943fae1ce2ab6f4abb2a807c1746835de9" dependencies = [ "bindgen", "bzip2-sys", "cc", - "glob", "libc", "libz-sys", "tikv-jemalloc-sys", @@ -6657,8 +6690,8 @@ dependencies = [ [[package]] name = "pallet-aura" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "27.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support", "frame-system", @@ -6673,8 +6706,8 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support", "frame-system", @@ -6686,8 +6719,8 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-benchmarking", "frame-support", @@ -6709,8 +6742,8 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "frame-benchmarking", @@ -6723,6 +6756,50 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "pallet-beefy" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-beefy", + "sp-runtime", + "sp-session", + "sp-staking", +] + +[[package]] +name = "pallet-beefy-mmr" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "array-bytes 6.2.3", + "binary-merkle-tree", + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-beefy", + "pallet-mmr", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-consensus-beefy", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", +] + [[package]] name = "pallet-block-participation" version = "1.8.0" @@ -6850,8 +6927,8 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-benchmarking", "frame-support", @@ -6870,10 +6947,22 @@ dependencies = [ "sp-staking", ] +[[package]] +name = "pallet-mmr" +version = "27.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "log", + "parity-scale-codec", + "polkadot-sdk-frame", + "scale-info", + "sp-mmr-primitives", +] + [[package]] name = "pallet-parameters" -version = "0.14.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.1.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "frame-support", @@ -6904,8 +6993,8 @@ dependencies = [ [[package]] name = "pallet-preimage" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support", "frame-system", @@ -6918,8 +7007,8 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "29.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "frame-support", @@ -6934,8 +7023,8 @@ dependencies = [ [[package]] name = "pallet-session" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-support", "frame-system", @@ -7028,8 +7117,8 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "frame-benchmarking", @@ -7043,8 +7132,8 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "27.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "frame-benchmarking", @@ -7061,12 +7150,13 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "serde", @@ -7076,8 +7166,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" -version = "46.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "30.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -7092,8 +7182,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -7104,8 +7194,8 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-benchmarking", "frame-support", @@ -7117,19 +7207,6 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "parity-bip39" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" -dependencies = [ - "bitcoin_hashes 0.13.0", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", -] - [[package]] name = "parity-db" version = "0.4.13" @@ -7452,6 +7529,8 @@ dependencies = [ "sc-client-db", "sc-consensus", "sc-consensus-aura", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-executor", @@ -7476,6 +7555,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-aura", + "sp-consensus-beefy", "sp-consensus-grandpa", "sp-core", "sp-governed-map", @@ -7517,12 +7597,15 @@ dependencies = [ "pallet-address-associations", "pallet-aura", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", "pallet-block-participation", "pallet-block-producer-fees", "pallet-block-producer-metadata", "pallet-block-production-log", "pallet-governed-map", "pallet-grandpa", + "pallet-mmr", "pallet-parameters", "pallet-partner-chains-bridge", "pallet-preimage", @@ -7548,6 +7631,7 @@ dependencies = [ "sp-block-producer-fees", "sp-block-producer-metadata", "sp-consensus-aura", + "sp-consensus-beefy", "sp-consensus-grandpa", "sp-consensus-slots", "sp-core", @@ -7734,12 +7818,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - [[package]] name = "peg" version = "0.8.5" @@ -7879,6 +7957,51 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "polkadot-ckb-merkle-mountain-range" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221c71b432b38e494a0fdedb5f720e4cb974edf03a0af09e5b2238dbac7e6947" +dependencies = [ + "cfg-if", + "itertools 0.10.5", +] + +[[package]] +name = "polkadot-sdk-frame" +version = "0.1.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-arithmetic", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-transaction-pool", + "sp-version", +] + [[package]] name = "polkavm" version = "0.26.0" @@ -8624,7 +8747,7 @@ dependencies = [ [[package]] name = "raw-scripts" version = "8.2.0" -source = "git+https://github.com/input-output-hk/partner-chains-smart-contracts.git?tag=v8.2.0#8d57492a9d9a8e3ccda4165bf2ec61f98aa9430c" +source = "git+https://github.com/input-output-hk/partner-chains-smart-contracts.git?rev=v8.2.0#8d57492a9d9a8e3ccda4165bf2ec61f98aa9430c" dependencies = [ "hex-literal 0.4.1", ] @@ -8837,9 +8960,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.21.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +checksum = "ddb7af00d2b17dbd07d82c0063e25411959748ff03e8d4f96134c2ff41fce34f" dependencies = [ "libc", "librocksdb-sys", @@ -9114,8 +9237,8 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "34.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "23.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "log", "sp-core", @@ -9125,8 +9248,8 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "futures", "log", @@ -9147,8 +9270,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.47.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "sp-api", @@ -9162,8 +9285,8 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "46.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "docify", @@ -9188,8 +9311,8 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "11.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -9199,10 +9322,11 @@ dependencies = [ [[package]] name = "sc-cli" -version = "0.55.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.36.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", + "bip39", "chrono", "clap", "fdlimit", @@ -9211,7 +9335,6 @@ dependencies = [ "libp2p-identity", "log", "names", - "parity-bip39", "parity-scale-codec", "rand 0.8.5", "regex", @@ -9241,8 +9364,8 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "fnv", "futures", @@ -9267,8 +9390,8 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.49.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.35.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "hash-db", "kvdb", @@ -9295,8 +9418,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "futures", @@ -9318,11 +9441,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.53.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", - "fork-tree 13.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509)", + "fork-tree 12.0.0", "futures", "log", "parity-scale-codec", @@ -9347,17 +9470,71 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "sc-consensus-beefy" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "array-bytes 6.2.3", + "async-channel", + "async-trait", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.4", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-gossip", + "sc-network-sync", + "sc-network-types", + "sc-utils", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-beefy", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror 1.0.69", + "tokio", + "wasm-timer", +] + +[[package]] +name = "sc-consensus-beefy-rpc" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.4", + "sc-consensus-beefy", + "sc-rpc", + "serde", + "sp-application-crypto", + "sp-consensus-beefy", + "sp-core", + "sp-runtime", + "thiserror 1.0.69", +] + [[package]] name = "sc-consensus-grandpa" -version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.19.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "ahash", "array-bytes 6.2.3", "async-trait", "dyn-clone", "finality-grandpa", - "fork-tree 13.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509)", + "fork-tree 12.0.0", "futures", "futures-timer", "log", @@ -9393,8 +9570,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.19.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "finality-grandpa", "futures", @@ -9413,8 +9590,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "futures", @@ -9436,8 +9613,8 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.32.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "parking_lot 0.12.4", @@ -9459,8 +9636,8 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.29.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "polkavm", "sc-allocator", @@ -9472,8 +9649,8 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" -version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.29.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "log", "polkavm", @@ -9483,8 +9660,8 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.41.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.29.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "anyhow", "log", @@ -9499,8 +9676,8 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "console", "futures", @@ -9515,8 +9692,8 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "38.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "25.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.4", @@ -9529,8 +9706,8 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.23.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.4.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "arrayvec 0.7.6", @@ -9557,8 +9734,8 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.53.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "async-channel", @@ -9607,8 +9784,8 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.51.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -9617,8 +9794,8 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.53.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "ahash", "futures", @@ -9636,8 +9813,8 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "async-channel", @@ -9657,13 +9834,13 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "async-channel", "async-trait", - "fork-tree 13.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509)", + "fork-tree 12.0.0", "futures", "log", "mockall", @@ -9693,7 +9870,7 @@ dependencies = [ [[package]] name = "sc-network-test" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-channel", "async-trait", @@ -9725,8 +9902,8 @@ dependencies = [ [[package]] name = "sc-network-transactions" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "futures", @@ -9744,8 +9921,8 @@ dependencies = [ [[package]] name = "sc-network-types" -version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.10.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "bs58", "bytes", @@ -9768,7 +9945,7 @@ name = "sc-partner-chains-consensus-aura" version = "1.8.0" dependencies = [ "async-trait", - "fork-tree 13.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fork-tree 13.0.1", "futures", "log", "parity-scale-codec", @@ -9805,8 +9982,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.17.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9814,8 +9991,8 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "48.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "29.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "futures", "jsonrpsee", @@ -9846,8 +10023,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.52.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.33.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9866,8 +10043,8 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "11.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -9890,8 +10067,8 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.53.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "futures", @@ -9923,8 +10100,8 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.54.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.35.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "directories", @@ -9987,8 +10164,8 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.40.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.30.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "log", "parity-scale-codec", @@ -9998,8 +10175,8 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "45.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "27.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "derive_more 0.99.20", "futures", @@ -10018,8 +10195,8 @@ dependencies = [ [[package]] name = "sc-telemetry" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "15.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "chrono", "futures", @@ -10037,8 +10214,8 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "chrono", "console", @@ -10065,8 +10242,8 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "11.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "11.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -10076,8 +10253,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "futures", @@ -10107,8 +10284,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "futures", @@ -10124,8 +10301,8 @@ dependencies = [ [[package]] name = "sc-utils" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "14.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-channel", "futures", @@ -10892,8 +11069,8 @@ dependencies = [ [[package]] name = "sp-api" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "hash-db", @@ -10914,8 +11091,8 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "15.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "Inflector", "blake2 0.10.6", @@ -10928,8 +11105,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "30.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "scale-info", @@ -10940,8 +11117,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "23.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "integer-sqrt", @@ -10954,8 +11131,8 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "sp-api", "sp-inherents", @@ -11001,8 +11178,8 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "futures", "parity-scale-codec", @@ -11020,8 +11197,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.32.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "futures", @@ -11034,8 +11211,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.32.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "parity-scale-codec", @@ -11050,8 +11227,8 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.32.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "parity-scale-codec", @@ -11066,10 +11243,30 @@ dependencies = [ "sp-timestamp", ] +[[package]] +name = "sp-consensus-beefy" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-crypto-hashing", + "sp-io", + "sp-keystore", + "sp-mmr-primitives", + "sp-runtime", + "sp-weights", + "strum 0.26.3", +] + [[package]] name = "sp-consensus-grandpa" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "finality-grandpa", "log", @@ -11085,8 +11282,8 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.45.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.32.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "scale-info", @@ -11096,11 +11293,12 @@ dependencies = [ [[package]] name = "sp-core" -version = "38.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "ark-vrf", "array-bytes 6.2.3", + "bip39", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", @@ -11116,7 +11314,6 @@ dependencies = [ "libsecp256k1", "log", "merlin", - "parity-bip39", "parity-scale-codec", "parking_lot 0.12.4", "paste", @@ -11144,7 +11341,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "blake2b_simd", "byteorder", @@ -11157,7 +11354,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "quote", "sp-crypto-hashing", @@ -11167,7 +11364,7 @@ dependencies = [ [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "kvdb", "parking_lot 0.12.4", @@ -11176,7 +11373,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "proc-macro2", "quote", @@ -11185,8 +11382,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.25.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "environmental", "parity-scale-codec", @@ -11195,8 +11392,8 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.20.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.8.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "scale-info", @@ -11226,8 +11423,8 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -11239,8 +11436,8 @@ dependencies = [ [[package]] name = "sp-io" -version = "43.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "30.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "bytes", "docify", @@ -11265,8 +11462,8 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "31.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "sp-core", "sp-runtime", @@ -11275,8 +11472,8 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.44.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.34.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "parking_lot 0.12.4", @@ -11286,8 +11483,8 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" -version = "11.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "11.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -11295,8 +11492,8 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.12.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.6.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11305,8 +11502,8 @@ dependencies = [ [[package]] name = "sp-mixnet" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.4.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "scale-info", @@ -11314,10 +11511,27 @@ dependencies = [ "sp-application-crypto", ] +[[package]] +name = "sp-mmr-primitives" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" +dependencies = [ + "log", + "parity-scale-codec", + "polkadot-ckb-merkle-mountain-range", + "scale-info", + "serde", + "sp-api", + "sp-core", + "sp-debug-derive", + "sp-runtime", + "thiserror 1.0.69", +] + [[package]] name = "sp-offchain" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "sp-api", "sp-core", @@ -11326,8 +11540,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "13.0.2" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "backtrace", "regex", @@ -11365,8 +11579,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "36.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -11375,8 +11589,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "44.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "31.0.1" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "binary-merkle-tree", "docify", @@ -11404,8 +11618,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "24.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11422,8 +11636,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "17.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "Inflector", "expander", @@ -11435,8 +11649,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "27.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "scale-info", @@ -11508,8 +11722,8 @@ dependencies = [ [[package]] name = "sp-staking" -version = "41.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -11521,8 +11735,8 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.48.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.35.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "hash-db", "log", @@ -11541,8 +11755,8 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "10.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -11566,12 +11780,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" [[package]] name = "sp-storage" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "19.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11582,8 +11796,8 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "parity-scale-codec", @@ -11594,8 +11808,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "16.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "regex", @@ -11606,8 +11820,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "sp-api", "sp-runtime", @@ -11615,8 +11829,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "39.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "26.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "async-trait", "parity-scale-codec", @@ -11629,8 +11843,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "41.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "29.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "ahash", "foldhash 0.1.5", @@ -11654,8 +11868,8 @@ dependencies = [ [[package]] name = "sp-version" -version = "42.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "29.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11671,8 +11885,8 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "13.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "parity-scale-codec", "proc-macro-warning", @@ -11683,8 +11897,8 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "20.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11695,8 +11909,8 @@ dependencies = [ [[package]] name = "sp-weights" -version = "33.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "27.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -12077,8 +12291,8 @@ dependencies = [ [[package]] name = "substrate-bip39" -version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.4.7" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "hmac", "pbkdf2", @@ -12090,12 +12304,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" [[package]] name = "substrate-frame-rpc-system" -version = "47.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "28.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -12114,8 +12328,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.17.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "0.17.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "http-body-util", "hyper 1.7.0", @@ -12129,7 +12343,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -12154,7 +12368,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "frame-executive", @@ -12200,7 +12414,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "futures", "sc-block-builder", @@ -12217,8 +12431,8 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2509#5ab401310d2fbd808b3ffbcfc8735ad8f1c8fe10" +version = "17.0.0" +source = "git+https://github.com/input-output-hk/polkadot-sdk.git?rev=01884a99a9507fa1f6e893e602c85e172825cea5#01884a99a9507fa1f6e893e602c85e172825cea5" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -12509,9 +12723,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.5.4+5.3.0-patched" +version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" +checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b" dependencies = [ "cc", "libc", @@ -13646,9 +13860,11 @@ dependencies = [ "bumpalo", "cc", "cfg-if", + "fxprof-processed-profile", "gimli", "hashbrown 0.15.5", "indexmap 2.11.4", + "ittapi", "libc", "log", "mach2", @@ -13661,6 +13877,7 @@ dependencies = [ "rustix", "serde", "serde_derive", + "serde_json", "smallvec", "target-lexicon", "wasmparser", @@ -13669,6 +13886,7 @@ dependencies = [ "wasmtime-internal-cache", "wasmtime-internal-cranelift", "wasmtime-internal-fiber", + "wasmtime-internal-jit-debug", "wasmtime-internal-jit-icache-coherence", "wasmtime-internal-math", "wasmtime-internal-slab", @@ -13775,6 +13993,18 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "wasmtime-internal-jit-debug" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61d8693995ab3df48e88777b6ee3b2f441f2c4f895ab938996cdac3db26f256c" +dependencies = [ + "cc", + "object", + "rustix", + "wasmtime-internal-versioned-export-macros", +] + [[package]] name = "wasmtime-internal-jit-icache-coherence" version = "35.0.0" diff --git a/Cargo.toml b/Cargo.toml index 70fd80b784..a8e8a05851 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -189,80 +189,86 @@ blockfrost-openapi = { version = "0.1.75", default-features = false } chrono = { version = "0.4.31", default-features = false } # substrate dependencies -frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -frame-executive = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -frame-support = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -frame-system = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-balances = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-sudo = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-transaction-payment-rpc = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-basic-authorship = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-block-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-consensus-slots = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-cli = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-client-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-client-db = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-consensus = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-consensus-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-consensus-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-consensus-grandpa-rpc = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-executor = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-keystore = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-network = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-network-test = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-rpc = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-rpc-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-service = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-telemetry = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-transaction-pool = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-transaction-pool-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sc-offchain = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-arithmetic = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-application-crypto = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-block-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-blockchain = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-consensus = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-consensus-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-consensus-slots = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-core = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-crypto-hashing = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-genesis-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-inherents = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-io = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-keyring = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-keystore = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-offchain = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-tracing = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-staking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-std = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-timestamp = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-version = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-storage = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -sp-weights = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -substrate-build-script-utils = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -substrate-frame-rpc-system = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -substrate-prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -substrate-test-runtime-client = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -substrate-wasm-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-scheduler = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-preimage = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } -pallet-parameters = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2509" } +frame-benchmarking = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +frame-executive = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +frame-support = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +frame-system = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +frame-system-benchmarking = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +frame-try-runtime = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-aura = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-balances = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-grandpa = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-session = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-sudo = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-timestamp = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-transaction-payment = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-transaction-payment-rpc = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-basic-authorship = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-block-builder = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus-slots = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-cli = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-client-api = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-client-db = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus-aura = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus-grandpa = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus-grandpa-rpc = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-executor = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-keystore = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-network = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-network-test = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-rpc = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-rpc-api = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-service = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-telemetry = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-transaction-pool = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-transaction-pool-api = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-offchain = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-api = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-arithmetic = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-application-crypto = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-block-builder = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-blockchain = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-consensus = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-consensus-aura = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-consensus-grandpa = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-consensus-slots = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-core = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-crypto-hashing = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-genesis-builder = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-inherents = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-io = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-keyring = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-keystore = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-offchain = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-runtime = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-session = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-tracing = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-staking = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-std = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-timestamp = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-transaction-pool = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-version = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-storage = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-weights = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +substrate-build-script-utils = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +substrate-frame-rpc-system = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +substrate-prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +substrate-test-runtime-client = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +substrate-wasm-builder = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-scheduler = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-preimage = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-parameters = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sp-consensus-beefy = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus-beefy = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +sc-consensus-beefy-rpc = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-beefy = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-beefy-mmr = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } +pallet-mmr = { default-features = false, git = "https://github.com/input-output-hk/polkadot-sdk.git", rev = "01884a99a9507fa1f6e893e602c85e172825cea5" } -raw-scripts = { git = "https://github.com/input-output-hk/partner-chains-smart-contracts.git", tag = "v8.2.0" } +raw-scripts = { git = "https://github.com/input-output-hk/partner-chains-smart-contracts.git", rev = "v8.2.0" } # local dependencies # utils diff --git a/demo/node/Cargo.toml b/demo/node/Cargo.toml index 6f9f51225c..e2ec28a73c 100644 --- a/demo/node/Cargo.toml +++ b/demo/node/Cargo.toml @@ -38,6 +38,9 @@ sp-consensus-aura = { workspace = true } sp-partner-chains-consensus-aura = { workspace = true } sp-consensus = { workspace = true } sc-consensus = { workspace = true } +sc-consensus-beefy = { workspace = true } +sc-consensus-beefy-rpc = { workspace = true } +sp-consensus-beefy = { workspace = true } sc-consensus-grandpa = { workspace = true } sc-consensus-grandpa-rpc = { workspace = true } sp-consensus-grandpa = { workspace = true } diff --git a/demo/node/src/chain_spec.rs b/demo/node/src/chain_spec.rs index 48ac5ce7e3..7b5818062b 100644 --- a/demo/node/src/chain_spec.rs +++ b/demo/node/src/chain_spec.rs @@ -43,6 +43,7 @@ pub fn pc_create_chain_spec(config: &CreateChainSpecConfig) -> serd system: partner_chains_demo_runtime::SystemConfig::default(), balances: partner_chains_demo_runtime::BalancesConfig::default(), aura: partner_chains_demo_runtime::AuraConfig::default(), + beefy: partner_chains_demo_runtime::BeefyConfig::default(), grandpa: partner_chains_demo_runtime::GrandpaConfig::default(), sudo: partner_chains_demo_runtime::SudoConfig::default(), transaction_payment: Default::default(), diff --git a/demo/node/src/rpc.rs b/demo/node/src/rpc.rs index c5923f1355..a77b46db25 100644 --- a/demo/node/src/rpc.rs +++ b/demo/node/src/rpc.rs @@ -17,6 +17,10 @@ use partner_chains_demo_runtime::{ opaque::{Block, SessionKeys}, }; use partner_chains_demo_runtime::{BlockNumber, BlockProducerMetadataType, CrossChainPublic, Hash}; +use sc_consensus_beefy::communication::notification::{ + BeefyBestBlockStream, BeefyVersionedFinalityProofStream, +}; +use sc_consensus_beefy_rpc::Beefy; use sc_consensus_grandpa::{ FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState, }; @@ -28,6 +32,7 @@ use sidechain_domain::mainchain_epoch::MainchainEpochConfig; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_consensus_beefy::AuthorityIdBound; use sp_session_validator_management_query::SessionValidatorManagementQuery; use sp_sidechain::GetEpochDurationApi; use std::sync::Arc; @@ -47,14 +52,26 @@ pub struct GrandpaDeps { pub finality_provider: Arc>, } +/// Dependencies for BEEFY +pub struct BeefyDeps { + /// Receives notifications about finality proof events from BEEFY. + pub beefy_finality_proof_stream: BeefyVersionedFinalityProofStream, + /// Receives notifications about best block events from BEEFY. + pub beefy_best_block_stream: BeefyBestBlockStream, + /// Executor to drive the subscription manager in the BEEFY RPC handler. + pub subscription_executor: sc_rpc::SubscriptionTaskExecutor, +} + /// Full client dependencies. -pub struct FullDeps { +pub struct FullDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. pub pool: Arc

, /// GRANDPA specific dependencies. pub grandpa: GrandpaDeps, + /// BEEFY specific dependencies. + pub beefy: BeefyDeps, /// Data sources. pub data_sources: DataSources, /// Source of system time @@ -62,8 +79,8 @@ pub struct FullDeps { } /// Instantiate all full RPC extensions. -pub fn create_full( - deps: FullDeps, +pub fn create_full( + deps: FullDeps, ) -> Result, Box> where C: ProvideRuntimeApi, @@ -93,10 +110,11 @@ where T: TimeSource + Send + Sync + 'static, { use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; + use sc_consensus_beefy_rpc::BeefyApiServer; use substrate_frame_rpc_system::{System, SystemApiServer}; let mut module = RpcModule::new(()); - let FullDeps { client, pool, grandpa, data_sources, time_source } = deps; + let FullDeps { client, pool, grandpa, beefy, data_sources, time_source } = deps; module.merge(System::new(client.clone(), pool.clone()).into_rpc())?; module.merge(TransactionPayment::new(client.clone()).into_rpc())?; @@ -137,6 +155,15 @@ where .into_rpc(), )?; + module.merge( + Beefy::::new( + beefy.beefy_finality_proof_stream, + beefy.beefy_best_block_stream, + beefy.subscription_executor, + )? + .into_rpc(), + )?; + // Extend this RPC with a custom API by using the following syntax. // `YourRpcStruct` should have a reference to a client, which is needed // to call into the runtime. diff --git a/demo/node/src/service.rs b/demo/node/src/service.rs index a9d5795c1e..8e1837cefd 100644 --- a/demo/node/src/service.rs +++ b/demo/node/src/service.rs @@ -2,21 +2,25 @@ use crate::data_sources::DataSources; use crate::inherent_data::{CreateInherentDataConfig, ProposalCIDP, VerifierCIDP}; -use crate::rpc::GrandpaDeps; +use crate::rpc::{BeefyDeps, GrandpaDeps}; use authority_selection_inherents::AuthoritySelectionDataSource; use partner_chains_data_source_metrics::{McFollowerMetrics, register_metrics_warn_errors}; use partner_chains_demo_runtime::{self, RuntimeApi, opaque::Block}; use sc_client_api::BlockBackend; use sc_consensus_aura::{ImportQueueParams, SlotProportion, StartAuraParams}; +use sc_consensus_beefy::{BeefyRPCLinks, BeefyVoterLinks}; use sc_consensus_grandpa::SharedVoterState; pub use sc_executor::WasmExecutor; use sc_partner_chains_consensus_aura::import_queue as partner_chains_aura_import_queue; +use sc_rpc::SubscriptionTaskExecutor; use sc_service::{Configuration, TaskManager, WarpSyncConfig, error::Error as ServiceError}; use sc_telemetry::{Telemetry, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sidechain_domain::mainchain_epoch::MainchainEpochConfig; use sidechain_mc_hash::McHashInherentDigest; use sp_consensus_aura::sr25519::AuthorityPair as AuraPair; +use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; + use sp_partner_chains_consensus_aura::block_proposal::PartnerChainsProposerFactory; use sp_runtime::traits::Block as BlockT; use std::{sync::Arc, time::Duration}; @@ -76,6 +80,8 @@ pub fn new_partial( Option, DataSources, Option, + BeefyVoterLinks, + BeefyRPCLinks, ), >, ServiceError, @@ -133,6 +139,15 @@ pub fn new_partial( select_chain.clone(), telemetry.as_ref().map(|x| x.handle()), )?; + let justification_import = grandpa_block_import.clone(); + + let (block_import, beefy_voter_links, beefy_rpc_links) = + sc_consensus_beefy::beefy_block_import_and_links( + grandpa_block_import.clone(), + backend.clone(), + client.clone(), + config.prometheus_registry().cloned(), + ); let sc_slot_config = sidechain_slots::runtime_api_client::slot_config(&*client) .map_err(sp_blockchain::Error::from)?; @@ -151,8 +166,8 @@ pub fn new_partial( _, McHashInherentDigest, >(ImportQueueParams { - block_import: grandpa_block_import.clone(), - justification_import: Some(Box::new(grandpa_block_import.clone())), + block_import: block_import.clone(), + justification_import: Some(Box::new(justification_import)), client: client.clone(), create_inherent_data_providers: VerifierCIDP::new( inherent_config, @@ -178,7 +193,15 @@ pub fn new_partial( keystore_container, select_chain, transaction_pool, - other: (grandpa_block_import, grandpa_link, telemetry, data_sources, mc_follower_metrics), + other: ( + grandpa_block_import, + grandpa_link, + telemetry, + data_sources, + mc_follower_metrics, + beefy_voter_links, + beefy_rpc_links, + ), }) } @@ -210,7 +233,16 @@ pub async fn new_full_base( grandpa_protocol_name.clone(), @@ -232,6 +267,29 @@ pub async fn new_full_base(&genesis_hash, config.chain_spec.fork_id(), client.clone(), prometheus_registry.clone()); + let beefy_notification_service = { + let (beefy_notification_config, beefy_notification_service) = + sc_consensus_beefy::communication::beefy_peers_set_config::<_, Network>( + beefy_gossip_proto_name.clone(), + metrics.clone(), + Arc::clone(&peer_store_handle), + ); + + net_config.add_notification_protocol(beefy_notification_config); + net_config.add_request_response_protocol(beefy_req_resp_cfg); + // For now we always initialize it + Some(beefy_notification_service) + }; + let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), grandpa_link.shared_authority_set().clone(), @@ -269,21 +327,27 @@ pub async fn new_full_base { + beefy_finality_proof_stream: beefy_rpc_links.from_voter_justif_stream.clone(), + beefy_best_block_stream: beefy_rpc_links.from_voter_best_beefy_stream.clone(), + subscription_executor, + }; let deps = crate::rpc::FullDeps { client: client.clone(), pool: pool.clone(), grandpa, + beefy, data_sources: data_sources.clone(), time_source: Arc::new(SystemTimeSource), }; @@ -298,12 +362,13 @@ pub async fn new_full_base, + }; + let payload_provider = sp_consensus_beefy::mmr::MmrRootProvider::new(client.clone()); + let beefy_params = sc_consensus_beefy::BeefyParams { + client: client.clone(), + backend: backend.clone(), + payload_provider, + runtime: client.clone(), + key_store: keystore_opt.clone(), + network_params, + min_block_delta: 8, + prometheus_registry: prometheus_registry.clone(), + links: beefy_voter_links, + on_demand_justifications_handler: beefy_on_demand_justifications_handler, + is_authority: role.is_authority(), + }; + + let gadget = + sc_consensus_beefy::start_beefy_gadget::<_, _, _, _, _, _, _, BeefyId>(beefy_params); + + // BEEFY is part of consensus, if it fails we'll bring the node down with it to make + // sure it is noticed. + task_manager + .spawn_essential_handle() + .spawn_blocking("beefy-gadget", None, gadget); + } + if enable_grandpa { // if the node isn't actively participating in consensus then it doesn't // need a keystore, regardless of which protocol we use below. diff --git a/demo/node/src/staging.rs b/demo/node/src/staging.rs index 13f808071f..03d174e214 100644 --- a/demo/node/src/staging.rs +++ b/demo/node/src/staging.rs @@ -1,28 +1,30 @@ use crate::chain_spec::get_account_id_from_seed; use crate::chain_spec::*; use partner_chains_demo_runtime::{ - AccountId, AuraConfig, BalancesConfig, BridgeConfig, GovernedMapConfig, GrandpaConfig, - RuntimeGenesisConfig, SessionCommitteeManagementConfig, SessionConfig, SidechainConfig, - SudoConfig, SystemConfig, TestHelperPalletConfig, + AccountId, AuraConfig, BalancesConfig, BeefyConfig, BridgeConfig, GovernedMapConfig, + GrandpaConfig, RuntimeGenesisConfig, SessionCommitteeManagementConfig, SessionConfig, + SidechainConfig, SudoConfig, SystemConfig, TestHelperPalletConfig, }; use sc_service::{ChainType, Properties}; use sidechain_domain::*; use sp_core::bytes::from_hex; -use sp_core::{ed25519, sr25519}; +use sp_core::{ecdsa, ed25519, sr25519}; use sp_session_validator_management::CommitteeMember; use std::str::FromStr; pub fn authority_keys( aura_pub_key: &str, grandpa_pub_key: &str, + beefy_pub_key: &str, sidechain_pub_key: &str, ) -> AuthorityKeys { let aura_pk = sr25519::Public::from_raw(from_hex(aura_pub_key).unwrap().try_into().unwrap()); let granda_pk = ed25519::Public::from_raw(from_hex(grandpa_pub_key).unwrap().try_into().unwrap()); let sidechain_pk = sidechain_domain::SidechainPublicKey(from_hex(sidechain_pub_key).unwrap()); + let beefy_pk = ecdsa::Public::from_raw(from_hex(beefy_pub_key).unwrap().try_into().unwrap()); - let session_keys = (aura_pk, granda_pk).into(); + let session_keys = (aura_pk, granda_pk, beefy_pk).into(); AuthorityKeys { session: session_keys, cross_chain: sidechain_pk.try_into().unwrap() } } @@ -31,30 +33,35 @@ pub fn staging_initial_authorities() -> Vec { // validator-1 authority_keys( "0xba94651de6279a38a416b97b9720c3df76224435e951ac73e9e302a4ee9fcf73", + "0x03b827f4da9711bab7292e5695576a841a4d20af9a07b1ba7a230168d2a78e9df4", "0xdde2501588713ddad5daf5a898c19d82cd591609c9184679868640c8cfe8287d", "0x03b827f4da9711bab7292e5695576a841a4d20af9a07b1ba7a230168d2a78e9df4", ), // validator-2 authority_keys( "0x36128fff2acc04f206ccaf4e9f8e9995998efced29075a58b7d76d3735c21208", + "0x02ef5bcd94d54a18ad199559782cd72ac3ccd850976aaaafbca8f9d2625afbf7c4", "0x8f9a9856a27cc114ce85b64f41144f0c907c4bd8b3102b083b52b6b61aff6c47", "0x02ef5bcd94d54a18ad199559782cd72ac3ccd850976aaaafbca8f9d2625afbf7c4", ), // validator-3 authority_keys( "0x9a32d3896a56e822321f7bc915befc8ce112c5d67e3c6497295bd3d7b020f94c", + "0x02f2762ab6e1a125dc03908a7b738f8023d13763f28a11d7633c6c8bc463478430", "0x4f3c0ecc6dc474f27ad7967f5cdbd50da047ffedbc91b65f5cd247515489c98f", "0x02f2762ab6e1a125dc03908a7b738f8023d13763f28a11d7633c6c8bc463478430", ), // validator-4 authority_keys( "0xc41992b8eb2f3a8a6c46211df584827f9eeb0175e2c75e1242392262b55b6874", + "0x025e19f82c5e2bac5e8869d49ff26359e442628bc5cfa38eeb5275f43d04015da8", "0x34b71fdad96431bf115350d8ad21eec07a2b154ff32dc31125f988e308bebea8", "0x025e19f82c5e2bac5e8869d49ff26359e442628bc5cfa38eeb5275f43d04015da8", ), // validator-5 authority_keys( "0x500d7ff6d903c85db5ee5624df9510c2a085cf30da260166bd370010d0bdc97a", + "0x03f38a062a4b372c045c1dddc4fe98a2c9cb1d6eec8bf02f973fd29b1096cd8155", "0xa04d74c1539550876d04e4d2de4e0531087c3b6810ce96ddc16d78ccf4ac4f11", "0x03f38a062a4b372c045c1dddc4fe98a2c9cb1d6eec8bf02f973fd29b1096cd8155", ), @@ -131,6 +138,7 @@ pub fn staging_genesis( dev_accounts: None, }, aura: AuraConfig { authorities: vec![] }, + beefy: BeefyConfig { authorities: vec![], genesis_block: Some(10) }, grandpa: GrandpaConfig { authorities: vec![], ..Default::default() }, sudo: SudoConfig { // Assign network admin rights. diff --git a/demo/node/src/template_chain_spec.rs b/demo/node/src/template_chain_spec.rs index 6394929548..0ff60173cc 100644 --- a/demo/node/src/template_chain_spec.rs +++ b/demo/node/src/template_chain_spec.rs @@ -1,6 +1,6 @@ use crate::chain_spec::*; use partner_chains_demo_runtime::{ - AuraConfig, BalancesConfig, BridgeConfig, GovernedMapConfig, GrandpaConfig, + AuraConfig, BalancesConfig, BeefyConfig, BridgeConfig, GovernedMapConfig, GrandpaConfig, RuntimeGenesisConfig, SessionCommitteeManagementConfig, SessionConfig, SidechainConfig, SudoConfig, SystemConfig, TestHelperPalletConfig, }; @@ -20,6 +20,7 @@ pub fn chain_spec() -> Result { dev_accounts: None, }, aura: AuraConfig { authorities: vec![] }, + beefy: BeefyConfig { authorities: vec![], genesis_block: Some(10) }, grandpa: GrandpaConfig { authorities: vec![], ..Default::default() }, sudo: SudoConfig { // No sudo account by default, please update with your preferences. diff --git a/demo/node/src/testnet.rs b/demo/node/src/testnet.rs index a2d6dc27a7..84aa9cc634 100644 --- a/demo/node/src/testnet.rs +++ b/demo/node/src/testnet.rs @@ -1,28 +1,30 @@ use crate::chain_spec::*; use partner_chains_demo_runtime::{ - AccountId, AuraConfig, BalancesConfig, BridgeConfig, GovernedMapConfig, GrandpaConfig, - RuntimeGenesisConfig, SessionCommitteeManagementConfig, SessionConfig, SidechainConfig, - SudoConfig, SystemConfig, TestHelperPalletConfig, + AccountId, AuraConfig, BalancesConfig, BeefyConfig, BridgeConfig, GovernedMapConfig, + GrandpaConfig, RuntimeGenesisConfig, SessionCommitteeManagementConfig, SessionConfig, + SidechainConfig, SudoConfig, SystemConfig, TestHelperPalletConfig, }; use sc_service::{ChainType, Properties}; use sidechain_domain::*; use sidechain_slots::SlotsPerEpoch; use sp_core::bytes::from_hex; -use sp_core::{ed25519, sr25519}; +use sp_core::{ecdsa, ed25519, sr25519}; use sp_session_validator_management::CommitteeMember; use std::str::FromStr; pub fn authority_keys( aura_pub_key: &str, grandpa_pub_key: &str, + beefy_pub_key: &str, sidechain_pub_key: &str, ) -> AuthorityKeys { let aura_pk = sr25519::Public::from_raw(from_hex(aura_pub_key).unwrap().try_into().unwrap()); let granda_pk = ed25519::Public::from_raw(from_hex(grandpa_pub_key).unwrap().try_into().unwrap()); + let beefy_pk = ecdsa::Public::from_raw(from_hex(beefy_pub_key).unwrap().try_into().unwrap()); let sidechain_pk = sidechain_domain::SidechainPublicKey(from_hex(sidechain_pub_key).unwrap()); - let session_keys = (aura_pk, granda_pk).into(); + let session_keys = (aura_pk, granda_pk, beefy_pk).into(); AuthorityKeys { session: session_keys, cross_chain: sidechain_pk.try_into().unwrap() } } @@ -39,6 +41,7 @@ pub fn development_config() -> Result { "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", "0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee", "0x020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1", + "0x020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1", ), ], // Sudo account @@ -76,42 +79,49 @@ pub fn testnet_initial_authorities() -> Vec { //alice public keys authority_keys( "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "0x020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1", "0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee", "0x020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1", ), //bob public keys authority_keys( "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0x0390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f27", "0xd17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69", "0x0390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f27", ), //charlie public keys authority_keys( "0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22", + "0x0389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb", "0x439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f", "0x0389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb", ), //dave public keys authority_keys( "0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20", + "0x03bc9d0ca094bd5b8b3225d7651eac5d18c1c04bf8ae8f8b263eebca4e1410ed0c", "0x5e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d9", "0x03bc9d0ca094bd5b8b3225d7651eac5d18c1c04bf8ae8f8b263eebca4e1410ed0c", ), //eve public keys authority_keys( "0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e", + "0x031d10105e323c4afce225208f71a6441ee327a65b9e646e772500c74d31f669aa", "0x1dfe3e22cc0d45c70779c1095f7489a8ef3cf52d62fbd8c2fa38c9f1723502b5", "0x031d10105e323c4afce225208f71a6441ee327a65b9e646e772500c74d31f669aa", ), //ferdie public keys authority_keys( "0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c", + "0x0291f1217d5a04cb83312ee3d88a6e6b33284e053e6ccfc3a90339a0299d12967c", "0x568cb4a574c6d178feb39c27dfc8b3f789e5f5423e19c71633c748b9acf086b5", "0x0291f1217d5a04cb83312ee3d88a6e6b33284e053e6ccfc3a90339a0299d12967c", ), //greg public keys authority_keys( "0x2c4ed1038f6e4131c21b6b89885ed232c5b81bae09009376e9079cc8aa518a1c", + "0x02dacce90fca29ca80404d9b4e8ff3d9dabd03def6a82e412acb2ad04dd734dbfc", "0xfa41bacb202b0529288b05af1b324f85fe561091c2d29d9df1df37c3aa687c23", "0x02dacce90fca29ca80404d9b4e8ff3d9dabd03def6a82e412acb2ad04dd734dbfc", ), @@ -189,6 +199,7 @@ pub fn testnet_genesis( dev_accounts: None, }, aura: AuraConfig { authorities: vec![] }, + beefy: BeefyConfig { authorities: vec![], genesis_block: Some(10) }, grandpa: GrandpaConfig { authorities: vec![], ..Default::default() }, sudo: SudoConfig { // Assign network admin rights. diff --git a/demo/node/src/tests/chain_spec.rs b/demo/node/src/tests/chain_spec.rs index d8d4f8d24f..abf13f9a51 100644 --- a/demo/node/src/tests/chain_spec.rs +++ b/demo/node/src/tests/chain_spec.rs @@ -17,6 +17,7 @@ fn pc_create_chain_spec_test() { keys: SessionKeys { aura: sr25519::Public::from([12u8; 32]).into(), grandpa: ed25519::Public::from([13u8; 32]).into(), + beefy: ecdsa::Public::from([14; 33]).into(), }, }], committee_candidate_address: MainchainAddress::from_str("addr_cca").unwrap(), diff --git a/demo/node/src/tests/runtime_api_mock.rs b/demo/node/src/tests/runtime_api_mock.rs index 6e7539b013..8dd2d1cca4 100644 --- a/demo/node/src/tests/runtime_api_mock.rs +++ b/demo/node/src/tests/runtime_api_mock.rs @@ -11,7 +11,7 @@ use sp_core::ecdsa; use sp_governed_map::MainChainScriptsV1; use sp_inherents::InherentIdentifier; use sp_runtime::Digest; -use sp_runtime::key_types::{AURA, GRANDPA}; +use sp_runtime::key_types::{AURA, BEEFY, GRANDPA}; use sp_runtime::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero}; use sp_session_validator_management::CommitteeMember; use sp_sidechain::GetGenesisUtxo; @@ -87,7 +87,8 @@ sp_api::mock_impl_runtime_apis! { let cross_chain_public: CrossChainPublic = CrossChainPublic::from(ecdsa::Public::from(cross_chain_pub_slice)); let aura_pub_key = AuraPublicKey(registration.keys.find(AURA).unwrap()).try_into_sr25519().unwrap(); let grandpa_pub_key = GrandpaPublicKey(registration.keys.find(GRANDPA).unwrap()).try_into_ed25519().unwrap(); - let session_keys = (aura_pub_key, grandpa_pub_key).into(); + let beefy_pub_key = ecdsa::Public::from_raw(registration.keys.find(BEEFY).unwrap().try_into().unwrap()); + let session_keys = (aura_pub_key, grandpa_pub_key, beefy_pub_key).into(); CommitteeMember::permissioned(cross_chain_public, session_keys) }).collect(); Some(result) diff --git a/demo/runtime/Cargo.toml b/demo/runtime/Cargo.toml index b519b0fe6a..f1eb6f2818 100644 --- a/demo/runtime/Cargo.toml +++ b/demo/runtime/Cargo.toml @@ -25,8 +25,11 @@ serde_json = { workspace = true, default-features = false, features = [ "alloc", ] } +pallet-beefy = { workspace = true } pallet-aura = { workspace = true } pallet-balances = { workspace = true } +pallet-beefy-mmr = { workspace = true } +pallet-mmr = { workspace = true } frame-support = { workspace = true } pallet-grandpa = { workspace = true } pallet-session = { workspace = true } @@ -40,6 +43,7 @@ frame-executive = { workspace = true } sp-api = { workspace = true } sp-block-builder = { workspace = true } sp-consensus-aura = { workspace = true } +sp-consensus-beefy = { workspace = true } sp-consensus-grandpa = { workspace = true } sp-consensus-slots = { workspace = true } sp-core = { workspace = true } @@ -124,6 +128,9 @@ std = [ "frame-try-runtime/std", "pallet-aura/std", "pallet-balances/std", + "pallet-beefy/std", + "pallet-beefy-mmr/std", + "pallet-mmr/std", "pallet-block-producer-fees/std", "pallet-block-production-log/std", "pallet-grandpa/std", @@ -139,6 +146,7 @@ std = [ "sp-block-builder/std", "sp-block-producer-fees/std", "sp-consensus-aura/std", + "sp-consensus-beefy/std", "sp-consensus-grandpa/std", "sp-consensus-slots/std", "sp-core/std", @@ -174,6 +182,8 @@ runtime-benchmarks = [ "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "pallet-balances/runtime-benchmarks", + "pallet-beefy-mmr/runtime-benchmarks", + "pallet-mmr/runtime-benchmarks", "pallet-grandpa/runtime-benchmarks", "pallet-sudo/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", @@ -194,6 +204,9 @@ try-runtime = [ "frame-support/try-runtime", "pallet-aura/try-runtime", "pallet-balances/try-runtime", + "pallet-beefy/try-runtime", + "pallet-beefy-mmr/try-runtime", + "pallet-mmr/try-runtime", "pallet-grandpa/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", diff --git a/demo/runtime/src/genesis_config_presets.rs b/demo/runtime/src/genesis_config_presets.rs index 182f43c427..2de5e67fc7 100644 --- a/demo/runtime/src/genesis_config_presets.rs +++ b/demo/runtime/src/genesis_config_presets.rs @@ -22,13 +22,15 @@ use crate::{ use alloc::{vec, vec::Vec}; use serde_json::Value; use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; use sp_consensus_grandpa::AuthorityId as GrandpaId; +use sp_core::crypto::get_public_from_string_or_panic; use sp_genesis_builder::{self, PresetId}; use sp_keyring::Sr25519Keyring; // Returns the genesis config presets populated with given parameters. fn testnet_genesis( - initial_authorities: Vec<(AuraId, GrandpaId)>, + initial_authorities: Vec<(AuraId, GrandpaId, BeefyId)>, endowed_accounts: Vec, root: AccountId, ) -> Value { @@ -44,6 +46,10 @@ fn testnet_genesis( aura: pallet_aura::GenesisConfig { authorities: initial_authorities.iter().map(|x| x.0.clone()).collect::>(), }, + beefy: pallet_beefy::GenesisConfig { + authorities: initial_authorities.iter().map(|x| x.2.clone()).collect::>(), + genesis_block: None, + }, grandpa: pallet_grandpa::GenesisConfig { authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect::>(), ..Default::default() @@ -75,6 +81,7 @@ pub fn development_config_genesis() -> Value { vec![( sp_keyring::Sr25519Keyring::Alice.public().into(), sp_keyring::Ed25519Keyring::Alice.public().into(), + get_public_from_string_or_panic::("Alice"), )], vec![ Sr25519Keyring::Alice.to_account_id(), @@ -93,10 +100,12 @@ pub fn local_config_genesis() -> Value { ( sp_keyring::Sr25519Keyring::Alice.public().into(), sp_keyring::Ed25519Keyring::Alice.public().into(), + get_public_from_string_or_panic::("Alice"), ), ( sp_keyring::Sr25519Keyring::Bob.public().into(), sp_keyring::Ed25519Keyring::Bob.public().into(), + get_public_from_string_or_panic::("Bob"), ), ], Sr25519Keyring::iter() diff --git a/demo/runtime/src/lib.rs b/demo/runtime/src/lib.rs index 624db8c681..9a39bc8e7f 100644 --- a/demo/runtime/src/lib.rs +++ b/demo/runtime/src/lib.rs @@ -45,11 +45,16 @@ use sidechain_slots::Slot; use sp_api::impl_runtime_apis; use sp_block_participation::AsCardanoSPO; use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_consensus_beefy::{ + ecdsa_crypto::{AuthorityId as BeefyId, Signature as BeefySignature}, + mmr::MmrLeafVersion, +}; use sp_core::{OpaqueMetadata, crypto::KeyTypeId}; use sp_governed_map::MainChainScriptsV1; use sp_inherents::InherentIdentifier; use sp_partner_chains_bridge::{BridgeDataCheckpoint, MainChainScripts as BridgeMainChainScripts}; use sp_runtime::traits::ConvertInto; +use sp_runtime::traits::Keccak256; use sp_runtime::{ ApplyExtrinsicResult, MultiSignature, Perbill, generic, impl_opaque_keys, traits::{ @@ -104,8 +109,9 @@ pub type Hash = sp_core::H256; pub mod opaque { use super::*; use authority_selection_inherents::MaybeFromCandidateKeys; + use pallet_session_validator_management::migrations::authority_keys::UpgradeAuthorityKeys; use parity_scale_codec::MaxEncodedLen; - use sp_core::{ed25519, sr25519}; + use sp_core::{ecdsa, ed25519, sr25519}; pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; /// Opaque block header type. @@ -120,11 +126,12 @@ pub mod opaque { pub struct SessionKeys { pub aura: Aura, pub grandpa: Grandpa, + pub beefy: Beefy, } } - impl From<(sr25519::Public, ed25519::Public)> for SessionKeys { - fn from((aura, grandpa): (sr25519::Public, ed25519::Public)) -> Self { - Self { aura: aura.into(), grandpa: grandpa.into() } + impl From<(sr25519::Public, ed25519::Public, ecdsa::Public)> for SessionKeys { + fn from((aura, grandpa, beefy): (sr25519::Public, ed25519::Public, ecdsa::Public)) -> Self { + Self { aura: aura.into(), grandpa: grandpa.into(), beefy: beefy.into() } } } @@ -135,6 +142,24 @@ pub mod opaque { pub account: CrossChainPublic, } } + + impl_opaque_keys! { + #[derive(MaxEncodedLen, PartialOrd, Ord)] + pub struct LegacySessionKeys { + pub aura: Aura, + pub grandpa: Grandpa, + } + } + + impl UpgradeAuthorityKeys for LegacySessionKeys { + fn upgrade(self) -> SessionKeys { + SessionKeys { + aura: self.aura, + grandpa: self.grandpa, + beefy: ecdsa::Public::default().into(), + } + } + } } pub type CrossChainPublic = sidechain_domain::cross_chain_app::Public; @@ -151,7 +176,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 180, + spec_version: 182, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -618,7 +643,8 @@ impl crate::test_helper_pallet::Config for Runtime { } parameter_types! { -pub const MaxTransfersPerBlock: u32 = 256;} + pub const MaxTransfersPerBlock: u32 = 256; +} impl pallet_partner_chains_bridge::Config for Runtime { type GovernanceOrigin = EnsureRoot; @@ -696,6 +722,63 @@ pub mod dynamic_params { } } +parameter_types! { + pub const SessionsPerEra: sp_staking::SessionIndex = 6; + pub const BondingDuration: sp_staking::EraIndex = 24 * 28; +} + +parameter_types! { + pub const BeefySetIdSessionEntries: u32 = BondingDuration::get() * SessionsPerEra::get(); +} + +impl pallet_beefy::Config for Runtime { + type BeefyId = BeefyId; + type MaxAuthorities = MaxValidators; + type MaxNominators = ConstU32<0>; + type MaxSetIdSessionEntries = BeefySetIdSessionEntries; + type OnNewValidatorSet = BeefyMmrLeaf; + type AncestryHelper = BeefyMmrLeaf; + type WeightInfo = (); + type KeyOwnerProof = sp_session::MembershipProof; + // TODO: disabled equivocations, they require additional modules like Offences and full Session pallet + // type EquivocationReportSystem = + // pallet_beefy::EquivocationReportSystem; + type EquivocationReportSystem = (); +} + +/// MMR helper types. +mod mmr { + use super::*; + pub use pallet_mmr::primitives::*; + + pub type Leaf = <::LeafData as LeafDataProvider>::LeafData; + pub type Hash = ::Output; + pub type Hashing = ::Hashing; +} + +impl pallet_mmr::Config for Runtime { + const INDEXING_PREFIX: &'static [u8] = b"mmr"; + type Hashing = Keccak256; + type LeafData = pallet_mmr::ParentNumberAndHash; + type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; + type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; + type WeightInfo = (); + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); +} + +parameter_types! { + pub LeafVersion: MmrLeafVersion = MmrLeafVersion::new(0, 0); +} + +impl pallet_beefy_mmr::Config for Runtime { + type LeafVersion = LeafVersion; + type BeefyAuthorityToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; + type LeafExtra = Vec; + type BeefyDataProvider = (); + type WeightInfo = (); +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub struct Runtime { @@ -725,6 +808,11 @@ construct_runtime!( Parameters: pallet_parameters, Preimage: pallet_preimage, Scheduler: pallet_scheduler, + Beefy: pallet_beefy, + Mmr: pallet_mmr, + // MMR leaf construction must be after session in order to have a leaf's next_auth_set + // refer to block. See issue polkadot-fellows/runtimes#160 for details. + BeefyMmrLeaf: pallet_beefy_mmr, TestHelperPallet: crate::test_helper_pallet, } ); @@ -754,7 +842,12 @@ pub type UncheckedExtrinsic = pub type SignedPayload = generic::SignedPayload; pub type Migrations = ( pallet_session_validator_management::migrations::v1::LegacyToV1Migration, - // More migrations can be added here + pallet_session_validator_management::migrations::authority_keys::AuthorityKeysMigration< + Runtime, + opaque::LegacySessionKeys, + 0, + 1, + >, // More migrations can be added here ); /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -968,6 +1061,138 @@ impl_runtime_apis! { } } + + #[api_version(6)] + impl sp_consensus_beefy::BeefyApi for Runtime { + fn beefy_genesis() -> Option { + pallet_beefy::GenesisBlock::::get() + } + + fn validator_set() -> Option> { + Beefy::validator_set() + } + + fn submit_report_double_voting_unsigned_extrinsic( + equivocation_proof: sp_consensus_beefy::DoubleVotingProof< + BlockNumber, + BeefyId, + BeefySignature, + >, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + let key_owner_proof = key_owner_proof.decode()?; + + Beefy::submit_unsigned_double_voting_report( + equivocation_proof, + key_owner_proof, + ) + } + + fn submit_report_fork_voting_unsigned_extrinsic( + equivocation_proof: + sp_consensus_beefy::ForkVotingProof< + ::Header, + BeefyId, + sp_runtime::OpaqueValue + >, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_fork_voting_report( + equivocation_proof.try_into()?, + key_owner_proof.decode()?, + ) + } + + fn submit_report_future_block_voting_unsigned_extrinsic( + equivocation_proof: sp_consensus_beefy::FutureBlockVotingProof, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_future_block_voting_report( + equivocation_proof, + key_owner_proof.decode()?, + ) + } + + fn generate_key_ownership_proof( + _set_id: sp_consensus_beefy::ValidatorSetId, + _authority_id: BeefyId, + ) -> Option { + // TODO: right now we don't have historical module of session pallet + None + // Historical::prove((sp_consensus_beefy::KEY_TYPE, authority_id)) + // .map(|p| p.encode()) + // .map(sp_consensus_beefy::OpaqueKeyOwnershipProof::new) + } + + } + + impl pallet_mmr::primitives::MmrApi< + Block, + mmr::Hash, + BlockNumber, + > for Runtime { + fn mmr_root() -> Result { + Ok(pallet_mmr::RootHash::::get()) + } + + fn mmr_leaf_count() -> Result { + Ok(pallet_mmr::NumberOfLeaves::::get()) + } + + fn generate_proof( + block_numbers: Vec, + best_known_block_number: Option, + ) -> Result<(Vec, mmr::LeafProof), mmr::Error> { + Mmr::generate_proof(block_numbers, best_known_block_number).map( + |(leaves, proof)| { + ( + leaves + .into_iter() + .map(|leaf| mmr::EncodableOpaqueLeaf::from_leaf(&leaf)) + .collect(), + proof, + ) + }, + ) + } + + fn verify_proof(leaves: Vec, proof: mmr::LeafProof) + -> Result<(), mmr::Error> + { + let leaves = leaves.into_iter().map(|leaf| + leaf.into_opaque_leaf() + .try_decode() + .ok_or(mmr::Error::Verify)).collect::, mmr::Error>>()?; + Mmr::verify_leaves(leaves, proof) + } + + fn verify_proof_stateless( + root: mmr::Hash, + leaves: Vec, + proof: mmr::LeafProof + ) -> Result<(), mmr::Error> { + let nodes = leaves.into_iter().map(|leaf|mmr::DataOrHash::Data(leaf.into_opaque_leaf())).collect(); + pallet_mmr::verify_leaves_proof::(root, nodes, proof) + } + + fn generate_ancestry_proof( + prev_block_number: BlockNumber, + best_known_block_number: Option, + ) -> Result, mmr::Error> { + Mmr::generate_ancestry_proof(prev_block_number, best_known_block_number) + } + } + + impl pallet_beefy_mmr::BeefyMmrApi for RuntimeApi { + fn authority_set_proof() -> sp_consensus_beefy::mmr::BeefyAuthoritySet { + BeefyMmrLeaf::authority_set_proof() + } + + fn next_authority_set_proof() -> sp_consensus_beefy::mmr::BeefyNextAuthoritySet { + BeefyMmrLeaf::next_authority_set_proof() + } + } + #[cfg(feature = "runtime-benchmarks")] impl frame_benchmarking::Benchmark for Runtime { fn benchmark_metadata(extra: bool) -> ( diff --git a/flake.nix b/flake.nix index 5a06fab7f0..e5ebe8cb4d 100644 --- a/flake.nix +++ b/flake.nix @@ -82,6 +82,7 @@ rustToolchain pkgs.libz pkgs.stdenv.cc.cc + pkgs.libclang.lib ] }"