From f6eda5bdbba8fc03975db3c2d08b51f78955bb4b Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 21 Feb 2023 13:26:21 +0100 Subject: [PATCH 01/44] Add embedded light client to cli --- Cargo.lock | 30 +++++++++++++++++++ client/cli/src/lib.rs | 11 ++++++- .../src/blockchain_rpc_client.rs | 24 +-------------- client/service/Cargo.toml | 3 +- client/service/src/lib.rs | 3 ++ test/service/src/lib.rs | 8 +++-- 6 files changed, 52 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e8bc76c71e..9be1a31c11d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1959,6 +1959,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", + "cumulus-relay-chain-light-client-interface", "cumulus-relay-chain-minimal-node", "futures", "parking_lot 0.12.1", @@ -2261,6 +2262,35 @@ dependencies = [ "tokio", ] +[[package]] +name = "cumulus-relay-chain-light-client-interface" +version = "0.1.0" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures", + "futures-timer", + "jsonrpsee", + "lru 0.9.0", + "parity-scale-codec", + "polkadot-service", + "sc-client-api", + "sc-rpc-api", + "sc-service", + "serde", + "serde_json", + "sp-api", + "sp-authority-discovery", + "sp-consensus-babe", + "sp-core", + "sp-state-machine", + "sp-storage", + "tokio", + "tracing", + "url", +] + [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index edf11d72a0b..d4dba9a92f5 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -298,6 +298,10 @@ pub struct RunCmd { alias = "relay-chain-rpc-url" )] pub relay_chain_rpc_urls: Vec, + + /// Embed a light client for the relay chain + #[arg(long)] + pub embedded_light_client: bool, } impl RunCmd { @@ -312,7 +316,10 @@ impl RunCmd { /// Create [`CollatorOptions`] representing options only relevant to parachain collator nodes pub fn collator_options(&self) -> CollatorOptions { - CollatorOptions { relay_chain_rpc_urls: self.relay_chain_rpc_urls.clone() } + CollatorOptions { + relay_chain_rpc_urls: self.relay_chain_rpc_urls.clone(), + embedded_light_client: self.embedded_light_client, + } } } @@ -321,6 +328,8 @@ impl RunCmd { pub struct CollatorOptions { /// Location of relay chain full node pub relay_chain_rpc_urls: Vec, + + pub embedded_light_client: bool, } /// A non-redundant version of the `RunCmd` that sets the `validator` field when the diff --git a/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs b/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs index 08a230ac5f2..e16e0d497db 100644 --- a/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs +++ b/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs @@ -21,7 +21,7 @@ use cumulus_relay_chain_rpc_interface::RelayChainRpcClient; use futures::{Future, Stream, StreamExt}; use polkadot_core_primitives::{Block, Hash, Header}; use polkadot_overseer::RuntimeApiSubsystemClient; -use polkadot_service::{AuxStore, HeaderBackend}; +use polkadot_service::HeaderBackend; use sc_authority_discovery::AuthorityDiscovery; use sp_api::{ApiError, RuntimeApiInfo}; @@ -52,28 +52,6 @@ impl BlockChainRpcClient { } } -// Implementation required by Availability-Distribution subsystem -// but never called in our case. -impl AuxStore for BlockChainRpcClient { - fn insert_aux< - 'a, - 'b: 'a, - 'c: 'a, - I: IntoIterator, - D: IntoIterator, - >( - &self, - _insert: I, - _delete: D, - ) -> sp_blockchain::Result<()> { - unimplemented!("Not supported on the RPC collator") - } - - fn get_aux(&self, _key: &[u8]) -> sp_blockchain::Result>> { - unimplemented!("Not supported on the RPC collator") - } -} - #[async_trait::async_trait] impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn validators( diff --git a/client/service/Cargo.toml b/client/service/Cargo.toml index 14240d03d90..bbef86c8447 100644 --- a/client/service/Cargo.toml +++ b/client/service/Cargo.toml @@ -38,4 +38,5 @@ cumulus-client-network = { path = "../network" } cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = { path = "../relay-chain-interface" } cumulus-relay-chain-inprocess-interface = { path = "../relay-chain-inprocess-interface" } -cumulus-relay-chain-minimal-node = { path = "../relay-chain-minimal-node" } \ No newline at end of file +cumulus-relay-chain-minimal-node = { path = "../relay-chain-minimal-node" } +cumulus-relay-chain-light-client-interface = { path = "../relay-chain-light-client-interface" } diff --git a/client/service/src/lib.rs b/client/service/src/lib.rs index fa9981bb886..d94a7d151f7 100644 --- a/client/service/src/lib.rs +++ b/client/service/src/lib.rs @@ -25,6 +25,7 @@ use cumulus_client_pov_recovery::{PoVRecovery, RecoveryDelayRange, RecoveryHandl use cumulus_primitives_core::{CollectCollationInfo, ParaId}; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; +use cumulus_relay_chain_light_client_interface::build_light_client_relay_chain; use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; use futures::{ channel::{mpsc, oneshot}, @@ -264,6 +265,8 @@ pub async fn build_relay_chain_interface( collator_options.relay_chain_rpc_urls, ) .await + } else if collator_options.embedded_light_client { + build_light_client_relay_chain(polkadot_config, task_manager).await } else { build_inprocess_relay_chain( polkadot_config, diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index b33ffab03ff..60952623be1 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -487,6 +487,7 @@ pub struct TestNodeBuilder { storage_update_func_relay_chain: Option>, consensus: Consensus, relay_chain_full_node_url: Vec, + embedded_light_client: bool, } impl TestNodeBuilder { @@ -509,6 +510,7 @@ impl TestNodeBuilder { storage_update_func_relay_chain: None, consensus: Consensus::RelayChain, relay_chain_full_node_url: vec![], + embedded_light_client: false, } } @@ -636,8 +638,10 @@ impl TestNodeBuilder { false, ); - let collator_options = - CollatorOptions { relay_chain_rpc_urls: self.relay_chain_full_node_url }; + let collator_options = CollatorOptions { + relay_chain_rpc_urls: self.relay_chain_full_node_url, + embedded_light_client: self.embedded_light_client, + }; relay_chain_config.network.node_name = format!("{} (relay chain)", relay_chain_config.network.node_name); From d5c7791d562706cdbbb58f270ebd9a2cff980ccd Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 23 Feb 2023 12:11:01 +0100 Subject: [PATCH 02/44] Prepare for light-client-worker --- Cargo.lock | 742 +++++++++++++++--- client/cli/src/lib.rs | 6 +- client/relay-chain-minimal-node/src/lib.rs | 25 +- client/relay-chain-rpc-interface/Cargo.toml | 10 + client/relay-chain-rpc-interface/src/lib.rs | 7 +- .../src/light_client.rs | 434 ++++++++++ .../src/reconnecting_ws_client.rs | 17 +- .../src/rpc_client.rs | 37 +- client/service/Cargo.toml | 1 - client/service/src/lib.rs | 10 +- parachain-template/node/Cargo.toml | 2 +- test/service/src/lib.rs | 5 +- 12 files changed, 1158 insertions(+), 138 deletions(-) create mode 100644 client/relay-chain-rpc-interface/src/light_client.rs diff --git a/Cargo.lock b/Cargo.lock index 9be1a31c11d..54ef9f8accf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -218,6 +218,15 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + [[package]] name = "arrayvec" version = "0.5.2" @@ -342,13 +351,54 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "async-channel" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +dependencies = [ + "concurrent-queue 2.1.0", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +dependencies = [ + "async-task", + "concurrent-queue 1.2.2", + "fastrand", + "futures-lite", + "once_cell", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c290043c9a95b05d45e952fb6383c67bcb61471f60cfa21e890dba6654234f43" +dependencies = [ + "async-channel", + "async-executor", + "async-io", + "async-mutex", + "blocking", + "futures-lite", + "num_cpus", + "once_cell", +] + [[package]] name = "async-io" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" dependencies = [ - "concurrent-queue", + "concurrent-queue 1.2.2", "futures-lite", "libc", "log", @@ -370,6 +420,47 @@ dependencies = [ "event-listener", ] +[[package]] +name = "async-mutex" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-std" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +dependencies = [ + "async-channel", + "async-global-executor", + "async-io", + "async-lock", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite 0.2.9", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" + [[package]] name = "async-trait" version = "0.1.64" @@ -394,6 +485,15 @@ dependencies = [ "pin-project-lite 0.2.9", ] +[[package]] +name = "atomic" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" +dependencies = [ + "autocfg", +] + [[package]] name = "atomic-waker" version = "1.0.0" @@ -452,9 +552,9 @@ checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64ct" @@ -561,6 +661,22 @@ dependencies = [ "shlex", ] +[[package]] +name = "bip39" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e89470017230c38e52b82b3ee3f530db1856ba1d434e3a67a3456a8a8dec5f" +dependencies = [ + "bitcoin_hashes", + "rand_core 0.4.2", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce18265ec2324ad075345d5814fbeed4f41f0a660055dc78840b74d19b874b1" + [[package]] name = "bitflags" version = "1.3.2" @@ -585,7 +701,17 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" dependencies = [ - "digest 0.10.3", + "digest 0.10.6", +] + +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq", ] [[package]] @@ -621,7 +747,7 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq", - "digest 0.10.3", + "digest 0.10.6", ] [[package]] @@ -679,6 +805,20 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +[[package]] +name = "blocking" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +dependencies = [ + "async-channel", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "once_cell", +] + [[package]] name = "bounded-collections" version = "0.1.4" @@ -1344,6 +1484,15 @@ dependencies = [ "cache-padded", ] +[[package]] +name = "concurrent-queue" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "const-oid" version = "0.9.0" @@ -1672,9 +1821,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1682,12 +1831,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if", - "lazy_static", ] [[package]] @@ -1748,6 +1896,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "ctr" version = "0.6.0" @@ -1959,7 +2117,6 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", - "cumulus-relay-chain-light-client-interface", "cumulus-relay-chain-minimal-node", "futures", "parking_lot 0.12.1", @@ -2262,35 +2419,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "cumulus-relay-chain-light-client-interface" -version = "0.1.0" -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures", - "futures-timer", - "jsonrpsee", - "lru 0.9.0", - "parity-scale-codec", - "polkadot-service", - "sc-client-api", - "sc-rpc-api", - "sc-service", - "serde", - "serde_json", - "sp-api", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-core", - "sp-state-machine", - "sp-storage", - "tokio", - "tracing", - "url", -] - [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" @@ -2337,16 +2465,23 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "either", + "event-listener", "futures", "futures-timer", + "itertools", "jsonrpsee", "lru 0.9.0", "parity-scale-codec", + "parking_lot 0.12.1", "polkadot-service", "sc-client-api", "sc-rpc-api", + "sc-service", "serde", "serde_json", + "smoldot", + "smoldot-light", "sp-api", "sp-authority-discovery", "sp-consensus-babe", @@ -2354,6 +2489,7 @@ dependencies = [ "sp-state-machine", "sp-storage", "tokio", + "tokio-util 0.7.7", "tracing", "url", ] @@ -2535,14 +2671,28 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.1" +version = "4.0.0-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da00a7a9a4eb92a0a0f8e75660926d48f0d0f3c537e455c457bcdaa1e16b1ac" +dependencies = [ + "cfg-if", + "fiat-crypto", + "packed_simd_2", + "platforms 3.0.2", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4033478fbf70d6acf2655ac70da91ee65852d69daf7a67bf7a2f518fb47aafcf" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.6.3", - "subtle", + "subtle-ng", "zeroize", ] @@ -2782,9 +2932,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.3" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.0", "crypto-common", @@ -2945,9 +3095,9 @@ dependencies = [ [[package]] name = "either" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" @@ -2958,7 +3108,7 @@ dependencies = [ "base16ct", "crypto-bigint", "der", - "digest 0.10.3", + "digest 0.10.6", "ff", "generic-array 0.14.4", "group", @@ -3069,9 +3219,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.1" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "exit-future" @@ -3172,6 +3322,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" + [[package]] name = "file-per-thread-logger" version = "0.1.4" @@ -3813,6 +3969,18 @@ dependencies = [ "regex", ] +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "group" version = "0.12.1" @@ -3894,6 +4062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ "ahash 0.8.2", + "serde", ] [[package]] @@ -3977,7 +4146,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.3", + "digest 0.10.6", ] [[package]] @@ -4096,6 +4265,12 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "ident_case" version = "1.0.1" @@ -4289,9 +4464,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] @@ -4356,7 +4531,7 @@ dependencies = [ "thiserror", "tokio", "tokio-rustls", - "tokio-util 0.7.1", + "tokio-util 0.7.7", "tracing", "webpki-roots", ] @@ -4419,7 +4594,7 @@ dependencies = [ "soketto", "tokio", "tokio-stream", - "tokio-util 0.7.1", + "tokio-util 0.7.7", "tower", "tracing", ] @@ -4459,7 +4634,7 @@ dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sha2 0.10.2", + "sha2 0.10.6", ] [[package]] @@ -4579,6 +4754,15 @@ dependencies = [ "sp-weights", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "kvdb" version = "0.13.0" @@ -4640,6 +4824,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" + [[package]] name = "libm" version = "0.2.1" @@ -4706,7 +4896,7 @@ dependencies = [ "rand 0.8.5", "rw-stream-sink", "sec1", - "sha2 0.10.2", + "sha2 0.10.6", "smallvec", "thiserror", "unsigned-varint", @@ -4769,7 +4959,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.6", "smallvec", "thiserror", "uint", @@ -4844,7 +5034,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.6", "snow", "static_assertions", "thiserror", @@ -5015,7 +5205,7 @@ dependencies = [ "thiserror", "tinytemplate", "tokio", - "tokio-util 0.7.1", + "tokio-util 0.7.7", "webrtc", ] @@ -5069,9 +5259,9 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", "base64", @@ -5181,6 +5371,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", + "value-bag", ] [[package]] @@ -5281,7 +5472,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b48670c893079d3c2ed79114e3644b7004df1c361a4e0ad52e2e6940d07c3d" dependencies = [ - "digest 0.10.3", + "digest 0.10.6", ] [[package]] @@ -5354,6 +5545,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.3", + "zeroize", +] + [[package]] name = "mick-jaeger" version = "0.1.8" @@ -5503,9 +5706,9 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.3", + "digest 0.10.6", "multihash-derive", - "sha2 0.10.2", + "sha2 0.10.6", "sha3", "unsigned-varint", ] @@ -5678,6 +5881,18 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "no-std-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -5686,13 +5901,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.0" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", - "version_check", ] [[package]] @@ -5905,7 +6119,7 @@ checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ "ecdsa", "elliptic-curve", - "sha2 0.10.2", + "sha2 0.10.6", ] [[package]] @@ -5916,7 +6130,17 @@ checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ "ecdsa", "elliptic-curve", - "sha2 0.10.2", + "sha2 0.10.6", +] + +[[package]] +name = "packed_simd_2" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +dependencies = [ + "cfg-if", + "libm 0.1.4", ] [[package]] @@ -5933,7 +6157,7 @@ dependencies = [ "pallet-identity", "parity-scale-codec", "scale-info", - "sha2 0.10.2", + "sha2 0.10.6", "sp-core", "sp-io", "sp-runtime", @@ -6223,7 +6447,7 @@ dependencies = [ "sp-std", "wasm-instrument 0.4.0", "wasmi 0.20.0", - "wasmparser-nostd", + "wasmparser-nostd 0.91.0", ] [[package]] @@ -7342,7 +7566,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.3", + "digest 0.10.6", ] [[package]] @@ -7547,6 +7771,12 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" +[[package]] +name = "platforms" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" + [[package]] name = "plotters" version = "0.3.1" @@ -7865,7 +8095,7 @@ dependencies = [ "futures-timer", "kvdb", "lru 0.9.0", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -7874,7 +8104,7 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sc-keystore", - "schnorrkel", + "schnorrkel 0.9.1", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -8181,7 +8411,7 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", - "schnorrkel", + "schnorrkel 0.9.1", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -9234,6 +9464,17 @@ dependencies = [ "cc", ] +[[package]] +name = "pulldown-cmark" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -9334,6 +9575,12 @@ dependencies = [ "rand_core 0.6.3", ] +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + [[package]] name = "rand_core" version = "0.5.1" @@ -9880,6 +10127,17 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088" +[[package]] +name = "ruzstd" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffae8df4aa221781b715c27bbed0fac16b6f1e2643efb7af8a24dfc78d444493" +dependencies = [ + "byteorder", + "thiserror", + "twox-hash", +] + [[package]] name = "rw-stream-sink" version = "0.3.0" @@ -10182,7 +10440,7 @@ dependencies = [ "fork-tree", "futures", "log", - "merlin", + "merlin 2.0.1", "num-bigint", "num-rational", "num-traits", @@ -10195,7 +10453,7 @@ dependencies = [ "sc-keystore", "sc-telemetry", "scale-info", - "schnorrkel", + "schnorrkel 0.9.1", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -11052,7 +11310,7 @@ dependencies = [ "arrayvec 0.5.2", "curve25519-dalek 2.1.3", "getrandom 0.1.16", - "merlin", + "merlin 2.0.1", "rand 0.7.3", "rand_core 0.5.1", "sha2 0.8.2", @@ -11060,6 +11318,22 @@ dependencies = [ "zeroize", ] +[[package]] +name = "schnorrkel" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +dependencies = [ + "arrayref", + "arrayvec 0.7.2", + "curve25519-dalek-ng", + "merlin 3.0.0", + "rand_core 0.6.3", + "sha2 0.9.8", + "subtle-ng", + "zeroize", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -11322,13 +11596,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.3", + "digest 0.10.6", ] [[package]] @@ -11337,7 +11611,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f935e31cf406e8c0e96c2815a5516181b7004ae8c5f296293221e9b1e356bd" dependencies = [ - "digest 0.10.3", + "digest 0.10.6", "keccak", ] @@ -11402,7 +11676,7 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.3", + "digest 0.10.6", "rand_core 0.6.3", ] @@ -11419,11 +11693,20 @@ dependencies = [ "wide", ] +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + [[package]] name = "slab" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] [[package]] name = "slice-group-by" @@ -11458,6 +11741,83 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +[[package]] +name = "smoldot" +version = "0.5.0" +dependencies = [ + "anyhow", + "arrayvec 0.7.2", + "async-std", + "atomic", + "base64", + "bip39", + "blake2-rfc", + "bs58", + "crossbeam-queue", + "derive_more", + "ed25519-zebra", + "either", + "event-listener", + "fnv", + "futures", + "hashbrown 0.13.2", + "hex", + "hmac 0.12.1", + "itertools", + "libsecp256k1", + "merlin 3.0.0", + "no-std-net", + "nom", + "num-bigint", + "num-rational", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.1", + "pbkdf2 0.11.0", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd", + "schnorrkel 0.10.2", + "serde", + "serde_json", + "sha2 0.10.6", + "siphasher", + "slab", + "smallvec", + "snow", + "soketto", + "sqlite", + "tiny-keccak", + "twox-hash", + "wasmi 0.26.1", + "wasmtime", +] + +[[package]] +name = "smoldot-light" +version = "0.3.0" +dependencies = [ + "async-std", + "blake2-rfc", + "derive_more", + "either", + "event-listener", + "fnv", + "futures", + "hashbrown 0.13.2", + "hex", + "itertools", + "log", + "lru 0.8.1", + "parking_lot 0.12.1", + "rand 0.8.5", + "serde", + "serde_json", + "slab", + "smoldot", +] + [[package]] name = "snap" version = "1.0.5" @@ -11466,18 +11826,18 @@ checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" [[package]] name = "snow" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" +checksum = "12ba5f4d4ff12bdb6a169ed51b7c48c0e0ac4b0b4b31012b2571e97d78d3201d" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.1", + "curve25519-dalek 4.0.0-rc.0", "rand_core 0.6.3", "ring", "rustc_version 0.4.0", - "sha2 0.10.2", + "sha2 0.10.6", "subtle", ] @@ -11669,7 +12029,7 @@ version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=master#a10ccb562fa2f01832283d4d854a2938037f487a" dependencies = [ "async-trait", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "scale-info", "serde", @@ -11705,7 +12065,7 @@ source = "git+https://github.com/paritytech/substrate?branch=master#a10ccb562fa2 dependencies = [ "parity-scale-codec", "scale-info", - "schnorrkel", + "schnorrkel 0.9.1", "sp-core", "sp-runtime", "sp-std", @@ -11730,14 +12090,14 @@ dependencies = [ "lazy_static", "libsecp256k1", "log", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "parking_lot 0.12.1", "primitive-types", "rand 0.8.5", "regex", "scale-info", - "schnorrkel", + "schnorrkel 0.9.1", "secp256k1", "secrecy", "serde", @@ -11761,8 +12121,8 @@ source = "git+https://github.com/paritytech/substrate?branch=master#a10ccb562fa2 dependencies = [ "blake2", "byteorder", - "digest 0.10.3", - "sha2 0.10.2", + "digest 0.10.6", + "sha2 0.10.6", "sha3", "sp-std", "twox-hash", @@ -11885,10 +12245,10 @@ source = "git+https://github.com/paritytech/substrate?branch=master#a10ccb562fa2 dependencies = [ "async-trait", "futures", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "parking_lot 0.12.1", - "schnorrkel", + "schnorrkel 0.9.1", "serde", "sp-core", "sp-externalities", @@ -12245,6 +12605,36 @@ dependencies = [ "der", ] +[[package]] +name = "sqlite" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e66cb949f931ece6201d72bffad3f3601b94998a345793713dd13af70a77c185" +dependencies = [ + "libc", + "sqlite3-sys", +] + +[[package]] +name = "sqlite3-src" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1815a7a02c996eb8e5c64f61fcb6fd9b12e593ce265c512c5853b2513635691" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "sqlite3-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d47c99824fc55360ba00caf28de0b8a0458369b832e016a64c13af0ad9fbb9ee" +dependencies = [ + "libc", + "sqlite3-src", +] + [[package]] name = "ss58-registry" version = "1.34.0" @@ -12511,7 +12901,7 @@ checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", - "schnorrkel", + "schnorrkel 0.9.1", "sha2 0.9.8", "zeroize", ] @@ -12521,7 +12911,7 @@ name = "substrate-build-script-utils" version = "3.0.0" source = "git+https://github.com/paritytech/substrate?branch=master#a10ccb562fa2f01832283d4d854a2938037f487a" dependencies = [ - "platforms", + "platforms 2.0.0", ] [[package]] @@ -12666,6 +13056,12 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + [[package]] name = "syn" version = "1.0.107" @@ -12900,13 +13296,22 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "rustc-hash", - "sha2 0.10.2", + "sha2 0.10.6", "thiserror", "unicode-normalization", "wasm-bindgen", "zeroize", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinytemplate" version = "1.2.1" @@ -12983,7 +13388,7 @@ dependencies = [ "futures-core", "pin-project-lite 0.2.9", "tokio", - "tokio-util 0.7.1", + "tokio-util 0.7.7", ] [[package]] @@ -13002,9 +13407,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ "bytes", "futures-core", @@ -13363,7 +13768,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "digest 0.10.3", + "digest 0.10.6", "rand 0.8.5", "static_assertions", ] @@ -13392,6 +13797,15 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.7" @@ -13479,6 +13893,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "value-bag" +version = "1.0.0-alpha.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" +dependencies = [ + "ctor", + "version_check", +] + [[package]] name = "vcpkg" version = "0.2.15" @@ -13718,9 +14142,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01bf50edb2ea9d922aa75a7bf3c15e26a6c9e2d18c56e862b49737a582901729" dependencies = [ "spin 0.9.4", - "wasmi_arena", + "wasmi_arena 0.1.0", "wasmi_core 0.5.0", - "wasmparser-nostd", + "wasmparser-nostd 0.91.0", +] + +[[package]] +name = "wasmi" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35653e9f82eacc22583f303fa34f4c2d4efdee6521e70b46b6ca4c68c0e432d8" +dependencies = [ + "spin 0.9.4", + "wasmi_arena 0.4.0", + "wasmi_core 0.11.0", + "wasmparser-nostd 0.100.1", ] [[package]] @@ -13738,6 +14174,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ea379cbb0b41f3a9f0bf7b47036d036aae7f43383d8cc487d4deccf40dee0a" +[[package]] +name = "wasmi_arena" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" + [[package]] name = "wasmi_core" version = "0.2.0" @@ -13745,7 +14187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a088e8c4c59c6f2b9eae169bf86328adccc477c00b56d3661e3e9fb397b184" dependencies = [ "downcast-rs", - "libm", + "libm 0.2.1", "memory_units", "num-rational", "num-traits", @@ -13758,10 +14200,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5bf998ab792be85e20e771fe14182b4295571ad1d4f89d3da521c1bef5f597a" dependencies = [ "downcast-rs", - "libm", + "libm 0.2.1", "num-traits", ] +[[package]] +name = "wasmi_core" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2bde97906bbc49ad61184db16e5c905e946e747f6febd09b583fc321d70af0" +dependencies = [ + "downcast-rs", + "libm 0.2.1", + "num-traits", + "paste", +] + [[package]] name = "wasmparser" version = "0.96.0" @@ -13781,12 +14235,22 @@ dependencies = [ "indexmap-nostd", ] +[[package]] +name = "wasmparser-nostd" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +dependencies = [ + "indexmap-nostd", +] + [[package]] name = "wasmtime" version = "5.0.0" source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" dependencies = [ "anyhow", + "async-trait", "bincode", "cfg-if", "indexmap", @@ -13801,8 +14265,10 @@ dependencies = [ "target-lexicon", "wasmparser", "wasmtime-cache", + "wasmtime-component-macro", "wasmtime-cranelift", "wasmtime-environ", + "wasmtime-fiber", "wasmtime-jit", "wasmtime-runtime", "windows-sys 0.42.0", @@ -13829,12 +14295,30 @@ dependencies = [ "log", "rustix", "serde", - "sha2 0.10.2", + "sha2 0.10.6", "toml 0.5.10", "windows-sys 0.42.0", "zstd", ] +[[package]] +name = "wasmtime-component-macro" +version = "5.0.0" +source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", +] + +[[package]] +name = "wasmtime-component-util" +version = "5.0.0" +source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" + [[package]] name = "wasmtime-cranelift" version = "5.0.0" @@ -13873,6 +14357,18 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "wasmtime-fiber" +version = "5.0.0" +source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +dependencies = [ + "cc", + "cfg-if", + "rustix", + "wasmtime-asm-macros", + "windows-sys 0.42.0", +] + [[package]] name = "wasmtime-jit" version = "5.0.0" @@ -13935,6 +14431,7 @@ dependencies = [ "rustix", "wasmtime-asm-macros", "wasmtime-environ", + "wasmtime-fiber", "wasmtime-jit-debug", "windows-sys 0.42.0", ] @@ -13950,6 +14447,16 @@ dependencies = [ "wasmparser", ] +[[package]] +name = "wasmtime-wit-bindgen" +version = "5.0.0" +source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + [[package]] name = "web-sys" version = "0.3.55" @@ -14012,7 +14519,7 @@ dependencies = [ "sdp", "serde", "serde_json", - "sha2 0.10.2", + "sha2 0.10.6", "stun", "thiserror", "time 0.3.17", @@ -14634,6 +15141,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "wit-parser" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703eb1d2f89ff2c52d50f7ff002735e423cea75f0a5dc5c8a4626c4c47cd9ca6" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "pulldown-cmark", + "unicode-xid", +] + [[package]] name = "wyz" version = "0.5.0" diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index d4dba9a92f5..cc46d9c1cbf 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -301,7 +301,7 @@ pub struct RunCmd { /// Embed a light client for the relay chain #[arg(long)] - pub embedded_light_client: bool, + pub embedded_light_client: Option, } impl RunCmd { @@ -318,7 +318,7 @@ impl RunCmd { pub fn collator_options(&self) -> CollatorOptions { CollatorOptions { relay_chain_rpc_urls: self.relay_chain_rpc_urls.clone(), - embedded_light_client: self.embedded_light_client, + embedded_light_client: self.embedded_light_client.clone(), } } } @@ -329,7 +329,7 @@ pub struct CollatorOptions { /// Location of relay chain full node pub relay_chain_rpc_urls: Vec, - pub embedded_light_client: bool, + pub embedded_light_client: Option, } /// A non-redundant version of the `RunCmd` that sets the `validator` field when the diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index e47b3c576e5..bf0b5f6a43e 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -30,7 +30,7 @@ use polkadot_primitives::CollatorPair; use sc_authority_discovery::Service as AuthorityDiscoveryService; use sc_network::{Event, NetworkService}; use sc_network_common::service::NetworkEventStream; -use std::sync::Arc; +use std::{path::PathBuf, sync::Arc}; use polkadot_service::{Configuration, TaskManager}; @@ -106,6 +106,29 @@ pub async fn build_minimal_relay_chain_node( )) } +pub async fn build_minimal_relay_chain_node_light_client( + polkadot_config: Configuration, + task_manager: &mut TaskManager, + chain_spec_path: PathBuf, +) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { + let client = cumulus_relay_chain_rpc_interface::create_client_and_start_light_client_worker( + chain_spec_path, + task_manager, + ) + .await?; + let collator_pair = CollatorPair::generate().0; + let collator_node = new_minimal_relay_chain( + polkadot_config, + collator_pair.clone(), + Arc::new(BlockChainRpcClient::new(client.clone())), + ) + .await?; + task_manager.add_child(collator_node.task_manager); + Ok(( + Arc::new(RelayChainRpcInterface::new(client, collator_node.overseer_handle)), + Some(collator_pair), + )) +} /// Builds a minimal relay chain node. Chain data is fetched /// via [`BlockChainRpcClient`] and fed into the overseer and its subsystems. /// diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 70afef3c7a7..d9655dd623e 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -19,7 +19,9 @@ sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = " sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } tokio = { version = "1.25.0", features = ["sync"] } +tokio-util = { version = "0.7.7", features = ["compat"] } futures = "0.3.26" futures-timer = "3.0.2" @@ -31,3 +33,11 @@ url = "2.3.1" serde_json = "1.0.93" serde = "1.0.152" lru = "0.9.0" + +smoldot = { path = "../../../smoldot" } +smoldot-light = { path = "../../../smoldot/bin/light-base" } + +itertools = "0.10.5" +parking_lot = "0.12.1" +either = "1.8.1" +event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/lib.rs b/client/relay-chain-rpc-interface/src/lib.rs index 748a2b26e68..e2bf9e05389 100644 --- a/client/relay-chain-rpc-interface/src/lib.rs +++ b/client/relay-chain-rpc-interface/src/lib.rs @@ -34,9 +34,14 @@ use std::pin::Pin; pub use url::Url; +mod light_client; mod reconnecting_ws_client; mod rpc_client; -pub use rpc_client::{create_client_and_start_worker, RelayChainRpcClient}; + +pub use rpc_client::{ + create_client_and_start_light_client_worker, create_client_and_start_worker, + RelayChainRpcClient, +}; const TIMEOUT_IN_SECONDS: u64 = 6; diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs new file mode 100644 index 00000000000..59aee2eae68 --- /dev/null +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -0,0 +1,434 @@ +// Copyright 2023 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +use core::time::Duration; +use cumulus_primitives_core::relay_chain::Header as RelayHeader; +use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; +use futures::{channel::mpsc, prelude::*, task::Poll}; +use polkadot_service::{CollatorPair, Configuration, TaskManager}; +use sc_service::SpawnTaskHandle; +use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; +use smoldot_light::{ + platform::{ConnectError, PlatformConnection, PlatformSubstreamDirection, ReadBuffer}, + ChainId, Client, ClientConfig, JsonRpcResponses, +}; +use std::{ + collections::VecDeque, + io::IoSlice, + net::{IpAddr, SocketAddr}, + path::PathBuf, + pin::Pin, + sync::Arc, +}; +use tokio::{ + net::TcpStream, + sync::mpsc::{channel as tokio_channel, Receiver, Sender}, +}; +use tokio_util::compat::TokioAsyncReadCompatExt; + +use crate::reconnecting_ws_client::RpcDispatcherMessage; + +pub struct TokioPlatform; + +/// Implementation detail of [`AsyncStdTcpWebSocket`]. +pub struct TokioStream { + shared: Arc, + read_data_rx: Arc>>>>, + read_buffer: Option>, +} + +struct StreamShared { + guarded: parking_lot::Mutex, + write_queue_pushed: event_listener::Event, +} + +struct StreamSharedGuarded { + write_queue: VecDeque, +} +impl smoldot_light::platform::Platform for TokioPlatform { + type Delay = future::BoxFuture<'static, ()>; + type Yield = future::Ready<()>; + type Instant = std::time::Instant; + type Connection = std::convert::Infallible; + type Stream = TokioStream; + type ConnectFuture = future::BoxFuture< + 'static, + Result, ConnectError>, + >; + type StreamDataFuture<'a> = future::BoxFuture<'a, ()>; + type NextSubstreamFuture<'a> = + future::Pending>; + + fn now_from_unix_epoch() -> Duration { + // Intentionally panic if the time is configured earlier than the UNIX EPOCH. + std::time::UNIX_EPOCH.elapsed().unwrap() + } + + fn now() -> Self::Instant { + std::time::Instant::now() + } + + fn sleep(duration: Duration) -> Self::Delay { + tokio::time::sleep(duration).boxed() + } + + fn sleep_until(when: Self::Instant) -> Self::Delay { + let duration = when.saturating_duration_since(std::time::Instant::now()); + Self::sleep(duration) + } + + fn yield_after_cpu_intensive() -> Self::Yield { + // No-op. + future::ready(()) + } + + fn connect(multiaddr: &str) -> Self::ConnectFuture { + // We simply copy the address to own it. We could be more zero-cost here, but doing so + // would considerably complicate the implementation. + let multiaddr = multiaddr.to_owned(); + + Box::pin(async move { + let addr = multiaddr.parse::().map_err(|_| ConnectError { + is_bad_addr: true, + message: format!("Failed to parse address"), + })?; + + let mut iter = addr.iter().fuse(); + let proto1 = iter.next().ok_or(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + })?; + let proto2 = iter.next().ok_or(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + })?; + let proto3 = iter.next(); + + if iter.next().is_some() { + return Err(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + }) + } + + // TODO: doesn't support WebSocket secure connections + + // Ensure ahead of time that the multiaddress is supported. + let (addr, host_if_websocket) = match (&proto1, &proto2, &proto3) { + (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), None) => + (either::Left(SocketAddr::new(IpAddr::V4((*ip).into()), *port)), None), + (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), None) => + (either::Left(SocketAddr::new(IpAddr::V6((*ip).into()), *port)), None), + (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { + let addr = SocketAddr::new(IpAddr::V4((*ip).into()), *port); + (either::Left(addr), Some(addr.to_string())) + }, + (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { + let addr = SocketAddr::new(IpAddr::V6((*ip).into()), *port); + (either::Left(addr), Some(addr.to_string())) + }, + + // TODO: we don't care about the differences between Dns, Dns4, and Dns6 + ( + ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), + ProtocolRef::Tcp(port), + None, + ) => (either::Right((addr.to_string(), *port)), None), + ( + ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), + ProtocolRef::Tcp(port), + Some(ProtocolRef::Ws), + ) => (either::Right((addr.to_string(), *port)), Some(format!("{}:{}", addr, *port))), + + _ => + return Err(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + }), + }; + + let tcp_socket = match addr { + either::Left(socket_addr) => TcpStream::connect(socket_addr).await, + either::Right((dns, port)) => TcpStream::connect((&dns[..], port)).await, + }; + + if let Ok(tcp_socket) = &tcp_socket { + let _ = tcp_socket.set_nodelay(true); + } + + let mut socket = match (tcp_socket, host_if_websocket) { + (Ok(tcp_socket), Some(host)) => future::Either::Right( + websocket::websocket_client_handshake(websocket::Config { + tcp_socket: tcp_socket.compat(), + host: &host, + url: "/", + }) + .await + .map_err(|err| ConnectError { + message: format!("Failed to negotiate WebSocket: {}", err), + is_bad_addr: false, + })?, + ), + (Ok(tcp_socket), None) => future::Either::Left(tcp_socket.compat()), + (Err(err), _) => + return Err(ConnectError { + is_bad_addr: false, + message: format!("Failed to reach peer: {}", err), + }), + }; + + let shared = Arc::new(StreamShared { + guarded: parking_lot::Mutex::new(StreamSharedGuarded { + write_queue: VecDeque::with_capacity(1024), + }), + write_queue_pushed: event_listener::Event::new(), + }); + let shared_clone = shared.clone(); + + let (mut read_data_tx, read_data_rx) = mpsc::channel(2); + let mut read_buffer = vec![0; 4096]; + let mut write_queue_pushed_listener = shared.write_queue_pushed.listen(); + + // TODO: this whole code is a mess, but the Platform trait must be modified to fix it + // TODO: spawning a task per connection is necessary because the Platform trait isn't suitable for better strategies + tokio::spawn(future::poll_fn(move |cx| { + let mut lock = shared.guarded.lock(); + + loop { + match Pin::new(&mut read_data_tx).poll_ready(cx) { + Poll::Ready(Ok(())) => { + match Pin::new(&mut socket).poll_read(cx, &mut read_buffer) { + Poll::Pending => break, + Poll::Ready(result) => { + match result { + Ok(0) | Err(_) => return Poll::Ready(()), // End the task + Ok(bytes) => { + let _ = read_data_tx + .try_send(read_buffer[..bytes].to_vec()); + }, + } + }, + } + }, + Poll::Ready(Err(_)) => return Poll::Ready(()), // End the task + Poll::Pending => break, + } + } + + loop { + if lock.write_queue.is_empty() { + if let Poll::Ready(Err(_)) = Pin::new(&mut socket).poll_flush(cx) { + // End the task + return Poll::Ready(()) + } + + break + } else { + let write_queue_slices = lock.write_queue.as_slices(); + if let Poll::Ready(result) = Pin::new(&mut socket).poll_write_vectored( + cx, + &[ + IoSlice::new(write_queue_slices.0), + IoSlice::new(write_queue_slices.1), + ], + ) { + match result { + Ok(bytes) => + for _ in 0..bytes { + lock.write_queue.pop_front(); + }, + Err(_) => return Poll::Ready(()), // End the task + } + } else { + break + } + } + } + + loop { + if let Poll::Ready(()) = Pin::new(&mut write_queue_pushed_listener).poll(cx) { + write_queue_pushed_listener = shared.write_queue_pushed.listen(); + } else { + break + } + } + + Poll::Pending + })); + + Ok(PlatformConnection::SingleStreamMultistreamSelectNoiseYamux(TokioStream { + shared: shared_clone, + read_data_rx: Arc::new(parking_lot::Mutex::new(read_data_rx.peekable())), + read_buffer: Some(Vec::with_capacity(4096)), + })) + }) + } + + fn open_out_substream(c: &mut Self::Connection) { + // This function can only be called with so-called "multi-stream" connections. We never + // open such connection. + match *c {} + } + + fn next_substream(c: &'_ mut Self::Connection) -> Self::NextSubstreamFuture<'_> { + // This function can only be called with so-called "multi-stream" connections. We never + // open such connection. + match *c {} + } + + fn wait_more_data(stream: &'_ mut Self::Stream) -> Self::StreamDataFuture<'_> { + if stream.read_buffer.as_ref().map_or(true, |b| !b.is_empty()) { + return Box::pin(future::ready(())) + } + + let read_data_rx = stream.read_data_rx.clone(); + Box::pin(future::poll_fn(move |cx| { + let mut lock = read_data_rx.lock(); + Pin::new(&mut *lock).poll_peek(cx).map(|_| ()) + })) + } + + fn read_buffer(stream: &mut Self::Stream) -> ReadBuffer { + if stream.read_buffer.is_none() { + // TODO: the implementation doesn't let us differentiate between Closed and Reset + return ReadBuffer::Reset + } + + let mut lock = stream.read_data_rx.lock(); + while let Some(buf) = lock.next().now_or_never() { + match buf { + Some(b) => stream.read_buffer.as_mut().unwrap().extend(b), + None => { + stream.read_buffer = None; + return ReadBuffer::Reset + }, + } + } + + ReadBuffer::Open(stream.read_buffer.as_ref().unwrap()) + } + + fn advance_read_cursor(stream: &mut Self::Stream, bytes: usize) { + if let Some(read_buffer) = &mut stream.read_buffer { + // TODO: meh for copying + *read_buffer = read_buffer[bytes..].to_vec(); + } + } + + fn send(stream: &mut Self::Stream, data: &[u8]) { + let mut lock = stream.shared.guarded.lock(); + lock.write_queue.reserve(data.len()); + lock.write_queue.extend(data.iter().copied()); + stream.shared.write_queue_pushed.notify(usize::max_value()); + } +} + +pub async fn get_light_client( + spawner: SpawnTaskHandle, + chain_spec: &str, +) -> (smoldot_light::Client, ChainId, JsonRpcResponses) { + let config = ClientConfig { + tasks_spawner: Box::new(move |_, task| { + spawner.spawn("cumulus-relay-chain-light-client-task", None, task); + }), + system_name: env!("CARGO_PKG_NAME").to_string(), + system_version: env!("CARGO_PKG_VERSION").to_string(), + }; + let mut client: Client = Client::new(config); + + tracing::info!(target: "skunert", "Initializing light client"); + // Ask the client to connect to a chain. + let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client + .add_chain(smoldot_light::AddChainConfig { + // The most important field of the configuration is the chain specification. This is a + // JSON document containing all the information necessary for the client to connect to said + // chain. + specification: chain_spec, + + // If `true`, the chain will not be able to handle JSON-RPC requests. This can be used + // to save up some resources. + disable_json_rpc: false, + + // This field is necessary only if adding a parachain. + potential_relay_chains: core::iter::empty(), + + // After a chain has been added, it is possible to extract a "database" (in the form of a + // simple string). This database can later be passed back the next time the same chain is + // added again. + // A database with an invalid format is simply ignored by the client. + // In this example, we don't use this feature, and as such we simply pass an empty string, + // which is intentionally an invalid database content. + database_content: "", + + // The client gives the possibility to insert an opaque "user data" alongside each chain. + // This avoids having to create a separate `HashMap` in parallel of the + // client. + // In this example, this feature isn't used. The chain simply has `()`. + user_data: (), + }) + .unwrap(); + + (client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed")) +} + +pub async fn build_light_client_relay_chain( + _polkadot_config: Configuration, + task_manager: &mut TaskManager, + chain_spec_path: PathBuf, +) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { + let spec = std::fs::read_to_string(chain_spec_path) + .map_err(|e| RelayChainError::GenericError(e.to_string()))?; + let (client, chain_id, json_rpc_responses) = + get_light_client(task_manager.spawn_handle(), &spec).await; + + todo!() +} + +pub struct LightClientRpcWorker { + client_receiver: Receiver, + imported_header_listeners: Vec>, + finalized_header_listeners: Vec>, + best_header_listeners: Vec>, + smoldot_client: smoldot_light::Client, + json_rpc_responses: JsonRpcResponses, + chain_id: ChainId, +} + +impl LightClientRpcWorker { + pub fn new( + smoldot_client: smoldot_light::Client, + json_rpc_responses: JsonRpcResponses, + chain_id: ChainId, + ) -> (LightClientRpcWorker, Sender) { + let (tx, rx) = tokio_channel(100); + let worker = LightClientRpcWorker { + client_receiver: rx, + imported_header_listeners: Vec::new(), + finalized_header_listeners: Vec::new(), + best_header_listeners: Vec::new(), + smoldot_client, + json_rpc_responses, + chain_id, + }; + (worker, tx) + } + pub async fn run(mut self) { + loop { + let next_message = self.client_receiver.recv().await; + tracing::info!(target: "skunert", "Received new message! {next_message:?}"); + } + } +} diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index 3414dd652c6..bd367e6854a 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -37,7 +37,6 @@ use jsonrpsee::{ ws_client::WsClientBuilder, }; use lru::LruCache; -use polkadot_service::TaskManager; use std::{num::NonZeroUsize, sync::Arc}; use tokio::sync::mpsc::{ channel as tokio_channel, Receiver as TokioReceiver, Sender as TokioSender, @@ -49,7 +48,7 @@ const LOG_TARGET: &str = "reconnecting-websocket-client"; /// Messages for communication between [`ReconnectingWsClient`] and [`ReconnectingWebsocketWorker`]. #[derive(Debug)] -enum RpcDispatcherMessage { +pub enum RpcDispatcherMessage { RegisterBestHeadListener(Sender), RegisterImportListener(Sender), RegisterFinalizationListener(Sender), @@ -66,15 +65,9 @@ pub struct ReconnectingWsClient { impl ReconnectingWsClient { /// Create a new websocket client frontend. - pub async fn new(urls: Vec, task_manager: &mut TaskManager) -> RelayChainResult { + pub async fn new(sender: TokioSender) -> RelayChainResult { tracing::debug!(target: LOG_TARGET, "Instantiating reconnecting websocket client"); - let (worker, sender) = ReconnectingWebsocketWorker::new(urls).await; - - task_manager - .spawn_essential_handle() - .spawn("relay-chain-rpc-worker", None, worker.run()); - Ok(Self { to_worker_channel: sender }) } } @@ -143,7 +136,7 @@ impl ReconnectingWsClient { } /// Worker that should be used in combination with [`RelayChainRpcClient`]. Must be polled to distribute header notifications to listeners. -struct ReconnectingWebsocketWorker { +pub struct ReconnectingWebsocketWorker { ws_urls: Vec, /// Communication channel with the RPC client client_receiver: TokioReceiver, @@ -322,7 +315,7 @@ enum ConnectionStatus { impl ReconnectingWebsocketWorker { /// Create new worker. Returns the worker and a channel to register new listeners. - async fn new( + pub async fn new( urls: Vec, ) -> (ReconnectingWebsocketWorker, TokioSender) { let (tx, rx) = tokio_channel(100); @@ -384,7 +377,7 @@ impl ReconnectingWebsocketWorker { /// If an error occurs during sending, the receiver has been closed and we remove the sender from the list. /// - Find a new valid RPC server to connect to in case the websocket connection is terminated. /// If the worker is not able to connec to an RPC server from the list, the worker shuts down. - async fn run(mut self) { + pub async fn run(mut self) { let mut pending_requests = FuturesUnordered::new(); let urls = std::mem::take(&mut self.ws_urls); diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index 5b419d4124d..dcebf2b07ac 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -14,7 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use crate::reconnecting_ws_client::ReconnectingWsClient; +use std::path::PathBuf; + +use crate::{ + light_client, + reconnecting_ws_client::{ReconnectingWebsocketWorker, ReconnectingWsClient}, +}; use cumulus_primitives_core::{ relay_chain::{ vstaging::ExecutorParams, CandidateCommitments, CandidateEvent, CandidateHash, @@ -48,12 +53,40 @@ pub struct RelayChainRpcClient { ws_client: ReconnectingWsClient, } +pub async fn create_client_and_start_light_client_worker( + chain_spec_path: PathBuf, + task_manager: &mut polkadot_service::TaskManager, +) -> RelayChainResult { + let spec = std::fs::read_to_string(chain_spec_path) + .map_err(|e| RelayChainError::GenericError(e.to_string()))?; + let (client, chain_id, json_rpc_responses) = + light_client::get_light_client(task_manager.spawn_handle(), &spec).await; + let (worker, sender) = + light_client::LightClientRpcWorker::new(client, json_rpc_responses, chain_id); + + task_manager + .spawn_essential_handle() + .spawn("relay-chain-rpc-worker", None, worker.run()); + + let ws_client = ReconnectingWsClient::new(sender).await?; + + let client = RelayChainRpcClient::new(ws_client).await?; + + Ok(client) +} + /// Entry point to create [`RelayChainRpcClient`] and start a worker that distributes notifications. pub async fn create_client_and_start_worker( urls: Vec, task_manager: &mut TaskManager, ) -> RelayChainResult { - let ws_client = ReconnectingWsClient::new(urls, task_manager).await?; + let (worker, sender) = ReconnectingWebsocketWorker::new(urls).await; + + task_manager + .spawn_essential_handle() + .spawn("relay-chain-rpc-worker", None, worker.run()); + + let ws_client = ReconnectingWsClient::new(sender).await?; let client = RelayChainRpcClient::new(ws_client).await?; diff --git a/client/service/Cargo.toml b/client/service/Cargo.toml index bbef86c8447..b4ffa8b744e 100644 --- a/client/service/Cargo.toml +++ b/client/service/Cargo.toml @@ -39,4 +39,3 @@ cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = { path = "../relay-chain-interface" } cumulus-relay-chain-inprocess-interface = { path = "../relay-chain-inprocess-interface" } cumulus-relay-chain-minimal-node = { path = "../relay-chain-minimal-node" } -cumulus-relay-chain-light-client-interface = { path = "../relay-chain-light-client-interface" } diff --git a/client/service/src/lib.rs b/client/service/src/lib.rs index d94a7d151f7..9585d0576ea 100644 --- a/client/service/src/lib.rs +++ b/client/service/src/lib.rs @@ -25,8 +25,9 @@ use cumulus_client_pov_recovery::{PoVRecovery, RecoveryDelayRange, RecoveryHandl use cumulus_primitives_core::{CollectCollationInfo, ParaId}; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_light_client_interface::build_light_client_relay_chain; -use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; +use cumulus_relay_chain_minimal_node::{ + build_minimal_relay_chain_node, build_minimal_relay_chain_node_light_client, +}; use futures::{ channel::{mpsc, oneshot}, FutureExt, StreamExt, @@ -265,8 +266,9 @@ pub async fn build_relay_chain_interface( collator_options.relay_chain_rpc_urls, ) .await - } else if collator_options.embedded_light_client { - build_light_client_relay_chain(polkadot_config, task_manager).await + } else if let Some(chain_spec_path) = collator_options.embedded_light_client { + build_minimal_relay_chain_node_light_client(polkadot_config, task_manager, chain_spec_path) + .await } else { build_inprocess_relay_chain( polkadot_config, diff --git a/parachain-template/node/Cargo.toml b/parachain-template/node/Cargo.toml index d64ab0702ae..fb46459f25c 100644 --- a/parachain-template/node/Cargo.toml +++ b/parachain-template/node/Cargo.toml @@ -55,7 +55,7 @@ substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "master" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "master", features = ["rococo-native"] } polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "master" } xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" } diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index 60952623be1..4d7c67d1906 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -24,6 +24,7 @@ mod genesis; use std::{ future::Future, net::{IpAddr, Ipv4Addr, SocketAddr}, + path::PathBuf, time::Duration, }; use url::Url; @@ -487,7 +488,7 @@ pub struct TestNodeBuilder { storage_update_func_relay_chain: Option>, consensus: Consensus, relay_chain_full_node_url: Vec, - embedded_light_client: bool, + embedded_light_client: Option, } impl TestNodeBuilder { @@ -510,7 +511,7 @@ impl TestNodeBuilder { storage_update_func_relay_chain: None, consensus: Consensus::RelayChain, relay_chain_full_node_url: vec![], - embedded_light_client: false, + embedded_light_client: None, } } From efc9ebc9ceff27ee6e6b0e7271aa60dd09c61392 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 27 Feb 2023 20:40:16 +0100 Subject: [PATCH 03/44] First working version --- Cargo.lock | 45 +-- client/relay-chain-rpc-interface/Cargo.toml | 5 +- .../src/light_client.rs | 260 ++++++++++++++++-- 3 files changed, 270 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 54ef9f8accf..9ddbe8a9504 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -556,6 +556,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + [[package]] name = "base64ct" version = "1.5.2" @@ -663,9 +669,9 @@ dependencies = [ [[package]] name = "bip39" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e89470017230c38e52b82b3ee3f530db1856ba1d434e3a67a3456a8a8dec5f" +checksum = "f5b9d9748b5770d1539657653dc5ac3cd9353549e74238dc0d96c22919128b94" dependencies = [ "bitcoin_hashes", "rand_core 0.4.2", @@ -673,9 +679,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.9.7" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ce18265ec2324ad075345d5814fbeed4f41f0a660055dc78840b74d19b874b1" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" [[package]] name = "bitflags" @@ -2478,6 +2484,7 @@ dependencies = [ "sc-client-api", "sc-rpc-api", "sc-service", + "sc-tracing", "serde", "serde_json", "smoldot", @@ -5264,7 +5271,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -7581,7 +7588,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" dependencies = [ - "base64", + "base64 0.13.1", ] [[package]] @@ -10081,7 +10088,7 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ - "base64", + "base64 0.13.1", "log", "ring", "sct 0.6.1", @@ -10118,7 +10125,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" dependencies = [ - "base64", + "base64 0.13.1", ] [[package]] @@ -11749,7 +11756,7 @@ dependencies = [ "arrayvec 0.7.2", "async-std", "atomic", - "base64", + "base64 0.21.0", "bip39", "blake2-rfc", "bs58", @@ -11790,7 +11797,7 @@ dependencies = [ "sqlite", "tiny-keccak", "twox-hash", - "wasmi 0.26.1", + "wasmi 0.27.0", "wasmtime", ] @@ -11809,7 +11816,7 @@ dependencies = [ "hex", "itertools", "log", - "lru 0.8.1", + "lru 0.9.0", "parking_lot 0.12.1", "rand 0.8.5", "serde", @@ -11857,7 +11864,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64", + "base64 0.13.1", "bytes", "flate2", "futures", @@ -12880,7 +12887,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25" dependencies = [ - "base64", + "base64 0.13.1", "crc", "lazy_static", "md-5", @@ -13749,7 +13756,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8" dependencies = [ "async-trait", - "base64", + "base64 0.13.1", "futures", "log", "md-5", @@ -14149,9 +14156,9 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.26.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35653e9f82eacc22583f303fa34f4c2d4efdee6521e70b46b6ca4c68c0e432d8" +checksum = "fd3fdd2e118c188a4d070df4f7690295243f79f88a5425caf805fc7053c6547c" dependencies = [ "spin 0.9.4", "wasmi_arena 0.4.0", @@ -14288,7 +14295,7 @@ version = "5.0.0" source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" dependencies = [ "anyhow", - "base64", + "base64 0.13.1", "bincode", "directories-next", "file-per-thread-logger", @@ -15192,7 +15199,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" dependencies = [ "asn1-rs 0.3.1", - "base64", + "base64 0.13.1", "data-encoding", "der-parser 7.0.0", "lazy_static", @@ -15211,7 +15218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ "asn1-rs 0.5.1", - "base64", + "base64 0.13.1", "data-encoding", "der-parser 8.1.0", "lazy_static", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index d9655dd623e..5dd8ddb50ca 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -20,6 +20,7 @@ sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } tokio = { version = "1.25.0", features = ["sync"] } tokio-util = { version = "0.7.7", features = ["compat"] } @@ -34,8 +35,8 @@ serde_json = "1.0.93" serde = "1.0.152" lru = "0.9.0" -smoldot = { path = "../../../smoldot" } -smoldot-light = { path = "../../../smoldot/bin/light-base" } +smoldot = { path = "../../../smoldot/lib" } +smoldot-light = { path = "../../../smoldot/light-base" } itertools = "0.10.5" parking_lot = "0.12.1" diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs index 59aee2eae68..485cafdb65e 100644 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -17,16 +17,33 @@ use core::time::Duration; use cumulus_primitives_core::relay_chain::Header as RelayHeader; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; -use futures::{channel::mpsc, prelude::*, task::Poll}; +use futures::{ + channel::{ + mpsc::{self, Sender}, + oneshot::Sender as OneshotSender, + }, + prelude::*, + task::Poll, +}; +use jsonrpsee::{ + core::{error::Error as JsonRpseeError, params::ArrayParams, traits::ToRpcParams}, + rpc_params, + types::{ + response::SubscriptionResponse, Id, NotificationSer, RequestSer, SubscriptionId, + TwoPointZero, + }, +}; use polkadot_service::{CollatorPair, Configuration, TaskManager}; use sc_service::SpawnTaskHandle; +use serde::{Deserialize, Serialize}; +use serde_json::{from_str, Value as JsonValue}; use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; use smoldot_light::{ platform::{ConnectError, PlatformConnection, PlatformSubstreamDirection, ReadBuffer}, ChainId, Client, ClientConfig, JsonRpcResponses, }; use std::{ - collections::VecDeque, + collections::{HashMap, VecDeque}, io::IoSlice, net::{IpAddr, SocketAddr}, path::PathBuf, @@ -35,12 +52,14 @@ use std::{ }; use tokio::{ net::TcpStream, - sync::mpsc::{channel as tokio_channel, Receiver, Sender}, + sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}, }; use tokio_util::compat::TokioAsyncReadCompatExt; use crate::reconnecting_ws_client::RpcDispatcherMessage; +const LOG_TARGET: &str = "rpc-light-client-worker"; + pub struct TokioPlatform; /// Implementation detail of [`AsyncStdTcpWebSocket`]. @@ -384,19 +403,6 @@ pub async fn get_light_client( (client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed")) } -pub async fn build_light_client_relay_chain( - _polkadot_config: Configuration, - task_manager: &mut TaskManager, - chain_spec_path: PathBuf, -) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { - let spec = std::fs::read_to_string(chain_spec_path) - .map_err(|e| RelayChainError::GenericError(e.to_string()))?; - let (client, chain_id, json_rpc_responses) = - get_light_client(task_manager.spawn_handle(), &spec).await; - - todo!() -} - pub struct LightClientRpcWorker { client_receiver: Receiver, imported_header_listeners: Vec>, @@ -407,12 +413,149 @@ pub struct LightClientRpcWorker { chain_id: ChainId, } +fn submit_request( + client: &mut smoldot_light::Client, + chain_id: ChainId, + method: String, + params: ArrayParams, + id: u64, +) { + let request = serde_json::to_string(&RequestSer::owned( + jsonrpsee::types::Id::Number(id), + method, + params.to_rpc_params().expect("this should work"), + )) + .expect("Serialization failed"); + tracing::info!(target: LOG_TARGET, "Transforming request into string: {request}"); + client.json_rpc_request(request, chain_id).unwrap(); +} + +enum Subscriptions { + AllHead, + NewHead, + FinalizedHead, +} + +fn distribute_header(header: RelayHeader, senders: &mut Vec>) { + senders.retain_mut(|e| { + match e.try_send(header.clone()) { + // Receiver has been dropped, remove Sender from list. + Err(error) if error.is_disconnected() => false, + // Channel is full. This should not happen. + // TODO: Improve error handling here + // https://github.com/paritytech/cumulus/issues/1482 + Err(error) => { + tracing::error!(target: LOG_TARGET, ?error, "Event distribution channel has reached its limit. This can lead to missed notifications."); + true + }, + _ => true, + } + }); +} + +fn handle_notification_response( + subscription: SubscriptionResponse, + subscription_lookup: &mut HashMap, + all_head: &mut Vec>, + new_head: &mut Vec>, + finalized_head: &mut Vec>, +) { + tracing::info!(target: LOG_TARGET, size = ?subscription_lookup.len(), "Subscription lookup size"); + if let SubscriptionId::Str(id) = subscription.params.subscription { + let id = id.to_string(); + tracing::info!(target: LOG_TARGET, id, "Looking for"); + match subscription_lookup.get(&id) { + Some(Subscriptions::AllHead) => { + tracing::info!(target: LOG_TARGET, what = ?subscription.params.result, "received all notification"); + distribute_header(subscription.params.result, all_head) + }, + Some(Subscriptions::FinalizedHead) => { + tracing::info!(target: LOG_TARGET, what = ?subscription.params.result, "received finalized notification"); + distribute_header(subscription.params.result, finalized_head) + }, + Some(Subscriptions::NewHead) => { + tracing::info!(target: LOG_TARGET, what = ?subscription.params.result, "received new notification"); + distribute_header(subscription.params.result, new_head) + }, + None => { + tracing::error!(target: LOG_TARGET, ?id, "received notification with unknown id"); + }, + } + } +} + +fn handle_single_response( + response: jsonrpsee::types::Response, + lookup: &mut HashMap, + subscription_lookup: &mut HashMap, +) { + let id = match response.id { + jsonrpsee::types::params::Id::Number(num) => num, + _ => return, + }; + + match lookup.remove(&id) { + Some(SubscriptionType::Request(response_sender)) => { + tracing::info!(target: LOG_TARGET, "found response sender for request with id: {id}"); + response_sender.send(Ok(response.result)).expect("Should send response"); + }, + Some(SubscriptionType::PendingAllHeadSubscription) => { + let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); + tracing::info!(target: LOG_TARGET, sub_id, "allHead stream initialized"); + subscription_lookup.insert(sub_id, Subscriptions::AllHead); + }, + Some(SubscriptionType::PendingFinalizedHeadSubscription) => { + let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); + tracing::info!(target: LOG_TARGET, sub_id, "finalizedHead stream initialized"); + subscription_lookup.insert(sub_id, Subscriptions::FinalizedHead); + }, + Some(SubscriptionType::PendingNewHeadSubscription) => { + let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); + tracing::info!(target: LOG_TARGET, sub_id, "newHead stream initialized"); + subscription_lookup.insert(sub_id, Subscriptions::NewHead); + }, + None => {}, + } +} + +fn handle_response( + response: String, + lookup: &mut HashMap, + subscription_lookup: &mut HashMap, + all_head: &mut Vec>, + new_head: &mut Vec>, + finalized_head: &mut Vec>, +) -> Result<(), ()> { + tracing::info!(target: LOG_TARGET, "Got response {response:?}"); + if let Ok(response) = from_str::>(&response) { + handle_single_response(response, lookup, subscription_lookup); + } else if let Ok(subscription) = from_str::>(&response) { + handle_notification_response( + subscription, + subscription_lookup, + all_head, + new_head, + finalized_head, + ); + } else { + tracing::error!(target: LOG_TARGET, "Received unexpected response"); + }; + Err(()) +} + +enum SubscriptionType { + Request(OneshotSender>), + PendingNewHeadSubscription, + PendingAllHeadSubscription, + PendingFinalizedHeadSubscription, +} + impl LightClientRpcWorker { pub fn new( smoldot_client: smoldot_light::Client, json_rpc_responses: JsonRpcResponses, chain_id: ChainId, - ) -> (LightClientRpcWorker, Sender) { + ) -> (LightClientRpcWorker, TokioSender) { let (tx, rx) = tokio_channel(100); let worker = LightClientRpcWorker { client_receiver: rx, @@ -425,10 +568,89 @@ impl LightClientRpcWorker { }; (worker, tx) } + + #[sc_tracing::logging::prefix_logs_with("Light Client")] pub async fn run(mut self) { + let mut counter: u64 = 0; + let mut id_to_request_sender_mapping = HashMap::new(); + let mut id_to_subscription_mapping = HashMap::new(); + { + tracing::info!(target: LOG_TARGET, "Subscribing to all heads stream."); + submit_request( + &mut self.smoldot_client, + self.chain_id, + "chain_subscribeAllHeads".to_string(), + rpc_params![], + counter, + ); + id_to_request_sender_mapping + .insert(counter, SubscriptionType::PendingAllHeadSubscription); + counter += 1; + } + { + tracing::info!(target: LOG_TARGET, "Subscribing to new heads stream."); + submit_request( + &mut self.smoldot_client, + self.chain_id, + "chain_subscribeNewHeads".to_string(), + rpc_params![], + counter, + ); + id_to_request_sender_mapping + .insert(counter, SubscriptionType::PendingNewHeadSubscription); + counter += 1; + } + { + tracing::info!(target: LOG_TARGET, "Subscribing to finalized heads stream."); + submit_request( + &mut self.smoldot_client, + self.chain_id, + "chain_subscribeFinalizedHeads".to_string(), + rpc_params![], + counter, + ); + id_to_request_sender_mapping + .insert(counter, SubscriptionType::PendingFinalizedHeadSubscription); + counter += 1; + } + loop { - let next_message = self.client_receiver.recv().await; - tracing::info!(target: "skunert", "Received new message! {next_message:?}"); + tokio::select! { + evt = self.client_receiver.recv() => match evt { + Some(RpcDispatcherMessage::RegisterBestHeadListener(tx)) => { + self.best_header_listeners.push(tx); + }, + Some(RpcDispatcherMessage::RegisterImportListener(tx)) => { + self.imported_header_listeners.push(tx) + }, + Some(RpcDispatcherMessage::RegisterFinalizationListener(tx)) => { + self.finalized_header_listeners.push(tx) + }, + Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { + id_to_request_sender_mapping.insert(counter, SubscriptionType::Request(response_sender)); + submit_request(&mut self.smoldot_client, self.chain_id, method, params, counter); + counter += 1; + }, + None => { + tracing::error!(target: LOG_TARGET, "RPC client receiver closed. Stopping RPC Worker."); + return; + } + }, + response = self.json_rpc_responses.next() => { + if let Some(response) = response { + handle_response(response, &mut id_to_request_sender_mapping, &mut id_to_subscription_mapping, &mut self.imported_header_listeners, &mut self.best_header_listeners, &mut self.finalized_header_listeners); + } + } + } } } } + +#[derive(Deserialize)] +#[serde(untagged)] +enum LightClientRPCElement<'a> { + #[serde(borrow)] + NotificationRequest(jsonrpsee::types::Request<'a>), + #[serde(borrow)] + Response(jsonrpsee::types::Response<'a, JsonValue>), +} From a316e51286c4077224cb3e3c0db91bd00b88f0c8 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 28 Feb 2023 18:41:54 +0100 Subject: [PATCH 04/44] Clean up --- client/cli/src/lib.rs | 1 + client/relay-chain-rpc-interface/src/lib.rs | 3 + .../src/light_client.rs | 217 +++++++++--------- 3 files changed, 115 insertions(+), 106 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index cc46d9c1cbf..8083fdf1123 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -329,6 +329,7 @@ pub struct CollatorOptions { /// Location of relay chain full node pub relay_chain_rpc_urls: Vec, + /// EXPERIMENTAL: Use embedded light client for the relay chain pub embedded_light_client: Option, } diff --git a/client/relay-chain-rpc-interface/src/lib.rs b/client/relay-chain-rpc-interface/src/lib.rs index e2bf9e05389..da04b3445e6 100644 --- a/client/relay-chain-rpc-interface/src/lib.rs +++ b/client/relay-chain-rpc-interface/src/lib.rs @@ -44,6 +44,9 @@ pub use rpc_client::{ }; const TIMEOUT_IN_SECONDS: u64 = 6; +const FINALIZED_HEADS_RPC_NAME: &str = "chain_subscribeFinalizedHeads"; +const ALL_HEADS_RPC_NAME: &str = "chain_subscribeNewHeads"; +const NEW_HEADS_RPC_NAME: &str = "chain_subscribeAllHeads"; /// RelayChainRpcInterface is used to interact with a full node that is running locally /// in the same process. diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs index 485cafdb65e..84c37bda48e 100644 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -16,7 +16,6 @@ use core::time::Duration; use cumulus_primitives_core::relay_chain::Header as RelayHeader; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; use futures::{ channel::{ mpsc::{self, Sender}, @@ -28,14 +27,10 @@ use futures::{ use jsonrpsee::{ core::{error::Error as JsonRpseeError, params::ArrayParams, traits::ToRpcParams}, rpc_params, - types::{ - response::SubscriptionResponse, Id, NotificationSer, RequestSer, SubscriptionId, - TwoPointZero, - }, + types::{response::SubscriptionResponse, RequestSer, SubscriptionId}, }; -use polkadot_service::{CollatorPair, Configuration, TaskManager}; use sc_service::SpawnTaskHandle; -use serde::{Deserialize, Serialize}; +use serde::Deserialize; use serde_json::{from_str, Value as JsonValue}; use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; use smoldot_light::{ @@ -46,7 +41,6 @@ use std::{ collections::{HashMap, VecDeque}, io::IoSlice, net::{IpAddr, SocketAddr}, - path::PathBuf, pin::Pin, sync::Arc, }; @@ -56,7 +50,10 @@ use tokio::{ }; use tokio_util::compat::TokioAsyncReadCompatExt; -use crate::reconnecting_ws_client::RpcDispatcherMessage; +use crate::{ + reconnecting_ws_client::RpcDispatcherMessage, ALL_HEADS_RPC_NAME, FINALIZED_HEADS_RPC_NAME, + NEW_HEADS_RPC_NAME, +}; const LOG_TARGET: &str = "rpc-light-client-worker"; @@ -411,23 +408,9 @@ pub struct LightClientRpcWorker { smoldot_client: smoldot_light::Client, json_rpc_responses: JsonRpcResponses, chain_id: ChainId, -} - -fn submit_request( - client: &mut smoldot_light::Client, - chain_id: ChainId, - method: String, - params: ArrayParams, - id: u64, -) { - let request = serde_json::to_string(&RequestSer::owned( - jsonrpsee::types::Id::Number(id), - method, - params.to_rpc_params().expect("this should work"), - )) - .expect("Serialization failed"); - tracing::info!(target: LOG_TARGET, "Transforming request into string: {request}"); - client.json_rpc_request(request, chain_id).unwrap(); + id_request_mapping: HashMap, + id_subscription_mapping: HashMap, + current_id: u64, } enum Subscriptions { @@ -463,18 +446,17 @@ fn handle_notification_response( tracing::info!(target: LOG_TARGET, size = ?subscription_lookup.len(), "Subscription lookup size"); if let SubscriptionId::Str(id) = subscription.params.subscription { let id = id.to_string(); - tracing::info!(target: LOG_TARGET, id, "Looking for"); match subscription_lookup.get(&id) { Some(Subscriptions::AllHead) => { - tracing::info!(target: LOG_TARGET, what = ?subscription.params.result, "received all notification"); + tracing::info!(target: LOG_TARGET, "received all notification"); distribute_header(subscription.params.result, all_head) }, Some(Subscriptions::FinalizedHead) => { - tracing::info!(target: LOG_TARGET, what = ?subscription.params.result, "received finalized notification"); + tracing::info!(target: LOG_TARGET, "received finalized notification"); distribute_header(subscription.params.result, finalized_head) }, Some(Subscriptions::NewHead) => { - tracing::info!(target: LOG_TARGET, what = ?subscription.params.result, "received new notification"); + tracing::info!(target: LOG_TARGET, "received new notification"); distribute_header(subscription.params.result, new_head) }, None => { @@ -486,7 +468,7 @@ fn handle_notification_response( fn handle_single_response( response: jsonrpsee::types::Response, - lookup: &mut HashMap, + lookup: &mut HashMap, subscription_lookup: &mut HashMap, ) { let id = match response.id { @@ -495,21 +477,20 @@ fn handle_single_response( }; match lookup.remove(&id) { - Some(SubscriptionType::Request(response_sender)) => { - tracing::info!(target: LOG_TARGET, "found response sender for request with id: {id}"); + Some(RequestType::Request(response_sender)) => { response_sender.send(Ok(response.result)).expect("Should send response"); }, - Some(SubscriptionType::PendingAllHeadSubscription) => { + Some(RequestType::PendingAllHeadSubscription) => { let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); tracing::info!(target: LOG_TARGET, sub_id, "allHead stream initialized"); subscription_lookup.insert(sub_id, Subscriptions::AllHead); }, - Some(SubscriptionType::PendingFinalizedHeadSubscription) => { + Some(RequestType::PendingFinalizedHeadSubscription) => { let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); tracing::info!(target: LOG_TARGET, sub_id, "finalizedHead stream initialized"); subscription_lookup.insert(sub_id, Subscriptions::FinalizedHead); }, - Some(SubscriptionType::PendingNewHeadSubscription) => { + Some(RequestType::PendingNewHeadSubscription) => { let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); tracing::info!(target: LOG_TARGET, sub_id, "newHead stream initialized"); subscription_lookup.insert(sub_id, Subscriptions::NewHead); @@ -518,32 +499,7 @@ fn handle_single_response( } } -fn handle_response( - response: String, - lookup: &mut HashMap, - subscription_lookup: &mut HashMap, - all_head: &mut Vec>, - new_head: &mut Vec>, - finalized_head: &mut Vec>, -) -> Result<(), ()> { - tracing::info!(target: LOG_TARGET, "Got response {response:?}"); - if let Ok(response) = from_str::>(&response) { - handle_single_response(response, lookup, subscription_lookup); - } else if let Ok(subscription) = from_str::>(&response) { - handle_notification_response( - subscription, - subscription_lookup, - all_head, - new_head, - finalized_head, - ); - } else { - tracing::error!(target: LOG_TARGET, "Received unexpected response"); - }; - Err(()) -} - -enum SubscriptionType { +enum RequestType { Request(OneshotSender>), PendingNewHeadSubscription, PendingAllHeadSubscription, @@ -565,54 +521,101 @@ impl LightClientRpcWorker { smoldot_client, json_rpc_responses, chain_id, + id_subscription_mapping: Default::default(), + id_request_mapping: Default::default(), + current_id: 0, }; (worker, tx) } - #[sc_tracing::logging::prefix_logs_with("Light Client")] - pub async fn run(mut self) { - let mut counter: u64 = 0; - let mut id_to_request_sender_mapping = HashMap::new(); - let mut id_to_subscription_mapping = HashMap::new(); - { - tracing::info!(target: LOG_TARGET, "Subscribing to all heads stream."); - submit_request( - &mut self.smoldot_client, - self.chain_id, - "chain_subscribeAllHeads".to_string(), - rpc_params![], - counter, + fn handle_response(&mut self, response: String) -> Result<(), &str> { + tracing::debug!(target: LOG_TARGET, "Got response {response:?}"); + if let Ok(response) = from_str::>(&response) { + handle_single_response( + response, + &mut self.id_request_mapping, + &mut self.id_subscription_mapping, ); - id_to_request_sender_mapping - .insert(counter, SubscriptionType::PendingAllHeadSubscription); - counter += 1; - } - { - tracing::info!(target: LOG_TARGET, "Subscribing to new heads stream."); - submit_request( - &mut self.smoldot_client, - self.chain_id, - "chain_subscribeNewHeads".to_string(), - rpc_params![], - counter, + Ok(()) + } else if let Ok(subscription) = from_str::>(&response) { + handle_notification_response( + subscription, + &mut self.id_subscription_mapping, + &mut self.imported_header_listeners, + &mut self.best_header_listeners, + &mut self.finalized_header_listeners, ); - id_to_request_sender_mapping - .insert(counter, SubscriptionType::PendingNewHeadSubscription); - counter += 1; + Ok(()) + } else { + Err("Received unexpected response") } - { - tracing::info!(target: LOG_TARGET, "Subscribing to finalized heads stream."); - submit_request( - &mut self.smoldot_client, - self.chain_id, - "chain_subscribeFinalizedHeads".to_string(), - rpc_params![], - counter, + } + + fn submit_request( + &mut self, + method: &str, + params: ArrayParams, + request_type: RequestType, + ) -> Result<(), String> { + self.current_id += 1; + let request = serde_json::to_string(&RequestSer::owned( + jsonrpsee::types::Id::Number(self.current_id), + method, + params.to_rpc_params().expect("this should work"), + )) + .map_err(|e| e.to_string())?; + + self.smoldot_client + .json_rpc_request(request, self.chain_id) + .map_err(|e| e.to_string())?; + self.id_request_mapping.insert(self.current_id, request_type); + Ok(()) + } + + pub async fn run(mut self) { + tokio::time::sleep(Duration::from_secs(20)).await; + + if let Err(message) = self.submit_request( + ALL_HEADS_RPC_NAME, + rpc_params![], + RequestType::PendingAllHeadSubscription, + ) { + tracing::error!( + target: LOG_TARGET, + message, + sub = ALL_HEADS_RPC_NAME, + "Unable to request subscription." ); - id_to_request_sender_mapping - .insert(counter, SubscriptionType::PendingFinalizedHeadSubscription); - counter += 1; - } + return + }; + + if let Err(message) = self.submit_request( + NEW_HEADS_RPC_NAME, + rpc_params![], + RequestType::PendingNewHeadSubscription, + ) { + tracing::error!( + target: LOG_TARGET, + message, + sub = NEW_HEADS_RPC_NAME, + "Unable to request subscription." + ); + return + }; + + if let Err(message) = self.submit_request( + FINALIZED_HEADS_RPC_NAME, + rpc_params![], + RequestType::PendingFinalizedHeadSubscription, + ) { + tracing::error!( + target: LOG_TARGET, + message, + sub = FINALIZED_HEADS_RPC_NAME, + "Unable to request subscription." + ); + return + }; loop { tokio::select! { @@ -627,9 +630,9 @@ impl LightClientRpcWorker { self.finalized_header_listeners.push(tx) }, Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { - id_to_request_sender_mapping.insert(counter, SubscriptionType::Request(response_sender)); - submit_request(&mut self.smoldot_client, self.chain_id, method, params, counter); - counter += 1; + if let Err(message) = self.submit_request(&method, params, RequestType::Request(response_sender)) { + tracing::debug!(target: LOG_TARGET, message, "Request failed."); + }; }, None => { tracing::error!(target: LOG_TARGET, "RPC client receiver closed. Stopping RPC Worker."); @@ -638,7 +641,9 @@ impl LightClientRpcWorker { }, response = self.json_rpc_responses.next() => { if let Some(response) = response { - handle_response(response, &mut id_to_request_sender_mapping, &mut id_to_subscription_mapping, &mut self.imported_header_listeners, &mut self.best_header_listeners, &mut self.finalized_header_listeners); + if let Err(message) = self.handle_response(response) { + tracing::debug!(target: LOG_TARGET, message, "Unable to handle response.") + } } } } From 5c0af7e7fd1600bbcdfa406270e569b0670fa4ff Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 28 Feb 2023 19:38:24 +0100 Subject: [PATCH 05/44] Remove unwanted logs --- .../src/light_client.rs | 169 +++++++++--------- 1 file changed, 86 insertions(+), 83 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs index 84c37bda48e..304687c161e 100644 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -38,6 +38,7 @@ use smoldot_light::{ ChainId, Client, ClientConfig, JsonRpcResponses, }; use std::{ + borrow::Borrow, collections::{HashMap, VecDeque}, io::IoSlice, net::{IpAddr, SocketAddr}, @@ -365,7 +366,6 @@ pub async fn get_light_client( }; let mut client: Client = Client::new(config); - tracing::info!(target: "skunert", "Initializing light client"); // Ask the client to connect to a chain. let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client .add_chain(smoldot_light::AddChainConfig { @@ -436,69 +436,6 @@ fn distribute_header(header: RelayHeader, senders: &mut Vec> }); } -fn handle_notification_response( - subscription: SubscriptionResponse, - subscription_lookup: &mut HashMap, - all_head: &mut Vec>, - new_head: &mut Vec>, - finalized_head: &mut Vec>, -) { - tracing::info!(target: LOG_TARGET, size = ?subscription_lookup.len(), "Subscription lookup size"); - if let SubscriptionId::Str(id) = subscription.params.subscription { - let id = id.to_string(); - match subscription_lookup.get(&id) { - Some(Subscriptions::AllHead) => { - tracing::info!(target: LOG_TARGET, "received all notification"); - distribute_header(subscription.params.result, all_head) - }, - Some(Subscriptions::FinalizedHead) => { - tracing::info!(target: LOG_TARGET, "received finalized notification"); - distribute_header(subscription.params.result, finalized_head) - }, - Some(Subscriptions::NewHead) => { - tracing::info!(target: LOG_TARGET, "received new notification"); - distribute_header(subscription.params.result, new_head) - }, - None => { - tracing::error!(target: LOG_TARGET, ?id, "received notification with unknown id"); - }, - } - } -} - -fn handle_single_response( - response: jsonrpsee::types::Response, - lookup: &mut HashMap, - subscription_lookup: &mut HashMap, -) { - let id = match response.id { - jsonrpsee::types::params::Id::Number(num) => num, - _ => return, - }; - - match lookup.remove(&id) { - Some(RequestType::Request(response_sender)) => { - response_sender.send(Ok(response.result)).expect("Should send response"); - }, - Some(RequestType::PendingAllHeadSubscription) => { - let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); - tracing::info!(target: LOG_TARGET, sub_id, "allHead stream initialized"); - subscription_lookup.insert(sub_id, Subscriptions::AllHead); - }, - Some(RequestType::PendingFinalizedHeadSubscription) => { - let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); - tracing::info!(target: LOG_TARGET, sub_id, "finalizedHead stream initialized"); - subscription_lookup.insert(sub_id, Subscriptions::FinalizedHead); - }, - Some(RequestType::PendingNewHeadSubscription) => { - let sub_id = response.result.as_str().expect("id hsould be a string").to_string(); - tracing::info!(target: LOG_TARGET, sub_id, "newHead stream initialized"); - subscription_lookup.insert(sub_id, Subscriptions::NewHead); - }, - None => {}, - } -} - enum RequestType { Request(OneshotSender>), PendingNewHeadSubscription, @@ -515,9 +452,9 @@ impl LightClientRpcWorker { let (tx, rx) = tokio_channel(100); let worker = LightClientRpcWorker { client_receiver: rx, - imported_header_listeners: Vec::new(), - finalized_header_listeners: Vec::new(), - best_header_listeners: Vec::new(), + imported_header_listeners: Default::default(), + finalized_header_listeners: Default::default(), + best_header_listeners: Default::default(), smoldot_client, json_rpc_responses, chain_id, @@ -528,26 +465,91 @@ impl LightClientRpcWorker { (worker, tx) } - fn handle_response(&mut self, response: String) -> Result<(), &str> { - tracing::debug!(target: LOG_TARGET, "Got response {response:?}"); + fn handle_single_response( + &mut self, + response: jsonrpsee::types::Response, + ) -> Result<(), String> { + let id = match response.id { + jsonrpsee::types::params::Id::Number(num) => num, + _ => return Err("We only accept numbered IDs".to_string()), + }; + + match self.id_request_mapping.remove(&id) { + Some(RequestType::Request(response_sender)) => { + if response_sender.send(Ok(response.result)).is_err() { + tracing::debug!( + target: LOG_TARGET, + id = ?response.id, + "Requester is not interested in return value." + ); + }; + }, + Some(RequestType::PendingAllHeadSubscription) => { + let sub_id = response + .result + .as_str() + .ok_or("Expected subscription id to be a string.".to_string())? + .to_string(); + tracing::debug!(target: LOG_TARGET, sub_id, "allHead stream initialized"); + self.id_subscription_mapping.insert(sub_id, Subscriptions::AllHead); + }, + Some(RequestType::PendingFinalizedHeadSubscription) => { + let sub_id = response + .result + .as_str() + .ok_or("Expected subscription id to be a string.".to_string())? + .to_string(); + tracing::debug!(target: LOG_TARGET, sub_id, "finalizedHead stream initialized"); + self.id_subscription_mapping.insert(sub_id, Subscriptions::FinalizedHead); + }, + Some(RequestType::PendingNewHeadSubscription) => { + let sub_id = response + .result + .as_str() + .ok_or("Expected subscription id to be a string.".to_string())? + .to_string(); + tracing::debug!(target: LOG_TARGET, sub_id, "newHead stream initialized"); + self.id_subscription_mapping.insert(sub_id, Subscriptions::NewHead); + }, + None => { + tracing::debug!(target: LOG_TARGET, "Received response with unknown ID.") + }, + }; + Ok(()) + } + + fn handle_notification_response(&mut self, subscription: SubscriptionResponse) { + if let SubscriptionId::Str(id) = subscription.params.subscription { + tracing::debug!(target: LOG_TARGET, id = ?id, header_hash = ?subscription.params.result.hash(), "Notification"); + match self.id_subscription_mapping.get::(id.borrow()) { + Some(Subscriptions::AllHead) => distribute_header( + subscription.params.result, + &mut self.imported_header_listeners, + ), + Some(Subscriptions::FinalizedHead) => distribute_header( + subscription.params.result, + &mut self.finalized_header_listeners, + ), + Some(Subscriptions::NewHead) => + distribute_header(subscription.params.result, &mut self.best_header_listeners), + None => tracing::debug!( + target: LOG_TARGET, + ?id, + "received notification with unknown id" + ), + } + } + } + + fn handle_response(&mut self, response: String) -> Result<(), String> { + tracing::trace!(target: LOG_TARGET, response, "Response from light-client."); if let Ok(response) = from_str::>(&response) { - handle_single_response( - response, - &mut self.id_request_mapping, - &mut self.id_subscription_mapping, - ); - Ok(()) + self.handle_single_response(response) } else if let Ok(subscription) = from_str::>(&response) { - handle_notification_response( - subscription, - &mut self.id_subscription_mapping, - &mut self.imported_header_listeners, - &mut self.best_header_listeners, - &mut self.finalized_header_listeners, - ); + self.handle_notification_response(subscription); Ok(()) } else { - Err("Received unexpected response") + Err("Received unexpected response".to_string()) } } @@ -558,6 +560,7 @@ impl LightClientRpcWorker { request_type: RequestType, ) -> Result<(), String> { self.current_id += 1; + let request = serde_json::to_string(&RequestSer::owned( jsonrpsee::types::Id::Number(self.current_id), method, From cd9ebe0adb59306cd8c2b7e4cd2c0254ec1cc682 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 28 Feb 2023 19:54:04 +0100 Subject: [PATCH 06/44] Simplify subscription code --- client/relay-chain-rpc-interface/Cargo.toml | 2 - .../src/light_client.rs | 102 ++++++------------ 2 files changed, 33 insertions(+), 71 deletions(-) diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 5dd8ddb50ca..6ee56a926a7 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -20,7 +20,6 @@ sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } tokio = { version = "1.25.0", features = ["sync"] } tokio-util = { version = "0.7.7", features = ["compat"] } @@ -38,7 +37,6 @@ lru = "0.9.0" smoldot = { path = "../../../smoldot/lib" } smoldot-light = { path = "../../../smoldot/light-base" } -itertools = "0.10.5" parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs index 304687c161e..9a48d6fbe1b 100644 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -27,10 +27,12 @@ use futures::{ use jsonrpsee::{ core::{error::Error as JsonRpseeError, params::ArrayParams, traits::ToRpcParams}, rpc_params, - types::{response::SubscriptionResponse, RequestSer, SubscriptionId}, + types::{ + response::{SubscriptionError, SubscriptionResponse}, + RequestSer, SubscriptionId, + }, }; use sc_service::SpawnTaskHandle; -use serde::Deserialize; use serde_json::{from_str, Value as JsonValue}; use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; use smoldot_light::{ @@ -75,6 +77,7 @@ struct StreamShared { struct StreamSharedGuarded { write_queue: VecDeque, } + impl smoldot_light::platform::Platform for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; type Yield = future::Ready<()>; @@ -91,7 +94,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { fn now_from_unix_epoch() -> Duration { // Intentionally panic if the time is configured earlier than the UNIX EPOCH. - std::time::UNIX_EPOCH.elapsed().unwrap() + std::time::UNIX_EPOCH.elapsed().expect("Time should be after unix epoch.") } fn now() -> Self::Instant { @@ -103,8 +106,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { } fn sleep_until(when: Self::Instant) -> Self::Delay { - let duration = when.saturating_duration_since(std::time::Instant::now()); - Self::sleep(duration) + tokio::time::sleep_until(when.into()).boxed() } fn yield_after_cpu_intensive() -> Self::Yield { @@ -369,30 +371,10 @@ pub async fn get_light_client( // Ask the client to connect to a chain. let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client .add_chain(smoldot_light::AddChainConfig { - // The most important field of the configuration is the chain specification. This is a - // JSON document containing all the information necessary for the client to connect to said - // chain. specification: chain_spec, - - // If `true`, the chain will not be able to handle JSON-RPC requests. This can be used - // to save up some resources. disable_json_rpc: false, - - // This field is necessary only if adding a parachain. potential_relay_chains: core::iter::empty(), - - // After a chain has been added, it is possible to extract a "database" (in the form of a - // simple string). This database can later be passed back the next time the same chain is - // added again. - // A database with an invalid format is simply ignored by the client. - // In this example, we don't use this feature, and as such we simply pass an empty string, - // which is intentionally an invalid database content. database_content: "", - - // The client gives the possibility to insert an opaque "user data" alongside each chain. - // This avoids having to create a separate `HashMap` in parallel of the - // client. - // In this example, this feature isn't used. The chain simply has `()`. user_data: (), }) .unwrap(); @@ -408,7 +390,7 @@ pub struct LightClientRpcWorker { smoldot_client: smoldot_light::Client, json_rpc_responses: JsonRpcResponses, chain_id: ChainId, - id_request_mapping: HashMap, + id_request_mapping: HashMap, id_subscription_mapping: HashMap, current_id: u64, } @@ -436,7 +418,7 @@ fn distribute_header(header: RelayHeader, senders: &mut Vec> }); } -enum RequestType { +enum PendingRequestType { Request(OneshotSender>), PendingNewHeadSubscription, PendingAllHeadSubscription, @@ -475,7 +457,7 @@ impl LightClientRpcWorker { }; match self.id_request_mapping.remove(&id) { - Some(RequestType::Request(response_sender)) => { + Some(PendingRequestType::Request(response_sender)) => { if response_sender.send(Ok(response.result)).is_err() { tracing::debug!( target: LOG_TARGET, @@ -484,32 +466,23 @@ impl LightClientRpcWorker { ); }; }, - Some(RequestType::PendingAllHeadSubscription) => { - let sub_id = response - .result - .as_str() - .ok_or("Expected subscription id to be a string.".to_string())? - .to_string(); - tracing::debug!(target: LOG_TARGET, sub_id, "allHead stream initialized"); - self.id_subscription_mapping.insert(sub_id, Subscriptions::AllHead); - }, - Some(RequestType::PendingFinalizedHeadSubscription) => { - let sub_id = response - .result - .as_str() - .ok_or("Expected subscription id to be a string.".to_string())? - .to_string(); - tracing::debug!(target: LOG_TARGET, sub_id, "finalizedHead stream initialized"); - self.id_subscription_mapping.insert(sub_id, Subscriptions::FinalizedHead); - }, - Some(RequestType::PendingNewHeadSubscription) => { - let sub_id = response + Some(request_type) => { + let subscription_id = response .result .as_str() - .ok_or("Expected subscription id to be a string.".to_string())? + .ok_or("Subscription id needs to be a string.".to_string())? .to_string(); - tracing::debug!(target: LOG_TARGET, sub_id, "newHead stream initialized"); - self.id_subscription_mapping.insert(sub_id, Subscriptions::NewHead); + + tracing::debug!(target: LOG_TARGET, subscription_id, "allHead stream initialized"); + let subscription = match request_type { + PendingRequestType::PendingNewHeadSubscription => Subscriptions::NewHead, + PendingRequestType::PendingAllHeadSubscription => Subscriptions::AllHead, + PendingRequestType::PendingFinalizedHeadSubscription => + Subscriptions::FinalizedHead, + PendingRequestType::Request(_) => + unreachable!("This case should be covered by the outer match"), + }; + self.id_subscription_mapping.insert(subscription_id, subscription); }, None => { tracing::debug!(target: LOG_TARGET, "Received response with unknown ID.") @@ -543,13 +516,13 @@ impl LightClientRpcWorker { fn handle_response(&mut self, response: String) -> Result<(), String> { tracing::trace!(target: LOG_TARGET, response, "Response from light-client."); - if let Ok(response) = from_str::>(&response) { + if let Ok(response) = from_str::>(&response) { self.handle_single_response(response) - } else if let Ok(subscription) = from_str::>(&response) { + } else if let Ok(subscription) = from_str::>(&response) { self.handle_notification_response(subscription); Ok(()) } else { - Err("Received unexpected response".to_string()) + Err(format!("Received unexpected response: {}", response)) } } @@ -557,14 +530,14 @@ impl LightClientRpcWorker { &mut self, method: &str, params: ArrayParams, - request_type: RequestType, + request_type: PendingRequestType, ) -> Result<(), String> { self.current_id += 1; let request = serde_json::to_string(&RequestSer::owned( jsonrpsee::types::Id::Number(self.current_id), method, - params.to_rpc_params().expect("this should work"), + params.to_rpc_params().map_err(|e| e.to_string())?, )) .map_err(|e| e.to_string())?; @@ -581,7 +554,7 @@ impl LightClientRpcWorker { if let Err(message) = self.submit_request( ALL_HEADS_RPC_NAME, rpc_params![], - RequestType::PendingAllHeadSubscription, + PendingRequestType::PendingAllHeadSubscription, ) { tracing::error!( target: LOG_TARGET, @@ -595,7 +568,7 @@ impl LightClientRpcWorker { if let Err(message) = self.submit_request( NEW_HEADS_RPC_NAME, rpc_params![], - RequestType::PendingNewHeadSubscription, + PendingRequestType::PendingNewHeadSubscription, ) { tracing::error!( target: LOG_TARGET, @@ -609,7 +582,7 @@ impl LightClientRpcWorker { if let Err(message) = self.submit_request( FINALIZED_HEADS_RPC_NAME, rpc_params![], - RequestType::PendingFinalizedHeadSubscription, + PendingRequestType::PendingFinalizedHeadSubscription, ) { tracing::error!( target: LOG_TARGET, @@ -633,7 +606,7 @@ impl LightClientRpcWorker { self.finalized_header_listeners.push(tx) }, Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { - if let Err(message) = self.submit_request(&method, params, RequestType::Request(response_sender)) { + if let Err(message) = self.submit_request(&method, params, PendingRequestType::Request(response_sender)) { tracing::debug!(target: LOG_TARGET, message, "Request failed."); }; }, @@ -653,12 +626,3 @@ impl LightClientRpcWorker { } } } - -#[derive(Deserialize)] -#[serde(untagged)] -enum LightClientRPCElement<'a> { - #[serde(borrow)] - NotificationRequest(jsonrpsee::types::Request<'a>), - #[serde(borrow)] - Response(jsonrpsee::types::Response<'a, JsonValue>), -} From 19c82f9bee8095854b737b1c80964fab21864294 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 1 Mar 2023 12:02:00 +0100 Subject: [PATCH 07/44] Let jsonrpsee handle rpc management --- client/relay-chain-rpc-interface/Cargo.toml | 1 + client/relay-chain-rpc-interface/src/lib.rs | 3 - .../src/light_client.rs | 340 +++++++++--------- 3 files changed, 170 insertions(+), 174 deletions(-) diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 6ee56a926a7..e242c1e1ed5 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -40,3 +40,4 @@ smoldot-light = { path = "../../../smoldot/light-base" } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" +thiserror = "1.0.38" diff --git a/client/relay-chain-rpc-interface/src/lib.rs b/client/relay-chain-rpc-interface/src/lib.rs index da04b3445e6..e2bf9e05389 100644 --- a/client/relay-chain-rpc-interface/src/lib.rs +++ b/client/relay-chain-rpc-interface/src/lib.rs @@ -44,9 +44,6 @@ pub use rpc_client::{ }; const TIMEOUT_IN_SECONDS: u64 = 6; -const FINALIZED_HEADS_RPC_NAME: &str = "chain_subscribeFinalizedHeads"; -const ALL_HEADS_RPC_NAME: &str = "chain_subscribeNewHeads"; -const NEW_HEADS_RPC_NAME: &str = "chain_subscribeAllHeads"; /// RelayChainRpcInterface is used to interact with a full node that is running locally /// in the same process. diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs index 9a48d6fbe1b..95d26fe534e 100644 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -15,33 +15,29 @@ // along with Cumulus. If not, see . use core::time::Duration; -use cumulus_primitives_core::relay_chain::Header as RelayHeader; +use cumulus_primitives_core::relay_chain::{ + Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, +}; use futures::{ - channel::{ - mpsc::{self, Sender}, - oneshot::Sender as OneshotSender, - }, + channel::mpsc::{self, Sender}, prelude::*, + stream::FuturesUnordered, task::Poll, }; -use jsonrpsee::{ - core::{error::Error as JsonRpseeError, params::ArrayParams, traits::ToRpcParams}, - rpc_params, - types::{ - response::{SubscriptionError, SubscriptionResponse}, - RequestSer, SubscriptionId, - }, +use jsonrpsee::core::{ + client::{ClientT, TransportReceiverT, TransportSenderT}, + Error, }; +use polkadot_service::generic::SignedBlock; +use sc_rpc_api::chain::ChainApiClient; use sc_service::SpawnTaskHandle; -use serde_json::{from_str, Value as JsonValue}; use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; use smoldot_light::{ platform::{ConnectError, PlatformConnection, PlatformSubstreamDirection, ReadBuffer}, ChainId, Client, ClientConfig, JsonRpcResponses, }; use std::{ - borrow::Borrow, - collections::{HashMap, VecDeque}, + collections::VecDeque, io::IoSlice, net::{IpAddr, SocketAddr}, pin::Pin, @@ -53,10 +49,7 @@ use tokio::{ }; use tokio_util::compat::TokioAsyncReadCompatExt; -use crate::{ - reconnecting_ws_client::RpcDispatcherMessage, ALL_HEADS_RPC_NAME, FINALIZED_HEADS_RPC_NAME, - NEW_HEADS_RPC_NAME, -}; +use crate::reconnecting_ws_client::RpcDispatcherMessage; const LOG_TARGET: &str = "rpc-light-client-worker"; @@ -390,15 +383,6 @@ pub struct LightClientRpcWorker { smoldot_client: smoldot_light::Client, json_rpc_responses: JsonRpcResponses, chain_id: ChainId, - id_request_mapping: HashMap, - id_subscription_mapping: HashMap, - current_id: u64, -} - -enum Subscriptions { - AllHead, - NewHead, - FinalizedHead, } fn distribute_header(header: RelayHeader, senders: &mut Vec>) { @@ -418,11 +402,22 @@ fn distribute_header(header: RelayHeader, senders: &mut Vec> }); } -enum PendingRequestType { - Request(OneshotSender>), - PendingNewHeadSubscription, - PendingAllHeadSubscription, - PendingFinalizedHeadSubscription, +fn handle_notification( + maybe_header: Option>, + senders: &mut Vec>, +) -> bool { + match maybe_header { + Some(Ok(header)) => distribute_header(header, senders), + None => { + tracing::error!(target: LOG_TARGET, "Subscription closed."); + return true + }, + Some(Err(error)) => { + tracing::error!(target: LOG_TARGET, ?error, "Error in RPC subscription."); + return true + }, + }; + return false } impl LightClientRpcWorker { @@ -440,155 +435,60 @@ impl LightClientRpcWorker { smoldot_client, json_rpc_responses, chain_id, - id_subscription_mapping: Default::default(), - id_request_mapping: Default::default(), - current_id: 0, }; (worker, tx) } - fn handle_single_response( - &mut self, - response: jsonrpsee::types::Response, - ) -> Result<(), String> { - let id = match response.id { - jsonrpsee::types::params::Id::Number(num) => num, - _ => return Err("We only accept numbered IDs".to_string()), - }; - - match self.id_request_mapping.remove(&id) { - Some(PendingRequestType::Request(response_sender)) => { - if response_sender.send(Ok(response.result)).is_err() { - tracing::debug!( - target: LOG_TARGET, - id = ?response.id, - "Requester is not interested in return value." - ); - }; - }, - Some(request_type) => { - let subscription_id = response - .result - .as_str() - .ok_or("Subscription id needs to be a string.".to_string())? - .to_string(); - - tracing::debug!(target: LOG_TARGET, subscription_id, "allHead stream initialized"); - let subscription = match request_type { - PendingRequestType::PendingNewHeadSubscription => Subscriptions::NewHead, - PendingRequestType::PendingAllHeadSubscription => Subscriptions::AllHead, - PendingRequestType::PendingFinalizedHeadSubscription => - Subscriptions::FinalizedHead, - PendingRequestType::Request(_) => - unreachable!("This case should be covered by the outer match"), - }; - self.id_subscription_mapping.insert(subscription_id, subscription); - }, - None => { - tracing::debug!(target: LOG_TARGET, "Received response with unknown ID.") - }, - }; - Ok(()) - } - - fn handle_notification_response(&mut self, subscription: SubscriptionResponse) { - if let SubscriptionId::Str(id) = subscription.params.subscription { - tracing::debug!(target: LOG_TARGET, id = ?id, header_hash = ?subscription.params.result.hash(), "Notification"); - match self.id_subscription_mapping.get::(id.borrow()) { - Some(Subscriptions::AllHead) => distribute_header( - subscription.params.result, - &mut self.imported_header_listeners, - ), - Some(Subscriptions::FinalizedHead) => distribute_header( - subscription.params.result, - &mut self.finalized_header_listeners, - ), - Some(Subscriptions::NewHead) => - distribute_header(subscription.params.result, &mut self.best_header_listeners), - None => tracing::debug!( - target: LOG_TARGET, - ?id, - "received notification with unknown id" - ), - } - } - } - - fn handle_response(&mut self, response: String) -> Result<(), String> { - tracing::trace!(target: LOG_TARGET, response, "Response from light-client."); - if let Ok(response) = from_str::>(&response) { - self.handle_single_response(response) - } else if let Ok(subscription) = from_str::>(&response) { - self.handle_notification_response(subscription); - Ok(()) - } else { - Err(format!("Received unexpected response: {}", response)) - } - } - - fn submit_request( - &mut self, - method: &str, - params: ArrayParams, - request_type: PendingRequestType, - ) -> Result<(), String> { - self.current_id += 1; - - let request = serde_json::to_string(&RequestSer::owned( - jsonrpsee::types::Id::Number(self.current_id), - method, - params.to_rpc_params().map_err(|e| e.to_string())?, - )) - .map_err(|e| e.to_string())?; - - self.smoldot_client - .json_rpc_request(request, self.chain_id) - .map_err(|e| e.to_string())?; - self.id_request_mapping.insert(self.current_id, request_type); - Ok(()) - } - pub async fn run(mut self) { tokio::time::sleep(Duration::from_secs(20)).await; - if let Err(message) = self.submit_request( - ALL_HEADS_RPC_NAME, - rpc_params![], - PendingRequestType::PendingAllHeadSubscription, - ) { + let some_sender = + SimpleStringSender { inner: self.smoldot_client, chain_id: self.chain_id }; + let some_receiver = SimpleStringReceiver { inner: self.json_rpc_responses }; + let smoldot_client = Arc::new( + jsonrpsee::core::client::ClientBuilder::default() + .build_with_tokio(some_sender, some_receiver), + ); + + let mut pending_requests = FuturesUnordered::new(); + + let Ok(mut new_head_subscription) = , + >>::subscribe_new_heads(&smoldot_client) + .await else { tracing::error!( target: LOG_TARGET, - message, - sub = ALL_HEADS_RPC_NAME, - "Unable to request subscription." + "Unable to initialize new heads subscription" ); - return + return; }; - if let Err(message) = self.submit_request( - NEW_HEADS_RPC_NAME, - rpc_params![], - PendingRequestType::PendingNewHeadSubscription, - ) { + let Ok(mut finalized_head_subscription) = , + >>::subscribe_finalized_heads(&smoldot_client) + .await else { tracing::error!( target: LOG_TARGET, - message, - sub = NEW_HEADS_RPC_NAME, - "Unable to request subscription." + "Unable to initialize finalized heads subscription" ); - return + return; }; - if let Err(message) = self.submit_request( - FINALIZED_HEADS_RPC_NAME, - rpc_params![], - PendingRequestType::PendingFinalizedHeadSubscription, - ) { + let Ok(mut all_head_subscription) = , + >>::subscribe_all_heads(&smoldot_client).await else { tracing::error!( target: LOG_TARGET, - message, - sub = FINALIZED_HEADS_RPC_NAME, - "Unable to request subscription." + "Unable to initialize all heads subscription" ); return }; @@ -606,23 +506,121 @@ impl LightClientRpcWorker { self.finalized_header_listeners.push(tx) }, Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { - if let Err(message) = self.submit_request(&method, params, PendingRequestType::Request(response_sender)) { - tracing::debug!(target: LOG_TARGET, message, "Request failed."); - }; + let closure_client = smoldot_client.clone(); + tracing::info!( + target: LOG_TARGET, + len = pending_requests.len(), + "Inserting request: {method:?}" + ); + pending_requests.push(async move { + let response = closure_client.request(&method, params).await; + tracing::info!( + target: LOG_TARGET, + method, + ?response, + "Response" + ); + if let Err(err) = response_sender.send(response) { + tracing::debug!( + target: LOG_TARGET, + ?err, + "Recipient no longer interested in request result" + ); + }; + }); }, None => { tracing::error!(target: LOG_TARGET, "RPC client receiver closed. Stopping RPC Worker."); return; } }, - response = self.json_rpc_responses.next() => { - if let Some(response) = response { - if let Err(message) = self.handle_response(response) { - tracing::debug!(target: LOG_TARGET, message, "Unable to handle response.") - } + _ = pending_requests.next(), if !pending_requests.is_empty() => {}, + import_event = all_head_subscription.next() => { + if handle_notification(import_event, &mut self.imported_header_listeners) { + return + } + }, + best_header_event = new_head_subscription.next() => { + if handle_notification(best_header_event, &mut self.best_header_listeners) { + return + } + } + finalized_event = finalized_head_subscription.next() => { + if handle_notification(finalized_event, &mut self.finalized_header_listeners) { + return } } } } } } + +#[derive(thiserror::Error, Debug)] +enum LightClientError { + #[error("Error occured while calling inserting smoldot request: {0}")] + SmoldotError(String), + #[error("Nothing returned from json_rpc_responses")] + EmptyReturn, +} + +struct SimpleStringSender { + inner: smoldot_light::Client, + chain_id: ChainId, +} + +impl TransportSenderT for SimpleStringSender { + type Error = LightClientError; + + fn send<'life0, 'async_trait>( + &'life0 mut self, + msg: String, + ) -> core::pin::Pin< + Box< + dyn core::future::Future> + + core::marker::Send + + 'async_trait, + >, + > + where + 'life0: 'async_trait, + Self: 'async_trait, + { + Box::pin(async { + self.inner + .json_rpc_request(msg, self.chain_id) + .map_err(|e| LightClientError::SmoldotError(e.to_string())) + }) + } +} + +struct SimpleStringReceiver { + inner: JsonRpcResponses, +} + +impl TransportReceiverT for SimpleStringReceiver { + type Error = LightClientError; + + fn receive<'life0, 'async_trait>( + &'life0 mut self, + ) -> core::pin::Pin< + Box< + dyn core::future::Future< + Output = Result, + > + core::marker::Send + + 'async_trait, + >, + > + where + 'life0: 'async_trait, + Self: 'async_trait, + { + async { + self.inner + .next() + .await + .map(|message| jsonrpsee::core::client::ReceivedMessage::Text(message)) + .ok_or(LightClientError::EmptyReturn) + } + .boxed() + } +} From 30490cc5ba4139158abb0b9ae52e5e6fb78f566c Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 1 Mar 2023 12:11:31 +0100 Subject: [PATCH 08/44] Simplify implementation --- client/relay-chain-rpc-interface/src/lib.rs | 1 + .../src/light_client.rs | 461 +++--------------- .../src/reconnecting_ws_client.rs | 117 +++-- .../src/rpc_client.rs | 20 +- 4 files changed, 127 insertions(+), 472 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/lib.rs b/client/relay-chain-rpc-interface/src/lib.rs index e2bf9e05389..818f9e108de 100644 --- a/client/relay-chain-rpc-interface/src/lib.rs +++ b/client/relay-chain-rpc-interface/src/lib.rs @@ -37,6 +37,7 @@ pub use url::Url; mod light_client; mod reconnecting_ws_client; mod rpc_client; +mod tokio_platform; pub use rpc_client::{ create_client_and_start_light_client_worker, create_client_and_start_worker, diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs index 95d26fe534e..8105e9145ce 100644 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ b/client/relay-chain-rpc-interface/src/light_client.rs @@ -18,340 +18,72 @@ use core::time::Duration; use cumulus_primitives_core::relay_chain::{ Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, }; -use futures::{ - channel::mpsc::{self, Sender}, - prelude::*, - stream::FuturesUnordered, - task::Poll, -}; +use futures::{channel::mpsc::Sender, prelude::*, stream::FuturesUnordered}; use jsonrpsee::core::{ - client::{ClientT, TransportReceiverT, TransportSenderT}, + client::{ + Client as JsonRpseeClient, ClientBuilder, ClientT, ReceivedMessage, TransportReceiverT, + TransportSenderT, + }, Error, }; use polkadot_service::generic::SignedBlock; use sc_rpc_api::chain::ChainApiClient; use sc_service::SpawnTaskHandle; -use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; -use smoldot_light::{ - platform::{ConnectError, PlatformConnection, PlatformSubstreamDirection, ReadBuffer}, - ChainId, Client, ClientConfig, JsonRpcResponses, -}; -use std::{ - collections::VecDeque, - io::IoSlice, - net::{IpAddr, SocketAddr}, - pin::Pin, - sync::Arc, -}; -use tokio::{ - net::TcpStream, - sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}, -}; -use tokio_util::compat::TokioAsyncReadCompatExt; +use smoldot_light::{ChainId, Client as SmoldotClient, ClientConfig, JsonRpcResponses}; +use std::sync::Arc; +use tokio::sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}; -use crate::reconnecting_ws_client::RpcDispatcherMessage; +use crate::{reconnecting_ws_client::RpcDispatcherMessage, tokio_platform::TokioPlatform}; const LOG_TARGET: &str = "rpc-light-client-worker"; -pub struct TokioPlatform; - -/// Implementation detail of [`AsyncStdTcpWebSocket`]. -pub struct TokioStream { - shared: Arc, - read_data_rx: Arc>>>>, - read_buffer: Option>, -} - -struct StreamShared { - guarded: parking_lot::Mutex, - write_queue_pushed: event_listener::Event, +#[derive(thiserror::Error, Debug)] +enum LightClientError { + #[error("Error occured while calling inserting smoldot request: {0}")] + SmoldotError(String), + #[error("Nothing returned from json_rpc_responses")] + EmptyReturn, } -struct StreamSharedGuarded { - write_queue: VecDeque, +/// Sending adapter allowing JsonRpsee to send messages to smoldot +struct SimpleStringSender { + inner: smoldot_light::Client, + chain_id: ChainId, } -impl smoldot_light::platform::Platform for TokioPlatform { - type Delay = future::BoxFuture<'static, ()>; - type Yield = future::Ready<()>; - type Instant = std::time::Instant; - type Connection = std::convert::Infallible; - type Stream = TokioStream; - type ConnectFuture = future::BoxFuture< - 'static, - Result, ConnectError>, - >; - type StreamDataFuture<'a> = future::BoxFuture<'a, ()>; - type NextSubstreamFuture<'a> = - future::Pending>; - - fn now_from_unix_epoch() -> Duration { - // Intentionally panic if the time is configured earlier than the UNIX EPOCH. - std::time::UNIX_EPOCH.elapsed().expect("Time should be after unix epoch.") - } - - fn now() -> Self::Instant { - std::time::Instant::now() - } - - fn sleep(duration: Duration) -> Self::Delay { - tokio::time::sleep(duration).boxed() - } - - fn sleep_until(when: Self::Instant) -> Self::Delay { - tokio::time::sleep_until(when.into()).boxed() - } - - fn yield_after_cpu_intensive() -> Self::Yield { - // No-op. - future::ready(()) - } - - fn connect(multiaddr: &str) -> Self::ConnectFuture { - // We simply copy the address to own it. We could be more zero-cost here, but doing so - // would considerably complicate the implementation. - let multiaddr = multiaddr.to_owned(); - - Box::pin(async move { - let addr = multiaddr.parse::().map_err(|_| ConnectError { - is_bad_addr: true, - message: format!("Failed to parse address"), - })?; - - let mut iter = addr.iter().fuse(); - let proto1 = iter.next().ok_or(ConnectError { - is_bad_addr: true, - message: format!("Unknown protocols combination"), - })?; - let proto2 = iter.next().ok_or(ConnectError { - is_bad_addr: true, - message: format!("Unknown protocols combination"), - })?; - let proto3 = iter.next(); - - if iter.next().is_some() { - return Err(ConnectError { - is_bad_addr: true, - message: format!("Unknown protocols combination"), - }) - } - - // TODO: doesn't support WebSocket secure connections - - // Ensure ahead of time that the multiaddress is supported. - let (addr, host_if_websocket) = match (&proto1, &proto2, &proto3) { - (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), None) => - (either::Left(SocketAddr::new(IpAddr::V4((*ip).into()), *port)), None), - (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), None) => - (either::Left(SocketAddr::new(IpAddr::V6((*ip).into()), *port)), None), - (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { - let addr = SocketAddr::new(IpAddr::V4((*ip).into()), *port); - (either::Left(addr), Some(addr.to_string())) - }, - (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { - let addr = SocketAddr::new(IpAddr::V6((*ip).into()), *port); - (either::Left(addr), Some(addr.to_string())) - }, - - // TODO: we don't care about the differences between Dns, Dns4, and Dns6 - ( - ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), - ProtocolRef::Tcp(port), - None, - ) => (either::Right((addr.to_string(), *port)), None), - ( - ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), - ProtocolRef::Tcp(port), - Some(ProtocolRef::Ws), - ) => (either::Right((addr.to_string(), *port)), Some(format!("{}:{}", addr, *port))), - - _ => - return Err(ConnectError { - is_bad_addr: true, - message: format!("Unknown protocols combination"), - }), - }; - - let tcp_socket = match addr { - either::Left(socket_addr) => TcpStream::connect(socket_addr).await, - either::Right((dns, port)) => TcpStream::connect((&dns[..], port)).await, - }; - - if let Ok(tcp_socket) = &tcp_socket { - let _ = tcp_socket.set_nodelay(true); - } - - let mut socket = match (tcp_socket, host_if_websocket) { - (Ok(tcp_socket), Some(host)) => future::Either::Right( - websocket::websocket_client_handshake(websocket::Config { - tcp_socket: tcp_socket.compat(), - host: &host, - url: "/", - }) - .await - .map_err(|err| ConnectError { - message: format!("Failed to negotiate WebSocket: {}", err), - is_bad_addr: false, - })?, - ), - (Ok(tcp_socket), None) => future::Either::Left(tcp_socket.compat()), - (Err(err), _) => - return Err(ConnectError { - is_bad_addr: false, - message: format!("Failed to reach peer: {}", err), - }), - }; - - let shared = Arc::new(StreamShared { - guarded: parking_lot::Mutex::new(StreamSharedGuarded { - write_queue: VecDeque::with_capacity(1024), - }), - write_queue_pushed: event_listener::Event::new(), - }); - let shared_clone = shared.clone(); - - let (mut read_data_tx, read_data_rx) = mpsc::channel(2); - let mut read_buffer = vec![0; 4096]; - let mut write_queue_pushed_listener = shared.write_queue_pushed.listen(); - - // TODO: this whole code is a mess, but the Platform trait must be modified to fix it - // TODO: spawning a task per connection is necessary because the Platform trait isn't suitable for better strategies - tokio::spawn(future::poll_fn(move |cx| { - let mut lock = shared.guarded.lock(); - - loop { - match Pin::new(&mut read_data_tx).poll_ready(cx) { - Poll::Ready(Ok(())) => { - match Pin::new(&mut socket).poll_read(cx, &mut read_buffer) { - Poll::Pending => break, - Poll::Ready(result) => { - match result { - Ok(0) | Err(_) => return Poll::Ready(()), // End the task - Ok(bytes) => { - let _ = read_data_tx - .try_send(read_buffer[..bytes].to_vec()); - }, - } - }, - } - }, - Poll::Ready(Err(_)) => return Poll::Ready(()), // End the task - Poll::Pending => break, - } - } - - loop { - if lock.write_queue.is_empty() { - if let Poll::Ready(Err(_)) = Pin::new(&mut socket).poll_flush(cx) { - // End the task - return Poll::Ready(()) - } - - break - } else { - let write_queue_slices = lock.write_queue.as_slices(); - if let Poll::Ready(result) = Pin::new(&mut socket).poll_write_vectored( - cx, - &[ - IoSlice::new(write_queue_slices.0), - IoSlice::new(write_queue_slices.1), - ], - ) { - match result { - Ok(bytes) => - for _ in 0..bytes { - lock.write_queue.pop_front(); - }, - Err(_) => return Poll::Ready(()), // End the task - } - } else { - break - } - } - } - - loop { - if let Poll::Ready(()) = Pin::new(&mut write_queue_pushed_listener).poll(cx) { - write_queue_pushed_listener = shared.write_queue_pushed.listen(); - } else { - break - } - } - - Poll::Pending - })); - - Ok(PlatformConnection::SingleStreamMultistreamSelectNoiseYamux(TokioStream { - shared: shared_clone, - read_data_rx: Arc::new(parking_lot::Mutex::new(read_data_rx.peekable())), - read_buffer: Some(Vec::with_capacity(4096)), - })) - }) - } - - fn open_out_substream(c: &mut Self::Connection) { - // This function can only be called with so-called "multi-stream" connections. We never - // open such connection. - match *c {} - } - - fn next_substream(c: &'_ mut Self::Connection) -> Self::NextSubstreamFuture<'_> { - // This function can only be called with so-called "multi-stream" connections. We never - // open such connection. - match *c {} - } - - fn wait_more_data(stream: &'_ mut Self::Stream) -> Self::StreamDataFuture<'_> { - if stream.read_buffer.as_ref().map_or(true, |b| !b.is_empty()) { - return Box::pin(future::ready(())) - } +#[async_trait::async_trait] +impl TransportSenderT for SimpleStringSender { + type Error = LightClientError; - let read_data_rx = stream.read_data_rx.clone(); - Box::pin(future::poll_fn(move |cx| { - let mut lock = read_data_rx.lock(); - Pin::new(&mut *lock).poll_peek(cx).map(|_| ()) - })) + async fn send(&mut self, msg: String) -> Result<(), Self::Error> { + self.inner + .json_rpc_request(msg, self.chain_id) + .map_err(|e| LightClientError::SmoldotError(e.to_string())) } +} - fn read_buffer(stream: &mut Self::Stream) -> ReadBuffer { - if stream.read_buffer.is_none() { - // TODO: the implementation doesn't let us differentiate between Closed and Reset - return ReadBuffer::Reset - } - - let mut lock = stream.read_data_rx.lock(); - while let Some(buf) = lock.next().now_or_never() { - match buf { - Some(b) => stream.read_buffer.as_mut().unwrap().extend(b), - None => { - stream.read_buffer = None; - return ReadBuffer::Reset - }, - } - } - - ReadBuffer::Open(stream.read_buffer.as_ref().unwrap()) - } +/// Receiving adapter allowing JsonRpsee to receive messages from smoldot +struct SimpleStringReceiver { + inner: JsonRpcResponses, +} - fn advance_read_cursor(stream: &mut Self::Stream, bytes: usize) { - if let Some(read_buffer) = &mut stream.read_buffer { - // TODO: meh for copying - *read_buffer = read_buffer[bytes..].to_vec(); - } - } +#[async_trait::async_trait] +impl TransportReceiverT for SimpleStringReceiver { + type Error = LightClientError; - fn send(stream: &mut Self::Stream, data: &[u8]) { - let mut lock = stream.shared.guarded.lock(); - lock.write_queue.reserve(data.len()); - lock.write_queue.extend(data.iter().copied()); - stream.shared.write_queue_pushed.notify(usize::max_value()); + async fn receive(&mut self) -> Result { + self.inner + .next() + .await + .map(|message| jsonrpsee::core::client::ReceivedMessage::Text(message)) + .ok_or(LightClientError::EmptyReturn) } } -pub async fn get_light_client( +pub async fn build_smoldot_client( spawner: SpawnTaskHandle, chain_spec: &str, -) -> (smoldot_light::Client, ChainId, JsonRpcResponses) { +) -> (SmoldotClient, ChainId, JsonRpcResponses) { let config = ClientConfig { tasks_spawner: Box::new(move |_, task| { spawner.spawn("cumulus-relay-chain-light-client-task", None, task); @@ -359,7 +91,8 @@ pub async fn get_light_client( system_name: env!("CARGO_PKG_NAME").to_string(), system_version: env!("CARGO_PKG_VERSION").to_string(), }; - let mut client: Client = Client::new(config); + + let mut client: SmoldotClient = SmoldotClient::new(config); // Ask the client to connect to a chain. let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client @@ -380,9 +113,7 @@ pub struct LightClientRpcWorker { imported_header_listeners: Vec>, finalized_header_listeners: Vec>, best_header_listeners: Vec>, - smoldot_client: smoldot_light::Client, - json_rpc_responses: JsonRpcResponses, - chain_id: ChainId, + smoldot_client: Arc, } fn distribute_header(header: RelayHeader, senders: &mut Vec>) { @@ -427,14 +158,18 @@ impl LightClientRpcWorker { chain_id: ChainId, ) -> (LightClientRpcWorker, TokioSender) { let (tx, rx) = tokio_channel(100); + let smoldot_adapter_sender = SimpleStringSender { inner: smoldot_client, chain_id }; + let smoldot_adapter_receiver = SimpleStringReceiver { inner: json_rpc_responses }; + let smoldot_jsonrpsee_client = Arc::new( + ClientBuilder::default() + .build_with_tokio(smoldot_adapter_sender, smoldot_adapter_receiver), + ); let worker = LightClientRpcWorker { client_receiver: rx, imported_header_listeners: Default::default(), finalized_header_listeners: Default::default(), best_header_listeners: Default::default(), - smoldot_client, - json_rpc_responses, - chain_id, + smoldot_client: smoldot_jsonrpsee_client, }; (worker, tx) } @@ -442,22 +177,14 @@ impl LightClientRpcWorker { pub async fn run(mut self) { tokio::time::sleep(Duration::from_secs(20)).await; - let some_sender = - SimpleStringSender { inner: self.smoldot_client, chain_id: self.chain_id }; - let some_receiver = SimpleStringReceiver { inner: self.json_rpc_responses }; - let smoldot_client = Arc::new( - jsonrpsee::core::client::ClientBuilder::default() - .build_with_tokio(some_sender, some_receiver), - ); - let mut pending_requests = FuturesUnordered::new(); - let Ok(mut new_head_subscription) = , - >>::subscribe_new_heads(&smoldot_client) + >>::subscribe_new_heads(&self.smoldot_client) .await else { tracing::error!( target: LOG_TARGET, @@ -466,12 +193,12 @@ impl LightClientRpcWorker { return; }; - let Ok(mut finalized_head_subscription) = , - >>::subscribe_finalized_heads(&smoldot_client) + >>::subscribe_finalized_heads(&self.smoldot_client) .await else { tracing::error!( target: LOG_TARGET, @@ -480,12 +207,12 @@ impl LightClientRpcWorker { return; }; - let Ok(mut all_head_subscription) = , - >>::subscribe_all_heads(&smoldot_client).await else { + >>::subscribe_all_heads(&self.smoldot_client).await else { tracing::error!( target: LOG_TARGET, "Unable to initialize all heads subscription" @@ -506,7 +233,7 @@ impl LightClientRpcWorker { self.finalized_header_listeners.push(tx) }, Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { - let closure_client = smoldot_client.clone(); + let closure_client = self.smoldot_client.clone(); tracing::info!( target: LOG_TARGET, len = pending_requests.len(), @@ -554,73 +281,3 @@ impl LightClientRpcWorker { } } } - -#[derive(thiserror::Error, Debug)] -enum LightClientError { - #[error("Error occured while calling inserting smoldot request: {0}")] - SmoldotError(String), - #[error("Nothing returned from json_rpc_responses")] - EmptyReturn, -} - -struct SimpleStringSender { - inner: smoldot_light::Client, - chain_id: ChainId, -} - -impl TransportSenderT for SimpleStringSender { - type Error = LightClientError; - - fn send<'life0, 'async_trait>( - &'life0 mut self, - msg: String, - ) -> core::pin::Pin< - Box< - dyn core::future::Future> - + core::marker::Send - + 'async_trait, - >, - > - where - 'life0: 'async_trait, - Self: 'async_trait, - { - Box::pin(async { - self.inner - .json_rpc_request(msg, self.chain_id) - .map_err(|e| LightClientError::SmoldotError(e.to_string())) - }) - } -} - -struct SimpleStringReceiver { - inner: JsonRpcResponses, -} - -impl TransportReceiverT for SimpleStringReceiver { - type Error = LightClientError; - - fn receive<'life0, 'async_trait>( - &'life0 mut self, - ) -> core::pin::Pin< - Box< - dyn core::future::Future< - Output = Result, - > + core::marker::Send - + 'async_trait, - >, - > - where - 'life0: 'async_trait, - Self: 'async_trait, - { - async { - self.inner - .next() - .await - .map(|message| jsonrpsee::core::client::ReceivedMessage::Text(message)) - .ok_or(LightClientError::EmptyReturn) - } - .boxed() - } -} diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index bd367e6854a..342262e30f5 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -15,9 +15,9 @@ // along with Cumulus. If not, see . use cumulus_primitives_core::relay_chain::{ - BlockNumber as RelayBlockNumber, Header as RelayHeader, + Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, }; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; +use cumulus_relay_chain_interface::RelayChainError; use futures::{ channel::{ mpsc::{Receiver, Sender}, @@ -29,14 +29,15 @@ use futures::{ }; use jsonrpsee::{ core::{ - client::{Client as JsonRpcClient, ClientT, Subscription, SubscriptionClientT}, + client::{Client as JsonRpcClient, ClientT, Subscription}, params::ArrayParams, Error as JsonRpseeError, JsonValue, }, - rpc_params, ws_client::WsClientBuilder, }; use lru::LruCache; +use polkadot_service::generic::SignedBlock; +use sc_rpc_api::chain::ChainApiClient; use std::{num::NonZeroUsize, sync::Arc}; use tokio::sync::mpsc::{ channel as tokio_channel, Receiver as TokioReceiver, Sender as TokioSender, @@ -58,21 +59,20 @@ pub enum RpcDispatcherMessage { /// Frontend for performing websocket requests. /// Requests and stream requests are forwarded to [`ReconnectingWebsocketWorker`]. #[derive(Debug, Clone)] -pub struct ReconnectingWsClient { +pub struct RpcFrontend { /// Channel to communicate with the RPC worker to_worker_channel: TokioSender, } -impl ReconnectingWsClient { +impl RpcFrontend { /// Create a new websocket client frontend. - pub async fn new(sender: TokioSender) -> RelayChainResult { + pub fn new(sender: TokioSender) -> Self { tracing::debug!(target: LOG_TARGET, "Instantiating reconnecting websocket client"); - - Ok(Self { to_worker_channel: sender }) + Self { to_worker_channel: sender } } } -impl ReconnectingWsClient { +impl RpcFrontend { /// Perform a request via websocket connection. pub async fn request(&self, method: &str, params: ArrayParams) -> Result where @@ -219,54 +219,53 @@ impl ClientManager { } async fn get_subscriptions(&self) -> Result { - let import_subscription = self - .active_client - .subscribe::( - "chain_subscribeAllHeads", - rpc_params![], - "chain_unsubscribeAllHeads", - ) - .await - .map_err(|e| { - tracing::error!( - target: LOG_TARGET, - ?e, - "Unable to open `chain_subscribeAllHeads` subscription." - ); - e - })?; - let best_subscription = self - .active_client - .subscribe::( - "chain_subscribeNewHeads", - rpc_params![], - "chain_unsubscribeNewHeads", - ) - .await - .map_err(|e| { - tracing::error!( - target: LOG_TARGET, - ?e, - "Unable to open `chain_subscribeNewHeads` subscription." - ); - e - })?; - let finalized_subscription = self - .active_client - .subscribe::( - "chain_subscribeFinalizedHeads", - rpc_params![], - "chain_unsubscribeFinalizedHeads", - ) - .await - .map_err(|e| { - tracing::error!( - target: LOG_TARGET, - ?e, - "Unable to open `chain_subscribeFinalizedHeads` subscription." - ); - e - })?; + let import_subscription = , + >>::subscribe_all_heads(&self.active_client) + .await + .map_err(|e| { + tracing::error!( + target: LOG_TARGET, + ?e, + "Unable to open `chain_subscribeAllHeads` subscription." + ); + e + })?; + + let best_subscription = , + >>::subscribe_new_heads(&self.active_client) + .await + .map_err(|e| { + tracing::error!( + target: LOG_TARGET, + ?e, + "Unable to open `chain_subscribeNewHeads` subscription." + ); + e + })?; + + let finalized_subscription = , + >>::subscribe_finalized_heads(&self.active_client) + .await + .map_err(|e| { + tracing::error!( + target: LOG_TARGET, + ?e, + "Unable to open `chain_subscribeFinalizedHeads` subscription." + ); + e + })?; Ok(RelayChainSubscriptions { import_subscription, @@ -393,7 +392,7 @@ impl ReconnectingWebsocketWorker { let mut imported_blocks_cache = LruCache::new(NonZeroUsize::new(40).expect("40 is nonzero; qed.")); let mut should_reconnect = ConnectionStatus::Connected; - let mut last_seen_finalized_num: RelayBlockNumber = 0; + let mut last_seen_finalized_num: RelayNumber = 0; loop { // This branch is taken if the websocket connection to the current RPC server is closed. if let ConnectionStatus::ReconnectRequired(maybe_failed_request) = should_reconnect { diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index dcebf2b07ac..de8837c7255 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -18,7 +18,7 @@ use std::path::PathBuf; use crate::{ light_client, - reconnecting_ws_client::{ReconnectingWebsocketWorker, ReconnectingWsClient}, + reconnecting_ws_client::{ReconnectingWebsocketWorker, RpcFrontend}, }; use cumulus_primitives_core::{ relay_chain::{ @@ -50,7 +50,7 @@ const LOG_TARGET: &str = "relay-chain-rpc-client"; #[derive(Clone)] pub struct RelayChainRpcClient { /// Websocket client to make calls - ws_client: ReconnectingWsClient, + ws_client: RpcFrontend, } pub async fn create_client_and_start_light_client_worker( @@ -60,7 +60,7 @@ pub async fn create_client_and_start_light_client_worker( let spec = std::fs::read_to_string(chain_spec_path) .map_err(|e| RelayChainError::GenericError(e.to_string()))?; let (client, chain_id, json_rpc_responses) = - light_client::get_light_client(task_manager.spawn_handle(), &spec).await; + light_client::build_smoldot_client(task_manager.spawn_handle(), &spec).await; let (worker, sender) = light_client::LightClientRpcWorker::new(client, json_rpc_responses, chain_id); @@ -68,9 +68,9 @@ pub async fn create_client_and_start_light_client_worker( .spawn_essential_handle() .spawn("relay-chain-rpc-worker", None, worker.run()); - let ws_client = ReconnectingWsClient::new(sender).await?; + let rpc_frontend = RpcFrontend::new(sender); - let client = RelayChainRpcClient::new(ws_client).await?; + let client = RelayChainRpcClient::new(rpc_frontend); Ok(client) } @@ -86,19 +86,17 @@ pub async fn create_client_and_start_worker( .spawn_essential_handle() .spawn("relay-chain-rpc-worker", None, worker.run()); - let ws_client = ReconnectingWsClient::new(sender).await?; + let ws_client = RpcFrontend::new(sender); - let client = RelayChainRpcClient::new(ws_client).await?; + let client = RelayChainRpcClient::new(ws_client); Ok(client) } impl RelayChainRpcClient { /// Initialize new RPC Client. - async fn new(ws_client: ReconnectingWsClient) -> RelayChainResult { - let client = RelayChainRpcClient { ws_client }; - - Ok(client) + fn new(ws_client: RpcFrontend) -> Self { + RelayChainRpcClient { ws_client } } /// Call a call to `state_call` rpc method. From 3a807c1ca2d4665f8ff74f2669a9f45db913ae44 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 1 Mar 2023 16:26:25 +0100 Subject: [PATCH 09/44] Reorganize crate structure --- Cargo.lock | 7 +- client/relay-chain-rpc-interface/Cargo.toml | 4 +- client/relay-chain-rpc-interface/src/lib.rs | 2 +- .../src/light_client.rs | 283 ------------------ .../src/reconnecting_ws_client.rs | 97 +----- .../src/rpc_client.rs | 149 +++++++-- 6 files changed, 132 insertions(+), 410 deletions(-) delete mode 100644 client/relay-chain-rpc-interface/src/light_client.rs diff --git a/Cargo.lock b/Cargo.lock index 9ddbe8a9504..4fedd2f9af3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -669,9 +669,9 @@ dependencies = [ [[package]] name = "bip39" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5b9d9748b5770d1539657653dc5ac3cd9353549e74238dc0d96c22919128b94" +checksum = "29b9e657de8ff1c3488a4ab77cb51d604eab53415ce34f0bc800f2eac9b13c28" dependencies = [ "bitcoin_hashes", "rand_core 0.4.2", @@ -2475,7 +2475,6 @@ dependencies = [ "event-listener", "futures", "futures-timer", - "itertools", "jsonrpsee", "lru 0.9.0", "parity-scale-codec", @@ -2484,7 +2483,6 @@ dependencies = [ "sc-client-api", "sc-rpc-api", "sc-service", - "sc-tracing", "serde", "serde_json", "smoldot", @@ -2495,6 +2493,7 @@ dependencies = [ "sp-core", "sp-state-machine", "sp-storage", + "thiserror", "tokio", "tokio-util 0.7.7", "tracing", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index e242c1e1ed5..ef073b4f966 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -20,9 +20,9 @@ sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } + tokio = { version = "1.25.0", features = ["sync"] } tokio-util = { version = "0.7.7", features = ["compat"] } - futures = "0.3.26" futures-timer = "3.0.2" parity-scale-codec = "3.4.0" @@ -33,10 +33,8 @@ url = "2.3.1" serde_json = "1.0.93" serde = "1.0.152" lru = "0.9.0" - smoldot = { path = "../../../smoldot/lib" } smoldot-light = { path = "../../../smoldot/light-base" } - parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/lib.rs b/client/relay-chain-rpc-interface/src/lib.rs index 818f9e108de..c33a3627030 100644 --- a/client/relay-chain-rpc-interface/src/lib.rs +++ b/client/relay-chain-rpc-interface/src/lib.rs @@ -34,7 +34,7 @@ use std::pin::Pin; pub use url::Url; -mod light_client; +mod light_client_worker; mod reconnecting_ws_client; mod rpc_client; mod tokio_platform; diff --git a/client/relay-chain-rpc-interface/src/light_client.rs b/client/relay-chain-rpc-interface/src/light_client.rs deleted file mode 100644 index 8105e9145ce..00000000000 --- a/client/relay-chain-rpc-interface/src/light_client.rs +++ /dev/null @@ -1,283 +0,0 @@ -// Copyright 2023 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - -use core::time::Duration; -use cumulus_primitives_core::relay_chain::{ - Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, -}; -use futures::{channel::mpsc::Sender, prelude::*, stream::FuturesUnordered}; -use jsonrpsee::core::{ - client::{ - Client as JsonRpseeClient, ClientBuilder, ClientT, ReceivedMessage, TransportReceiverT, - TransportSenderT, - }, - Error, -}; -use polkadot_service::generic::SignedBlock; -use sc_rpc_api::chain::ChainApiClient; -use sc_service::SpawnTaskHandle; -use smoldot_light::{ChainId, Client as SmoldotClient, ClientConfig, JsonRpcResponses}; -use std::sync::Arc; -use tokio::sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}; - -use crate::{reconnecting_ws_client::RpcDispatcherMessage, tokio_platform::TokioPlatform}; - -const LOG_TARGET: &str = "rpc-light-client-worker"; - -#[derive(thiserror::Error, Debug)] -enum LightClientError { - #[error("Error occured while calling inserting smoldot request: {0}")] - SmoldotError(String), - #[error("Nothing returned from json_rpc_responses")] - EmptyReturn, -} - -/// Sending adapter allowing JsonRpsee to send messages to smoldot -struct SimpleStringSender { - inner: smoldot_light::Client, - chain_id: ChainId, -} - -#[async_trait::async_trait] -impl TransportSenderT for SimpleStringSender { - type Error = LightClientError; - - async fn send(&mut self, msg: String) -> Result<(), Self::Error> { - self.inner - .json_rpc_request(msg, self.chain_id) - .map_err(|e| LightClientError::SmoldotError(e.to_string())) - } -} - -/// Receiving adapter allowing JsonRpsee to receive messages from smoldot -struct SimpleStringReceiver { - inner: JsonRpcResponses, -} - -#[async_trait::async_trait] -impl TransportReceiverT for SimpleStringReceiver { - type Error = LightClientError; - - async fn receive(&mut self) -> Result { - self.inner - .next() - .await - .map(|message| jsonrpsee::core::client::ReceivedMessage::Text(message)) - .ok_or(LightClientError::EmptyReturn) - } -} - -pub async fn build_smoldot_client( - spawner: SpawnTaskHandle, - chain_spec: &str, -) -> (SmoldotClient, ChainId, JsonRpcResponses) { - let config = ClientConfig { - tasks_spawner: Box::new(move |_, task| { - spawner.spawn("cumulus-relay-chain-light-client-task", None, task); - }), - system_name: env!("CARGO_PKG_NAME").to_string(), - system_version: env!("CARGO_PKG_VERSION").to_string(), - }; - - let mut client: SmoldotClient = SmoldotClient::new(config); - - // Ask the client to connect to a chain. - let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client - .add_chain(smoldot_light::AddChainConfig { - specification: chain_spec, - disable_json_rpc: false, - potential_relay_chains: core::iter::empty(), - database_content: "", - user_data: (), - }) - .unwrap(); - - (client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed")) -} - -pub struct LightClientRpcWorker { - client_receiver: Receiver, - imported_header_listeners: Vec>, - finalized_header_listeners: Vec>, - best_header_listeners: Vec>, - smoldot_client: Arc, -} - -fn distribute_header(header: RelayHeader, senders: &mut Vec>) { - senders.retain_mut(|e| { - match e.try_send(header.clone()) { - // Receiver has been dropped, remove Sender from list. - Err(error) if error.is_disconnected() => false, - // Channel is full. This should not happen. - // TODO: Improve error handling here - // https://github.com/paritytech/cumulus/issues/1482 - Err(error) => { - tracing::error!(target: LOG_TARGET, ?error, "Event distribution channel has reached its limit. This can lead to missed notifications."); - true - }, - _ => true, - } - }); -} - -fn handle_notification( - maybe_header: Option>, - senders: &mut Vec>, -) -> bool { - match maybe_header { - Some(Ok(header)) => distribute_header(header, senders), - None => { - tracing::error!(target: LOG_TARGET, "Subscription closed."); - return true - }, - Some(Err(error)) => { - tracing::error!(target: LOG_TARGET, ?error, "Error in RPC subscription."); - return true - }, - }; - return false -} - -impl LightClientRpcWorker { - pub fn new( - smoldot_client: smoldot_light::Client, - json_rpc_responses: JsonRpcResponses, - chain_id: ChainId, - ) -> (LightClientRpcWorker, TokioSender) { - let (tx, rx) = tokio_channel(100); - let smoldot_adapter_sender = SimpleStringSender { inner: smoldot_client, chain_id }; - let smoldot_adapter_receiver = SimpleStringReceiver { inner: json_rpc_responses }; - let smoldot_jsonrpsee_client = Arc::new( - ClientBuilder::default() - .build_with_tokio(smoldot_adapter_sender, smoldot_adapter_receiver), - ); - let worker = LightClientRpcWorker { - client_receiver: rx, - imported_header_listeners: Default::default(), - finalized_header_listeners: Default::default(), - best_header_listeners: Default::default(), - smoldot_client: smoldot_jsonrpsee_client, - }; - (worker, tx) - } - - pub async fn run(mut self) { - tokio::time::sleep(Duration::from_secs(20)).await; - - let mut pending_requests = FuturesUnordered::new(); - - let Ok(mut new_head_subscription) = , - >>::subscribe_new_heads(&self.smoldot_client) - .await else { - tracing::error!( - target: LOG_TARGET, - "Unable to initialize new heads subscription" - ); - return; - }; - - let Ok(mut finalized_head_subscription) = , - >>::subscribe_finalized_heads(&self.smoldot_client) - .await else { - tracing::error!( - target: LOG_TARGET, - "Unable to initialize finalized heads subscription" - ); - return; - }; - - let Ok(mut all_head_subscription) = , - >>::subscribe_all_heads(&self.smoldot_client).await else { - tracing::error!( - target: LOG_TARGET, - "Unable to initialize all heads subscription" - ); - return - }; - - loop { - tokio::select! { - evt = self.client_receiver.recv() => match evt { - Some(RpcDispatcherMessage::RegisterBestHeadListener(tx)) => { - self.best_header_listeners.push(tx); - }, - Some(RpcDispatcherMessage::RegisterImportListener(tx)) => { - self.imported_header_listeners.push(tx) - }, - Some(RpcDispatcherMessage::RegisterFinalizationListener(tx)) => { - self.finalized_header_listeners.push(tx) - }, - Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { - let closure_client = self.smoldot_client.clone(); - tracing::info!( - target: LOG_TARGET, - len = pending_requests.len(), - "Inserting request: {method:?}" - ); - pending_requests.push(async move { - let response = closure_client.request(&method, params).await; - tracing::info!( - target: LOG_TARGET, - method, - ?response, - "Response" - ); - if let Err(err) = response_sender.send(response) { - tracing::debug!( - target: LOG_TARGET, - ?err, - "Recipient no longer interested in request result" - ); - }; - }); - }, - None => { - tracing::error!(target: LOG_TARGET, "RPC client receiver closed. Stopping RPC Worker."); - return; - } - }, - _ = pending_requests.next(), if !pending_requests.is_empty() => {}, - import_event = all_head_subscription.next() => { - if handle_notification(import_event, &mut self.imported_header_listeners) { - return - } - }, - best_header_event = new_head_subscription.next() => { - if handle_notification(best_header_event, &mut self.best_header_listeners) { - return - } - } - finalized_event = finalized_head_subscription.next() => { - if handle_notification(finalized_event, &mut self.finalized_header_listeners) { - return - } - } - } - } - } -} diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index 342262e30f5..9da2f481990 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -17,12 +17,8 @@ use cumulus_primitives_core::relay_chain::{ Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, }; -use cumulus_relay_chain_interface::RelayChainError; use futures::{ - channel::{ - mpsc::{Receiver, Sender}, - oneshot::Sender as OneshotSender, - }, + channel::{mpsc::Sender, oneshot::Sender as OneshotSender}, future::BoxFuture, stream::FuturesUnordered, FutureExt, StreamExt, @@ -44,96 +40,9 @@ use tokio::sync::mpsc::{ }; use url::Url; -const NOTIFICATION_CHANNEL_SIZE_LIMIT: usize = 20; -const LOG_TARGET: &str = "reconnecting-websocket-client"; - -/// Messages for communication between [`ReconnectingWsClient`] and [`ReconnectingWebsocketWorker`]. -#[derive(Debug)] -pub enum RpcDispatcherMessage { - RegisterBestHeadListener(Sender), - RegisterImportListener(Sender), - RegisterFinalizationListener(Sender), - Request(String, ArrayParams, OneshotSender>), -} - -/// Frontend for performing websocket requests. -/// Requests and stream requests are forwarded to [`ReconnectingWebsocketWorker`]. -#[derive(Debug, Clone)] -pub struct RpcFrontend { - /// Channel to communicate with the RPC worker - to_worker_channel: TokioSender, -} - -impl RpcFrontend { - /// Create a new websocket client frontend. - pub fn new(sender: TokioSender) -> Self { - tracing::debug!(target: LOG_TARGET, "Instantiating reconnecting websocket client"); - Self { to_worker_channel: sender } - } -} - -impl RpcFrontend { - /// Perform a request via websocket connection. - pub async fn request(&self, method: &str, params: ArrayParams) -> Result - where - R: serde::de::DeserializeOwned, - { - let (tx, rx) = futures::channel::oneshot::channel(); - - let message = RpcDispatcherMessage::Request(method.into(), params, tx); - self.to_worker_channel.send(message).await.map_err(|err| { - RelayChainError::WorkerCommunicationError(format!( - "Unable to send message to RPC worker: {}", - err - )) - })?; - - let value = rx.await.map_err(|err| { - RelayChainError::WorkerCommunicationError(format!( - "Unexpected channel close on RPC worker side: {}", - err - )) - })??; +use crate::rpc_client::RpcDispatcherMessage; - serde_json::from_value(value) - .map_err(|_| RelayChainError::GenericError("Unable to deserialize value".to_string())) - } - - /// Get a stream of new best relay chain headers - pub fn get_best_heads_stream(&self) -> Result, RelayChainError> { - let (tx, rx) = - futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); - self.send_register_message_to_worker(RpcDispatcherMessage::RegisterBestHeadListener(tx))?; - Ok(rx) - } - - /// Get a stream of finalized relay chain headers - pub fn get_finalized_heads_stream(&self) -> Result, RelayChainError> { - let (tx, rx) = - futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); - self.send_register_message_to_worker(RpcDispatcherMessage::RegisterFinalizationListener( - tx, - ))?; - Ok(rx) - } - - /// Get a stream of all imported relay chain headers - pub fn get_imported_heads_stream(&self) -> Result, RelayChainError> { - let (tx, rx) = - futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); - self.send_register_message_to_worker(RpcDispatcherMessage::RegisterImportListener(tx))?; - Ok(rx) - } - - fn send_register_message_to_worker( - &self, - message: RpcDispatcherMessage, - ) -> Result<(), RelayChainError> { - self.to_worker_channel - .try_send(message) - .map_err(|e| RelayChainError::WorkerCommunicationError(e.to_string())) - } -} +const LOG_TARGET: &str = "reconnecting-websocket-client"; /// Worker that should be used in combination with [`RelayChainRpcClient`]. Must be polled to distribute header notifications to listeners. pub struct ReconnectingWebsocketWorker { diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index de8837c7255..dbf134b4964 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -16,10 +16,21 @@ use std::path::PathBuf; -use crate::{ - light_client, - reconnecting_ws_client::{ReconnectingWebsocketWorker, RpcFrontend}, +use futures::channel::{ + mpsc::{Receiver, Sender}, + oneshot::Sender as OneshotSender, +}; +use jsonrpsee::{ + core::{params::ArrayParams, Error as JsonRpseeError}, + rpc_params, }; +use serde::de::DeserializeOwned; +use serde_json::Value as JsonValue; +use tokio::sync::mpsc::Sender as TokioSender; + +use parity_scale_codec::{Decode, Encode}; +use polkadot_service::{BlockNumber, TaskManager}; + use cumulus_primitives_core::{ relay_chain::{ vstaging::ExecutorParams, CandidateCommitments, CandidateEvent, CandidateHash, @@ -31,20 +42,22 @@ use cumulus_primitives_core::{ InboundDownwardMessage, ParaId, PersistedValidationData, }; use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; -use futures::channel::mpsc::Receiver; -use jsonrpsee::{core::params::ArrayParams, rpc_params}; -use parity_scale_codec::{Decode, Encode}; -use polkadot_service::{BlockNumber, TaskManager}; + use sc_client_api::StorageData; use sc_rpc_api::{state::ReadProof, system::Health}; -use serde::de::DeserializeOwned; use sp_api::RuntimeVersion; use sp_consensus_babe::Epoch; use sp_core::sp_std::collections::btree_map::BTreeMap; use sp_storage::StorageKey; + +use crate::{ + light_client_worker::{build_smoldot_client, LightClientRpcWorker}, + reconnecting_ws_client::ReconnectingWebsocketWorker, +}; pub use url::Url; const LOG_TARGET: &str = "relay-chain-rpc-client"; +const NOTIFICATION_CHANNEL_SIZE_LIMIT: usize = 20; /// Client that maps RPC methods and deserializes results #[derive(Clone)] @@ -53,6 +66,24 @@ pub struct RelayChainRpcClient { ws_client: RpcFrontend, } +/// Entry point to create [`RelayChainRpcClient`] and start a worker that distributes notifications. +pub async fn create_client_and_start_worker( + urls: Vec, + task_manager: &mut TaskManager, +) -> RelayChainResult { + let (worker, sender) = ReconnectingWebsocketWorker::new(urls).await; + + task_manager + .spawn_essential_handle() + .spawn("relay-chain-rpc-worker", None, worker.run()); + + let ws_client = RpcFrontend::new(sender); + + let client = RelayChainRpcClient::new(ws_client); + + Ok(client) +} + pub async fn create_client_and_start_light_client_worker( chain_spec_path: PathBuf, task_manager: &mut polkadot_service::TaskManager, @@ -60,9 +91,8 @@ pub async fn create_client_and_start_light_client_worker( let spec = std::fs::read_to_string(chain_spec_path) .map_err(|e| RelayChainError::GenericError(e.to_string()))?; let (client, chain_id, json_rpc_responses) = - light_client::build_smoldot_client(task_manager.spawn_handle(), &spec).await; - let (worker, sender) = - light_client::LightClientRpcWorker::new(client, json_rpc_responses, chain_id); + build_smoldot_client(task_manager.spawn_handle(), &spec).await; + let (worker, sender) = LightClientRpcWorker::new(client, json_rpc_responses, chain_id); task_manager .spawn_essential_handle() @@ -75,27 +105,96 @@ pub async fn create_client_and_start_light_client_worker( Ok(client) } -/// Entry point to create [`RelayChainRpcClient`] and start a worker that distributes notifications. -pub async fn create_client_and_start_worker( - urls: Vec, - task_manager: &mut TaskManager, -) -> RelayChainResult { - let (worker, sender) = ReconnectingWebsocketWorker::new(urls).await; +/// Messages for communication between [`ReconnectingWsClient`] and [`ReconnectingWebsocketWorker`]. +#[derive(Debug)] +pub enum RpcDispatcherMessage { + RegisterBestHeadListener(Sender), + RegisterImportListener(Sender), + RegisterFinalizationListener(Sender), + Request(String, ArrayParams, OneshotSender>), +} - task_manager - .spawn_essential_handle() - .spawn("relay-chain-rpc-worker", None, worker.run()); +/// Frontend for performing websocket requests. +/// Requests and stream requests are forwarded to [`ReconnectingWebsocketWorker`]. +#[derive(Debug, Clone)] +pub struct RpcFrontend { + /// Channel to communicate with the RPC worker + to_worker_channel: TokioSender, +} - let ws_client = RpcFrontend::new(sender); +impl RpcFrontend { + /// Create a new websocket client frontend. + pub fn new(sender: TokioSender) -> Self { + tracing::debug!(target: LOG_TARGET, "Instantiating reconnecting websocket client"); + Self { to_worker_channel: sender } + } +} - let client = RelayChainRpcClient::new(ws_client); +impl RpcFrontend { + /// Perform a request via websocket connection. + pub async fn request(&self, method: &str, params: ArrayParams) -> Result + where + R: serde::de::DeserializeOwned, + { + let (tx, rx) = futures::channel::oneshot::channel(); - Ok(client) -} + let message = RpcDispatcherMessage::Request(method.into(), params, tx); + self.to_worker_channel.send(message).await.map_err(|err| { + RelayChainError::WorkerCommunicationError(format!( + "Unable to send message to RPC worker: {}", + err + )) + })?; + let value = rx.await.map_err(|err| { + RelayChainError::WorkerCommunicationError(format!( + "Unexpected channel close on RPC worker side: {}", + err + )) + })??; + + serde_json::from_value(value) + .map_err(|_| RelayChainError::GenericError("Unable to deserialize value".to_string())) + } + + /// Get a stream of new best relay chain headers + pub fn get_best_heads_stream(&self) -> Result, RelayChainError> { + let (tx, rx) = + futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); + self.send_register_message_to_worker(RpcDispatcherMessage::RegisterBestHeadListener(tx))?; + Ok(rx) + } + + /// Get a stream of finalized relay chain headers + pub fn get_finalized_heads_stream(&self) -> Result, RelayChainError> { + let (tx, rx) = + futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); + self.send_register_message_to_worker(RpcDispatcherMessage::RegisterFinalizationListener( + tx, + ))?; + Ok(rx) + } + + /// Get a stream of all imported relay chain headers + pub fn get_imported_heads_stream(&self) -> Result, RelayChainError> { + let (tx, rx) = + futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); + self.send_register_message_to_worker(RpcDispatcherMessage::RegisterImportListener(tx))?; + Ok(rx) + } + + fn send_register_message_to_worker( + &self, + message: RpcDispatcherMessage, + ) -> Result<(), RelayChainError> { + self.to_worker_channel + .try_send(message) + .map_err(|e| RelayChainError::WorkerCommunicationError(e.to_string())) + } +} impl RelayChainRpcClient { /// Initialize new RPC Client. - fn new(ws_client: RpcFrontend) -> Self { + pub(crate) fn new(ws_client: RpcFrontend) -> Self { RelayChainRpcClient { ws_client } } From 1aee380da21ede743e9f9d76c989bcd5d72550d6 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 1 Mar 2023 16:56:31 +0100 Subject: [PATCH 10/44] Use relay chain arg chainspec for light-client --- client/cli/src/lib.rs | 12 ++++----- client/relay-chain-minimal-node/src/lib.rs | 22 ++++++++++++---- .../src/reconnecting_ws_client.rs | 19 +------------- .../src/rpc_client.rs | 25 ++++++++++++++----- client/service/src/lib.rs | 9 ++++--- test/service/src/lib.rs | 5 ++-- 6 files changed, 51 insertions(+), 41 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 8083fdf1123..702cc2bf9b0 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -299,9 +299,9 @@ pub struct RunCmd { )] pub relay_chain_rpc_urls: Vec, - /// Embed a light client for the relay chain - #[arg(long)] - pub embedded_light_client: Option, + /// EXPERIMENTAL: Embed a light client for the relay chain + #[arg(long, conflicts_with = "relay_chain_rpc_url")] + pub embedded_light_client: bool, } impl RunCmd { @@ -318,7 +318,7 @@ impl RunCmd { pub fn collator_options(&self) -> CollatorOptions { CollatorOptions { relay_chain_rpc_urls: self.relay_chain_rpc_urls.clone(), - embedded_light_client: self.embedded_light_client.clone(), + embedded_light_client: self.embedded_light_client, } } } @@ -329,8 +329,8 @@ pub struct CollatorOptions { /// Location of relay chain full node pub relay_chain_rpc_urls: Vec, - /// EXPERIMENTAL: Use embedded light client for the relay chain - pub embedded_light_client: Option, + /// Use embedded light client for the relay chain + pub embedded_light_client: bool, } /// A non-redundant version of the `RunCmd` that sets the `validator` field when the diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index bf0b5f6a43e..eb488c92141 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -30,7 +30,7 @@ use polkadot_primitives::CollatorPair; use sc_authority_discovery::Service as AuthorityDiscoveryService; use sc_network::{Event, NetworkService}; use sc_network_common::service::NetworkEventStream; -use std::{path::PathBuf, sync::Arc}; +use std::sync::Arc; use polkadot_service::{Configuration, TaskManager}; @@ -38,13 +38,14 @@ use futures::StreamExt; use sp_runtime::{app_crypto::Pair, traits::Block as BlockT}; +mod blockchain_rpc_client; mod collator_overseer; - mod network; -mod blockchain_rpc_client; pub use blockchain_rpc_client::BlockChainRpcClient; +const LOG_TARGET: &str = "minimal-relaychain-node"; + fn build_authority_discovery_service( task_manager: &TaskManager, client: Arc, @@ -109,10 +110,21 @@ pub async fn build_minimal_relay_chain_node( pub async fn build_minimal_relay_chain_node_light_client( polkadot_config: Configuration, task_manager: &mut TaskManager, - chain_spec_path: PathBuf, ) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { + tracing::info!( + target: LOG_TARGET, + chain_name = polkadot_config.chain_spec.name(), + chain_id = polkadot_config.chain_spec.id(), + "Initializing embedded light client with chain spec." + ); + + let spec = polkadot_config + .chain_spec + .as_json(true) + .map_err(RelayChainError::GenericError)?; + let client = cumulus_relay_chain_rpc_interface::create_client_and_start_light_client_worker( - chain_spec_path, + spec, task_manager, ) .await?; diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index 9da2f481990..08ef79fea96 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -40,7 +40,7 @@ use tokio::sync::mpsc::{ }; use url::Url; -use crate::rpc_client::RpcDispatcherMessage; +use crate::rpc_client::{distribute_header, RpcDispatcherMessage}; const LOG_TARGET: &str = "reconnecting-websocket-client"; @@ -56,23 +56,6 @@ pub struct ReconnectingWebsocketWorker { best_header_listeners: Vec>, } -fn distribute_header(header: RelayHeader, senders: &mut Vec>) { - senders.retain_mut(|e| { - match e.try_send(header.clone()) { - // Receiver has been dropped, remove Sender from list. - Err(error) if error.is_disconnected() => false, - // Channel is full. This should not happen. - // TODO: Improve error handling here - // https://github.com/paritytech/cumulus/issues/1482 - Err(error) => { - tracing::error!(target: LOG_TARGET, ?error, "Event distribution channel has reached its limit. This can lead to missed notifications."); - true - }, - _ => true, - } - }); -} - /// Manages the active websocket client. /// Responsible for creating request futures, subscription streams /// and reconnections. diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index dbf134b4964..239722ae7c3 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -14,8 +14,6 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use std::path::PathBuf; - use futures::channel::{ mpsc::{Receiver, Sender}, oneshot::Sender as OneshotSender, @@ -85,13 +83,11 @@ pub async fn create_client_and_start_worker( } pub async fn create_client_and_start_light_client_worker( - chain_spec_path: PathBuf, + chain_spec: String, task_manager: &mut polkadot_service::TaskManager, ) -> RelayChainResult { - let spec = std::fs::read_to_string(chain_spec_path) - .map_err(|e| RelayChainError::GenericError(e.to_string()))?; let (client, chain_id, json_rpc_responses) = - build_smoldot_client(task_manager.spawn_handle(), &spec).await; + build_smoldot_client(task_manager.spawn_handle(), &chain_spec).await?; let (worker, sender) = LightClientRpcWorker::new(client, json_rpc_responses, chain_id); task_manager @@ -616,3 +612,20 @@ impl RelayChainRpcClient { self.ws_client.get_finalized_heads_stream() } } + +pub fn distribute_header(header: RelayHeader, senders: &mut Vec>) { + senders.retain_mut(|e| { + match e.try_send(header.clone()) { + // Receiver has been dropped, remove Sender from list. + Err(error) if error.is_disconnected() => false, + // Channel is full. This should not happen. + // TODO: Improve error handling here + // https://github.com/paritytech/cumulus/issues/1482 + Err(error) => { + tracing::error!(target: LOG_TARGET, ?error, "Event distribution channel has reached its limit. This can lead to missed notifications."); + true + }, + _ => true, + } + }); +} diff --git a/client/service/src/lib.rs b/client/service/src/lib.rs index 9585d0576ea..ce70095702d 100644 --- a/client/service/src/lib.rs +++ b/client/service/src/lib.rs @@ -266,9 +266,12 @@ pub async fn build_relay_chain_interface( collator_options.relay_chain_rpc_urls, ) .await - } else if let Some(chain_spec_path) = collator_options.embedded_light_client { - build_minimal_relay_chain_node_light_client(polkadot_config, task_manager, chain_spec_path) - .await + } else if collator_options.embedded_light_client { + build_minimal_relay_chain_node_light_client( + polkadot_config, + task_manager, + ) + .await } else { build_inprocess_relay_chain( polkadot_config, diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index 4d7c67d1906..60952623be1 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -24,7 +24,6 @@ mod genesis; use std::{ future::Future, net::{IpAddr, Ipv4Addr, SocketAddr}, - path::PathBuf, time::Duration, }; use url::Url; @@ -488,7 +487,7 @@ pub struct TestNodeBuilder { storage_update_func_relay_chain: Option>, consensus: Consensus, relay_chain_full_node_url: Vec, - embedded_light_client: Option, + embedded_light_client: bool, } impl TestNodeBuilder { @@ -511,7 +510,7 @@ impl TestNodeBuilder { storage_update_func_relay_chain: None, consensus: Consensus::RelayChain, relay_chain_full_node_url: vec![], - embedded_light_client: None, + embedded_light_client: false, } } From fbcd69d1afe91bdd704b5789829cc472196ca8e2 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 1 Mar 2023 18:30:54 +0100 Subject: [PATCH 11/44] Clean up command line --- client/cli/src/lib.rs | 5 +++-- client/relay-chain-minimal-node/src/lib.rs | 4 +--- test/service/src/lib.rs | 10 +++++++++- zombienet/tests/0003-full_node_catching_up.feature | 1 + zombienet/tests/0003-full_node_catching_up.toml | 8 ++++++++ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 702cc2bf9b0..2e26992901e 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -299,8 +299,9 @@ pub struct RunCmd { )] pub relay_chain_rpc_urls: Vec, - /// EXPERIMENTAL: Embed a light client for the relay chain - #[arg(long, conflicts_with = "relay_chain_rpc_url")] + /// EXPERIMENTAL: Embed a light client for the relay chain. Only supported for full-nodes. + /// Will use the specified relay chain chainspec. + #[arg(long, conflicts_with_all = ["relay_chain_rpc_url", "validator"])] pub embedded_light_client: bool, } diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index eb488c92141..a06256f4e5a 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -120,7 +120,7 @@ pub async fn build_minimal_relay_chain_node_light_client( let spec = polkadot_config .chain_spec - .as_json(true) + .as_json(false) .map_err(RelayChainError::GenericError)?; let client = cumulus_relay_chain_rpc_interface::create_client_and_start_light_client_worker( @@ -152,8 +152,6 @@ pub async fn build_minimal_relay_chain_node_light_client( /// - NetworkBridgeRx /// - NetworkBridgeTx /// - RuntimeApi -/// - ChainApi -/// - AvailabilityDistribution #[sc_tracing::logging::prefix_logs_with("Relaychain")] async fn new_minimal_relay_chain( mut config: Configuration, diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index 60952623be1..208b498a523 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -41,7 +41,9 @@ use cumulus_client_service::{ use cumulus_primitives_core::ParaId; use cumulus_relay_chain_inprocess_interface::RelayChainInProcessInterface; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; +use cumulus_relay_chain_minimal_node::{ + build_minimal_relay_chain_node, build_minimal_relay_chain_node_light_client, +}; use cumulus_test_runtime::{Hash, Header, NodeBlock as Block, RuntimeApi}; @@ -244,6 +246,12 @@ async fn build_relay_chain_interface( .map(|r| r.0) } + if collator_options.embedded_light_client { + return build_minimal_relay_chain_node_light_client(relay_chain_config, task_manager) + .await + .map(|r| r.0) + } + let relay_chain_full_node = polkadot_test_service::new_full( relay_chain_config, if let Some(ref key) = collator_key { diff --git a/zombienet/tests/0003-full_node_catching_up.feature b/zombienet/tests/0003-full_node_catching_up.feature index de8353bb134..b563df9aea4 100644 --- a/zombienet/tests/0003-full_node_catching_up.feature +++ b/zombienet/tests/0003-full_node_catching_up.feature @@ -10,3 +10,4 @@ eve: is up alice: parachain 2000 is registered within 225 seconds dave: reports block height is at least 7 within 250 seconds eve: reports block height is at least 7 within 250 seconds +ferdie: reports block height is at least 7 within 250 seconds diff --git a/zombienet/tests/0003-full_node_catching_up.toml b/zombienet/tests/0003-full_node_catching_up.toml index 48ce352975f..9711fea6409 100644 --- a/zombienet/tests/0003-full_node_catching_up.toml +++ b/zombienet/tests/0003-full_node_catching_up.toml @@ -40,3 +40,11 @@ cumulus_based = true image = "{{COL_IMAGE}}" command = "test-parachain" args = ["--reserved-only", "--reserved-nodes {{'charlie'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'alice'|zombie('wsUri')}}"] + + # run cumulus eve (a parachain full node) and wait for it to sync some blocks + [[parachains.collators]] + name = "ferdie" + validator = false + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["--reserved-only", "--reserved-nodes {{'charlie'|zombie('multiAddress')}}", "--embedded-light-client"] From 27c0ef9e7bddfde898102f92b41bc71419ae0a99 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 2 Mar 2023 10:15:19 +0100 Subject: [PATCH 12/44] Add light client worker file --- .../src/light_client_worker.rs | 277 +++++++++++++++ .../src/tokio_platform.rs | 326 ++++++++++++++++++ 2 files changed, 603 insertions(+) create mode 100644 client/relay-chain-rpc-interface/src/light_client_worker.rs create mode 100644 client/relay-chain-rpc-interface/src/tokio_platform.rs diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs new file mode 100644 index 00000000000..a37041db501 --- /dev/null +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -0,0 +1,277 @@ +// Copyright 2023 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! This module contains a worker that sends RPC requests to an +//! embedded light client. Even though no networking is involved, +//! we treat the light-client as a normal JsonRpc target. + +use core::time::Duration; +use std::sync::Arc; + +use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; +use futures::{channel::mpsc::Sender, prelude::*, stream::FuturesUnordered}; +use jsonrpsee::core::{ + client::{ + Client as JsonRpseeClient, ClientBuilder, ClientT, ReceivedMessage, TransportReceiverT, + TransportSenderT, + }, + Error, +}; +use smoldot_light::{ChainId, Client as SmoldotClient, ClientConfig, JsonRpcResponses}; +use tokio::sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}; + +use cumulus_primitives_core::relay_chain::{ + Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, +}; + +use polkadot_service::generic::SignedBlock; + +use sc_rpc_api::chain::ChainApiClient; +use sc_service::SpawnTaskHandle; + +use crate::{rpc_client::RpcDispatcherMessage, tokio_platform::TokioPlatform}; + +const LOG_TARGET: &str = "rpc-light-client-worker"; + +#[derive(thiserror::Error, Debug)] +enum LightClientError { + #[error("Error occured while calling inserting smoldot request: {0}")] + SmoldotError(String), + #[error("Nothing returned from json_rpc_responses")] + EmptyReturn, +} + +/// Sending adapter allowing JsonRpsee to send messages to smoldot +struct SimpleStringSender { + inner: smoldot_light::Client, + chain_id: ChainId, +} + +#[async_trait::async_trait] +impl TransportSenderT for SimpleStringSender { + type Error = LightClientError; + + async fn send(&mut self, msg: String) -> Result<(), Self::Error> { + self.inner + .json_rpc_request(msg, self.chain_id) + .map_err(|e| LightClientError::SmoldotError(e.to_string())) + } +} + +/// Receiving adapter allowing JsonRpsee to receive messages from smoldot +struct SimpleStringReceiver { + inner: JsonRpcResponses, +} + +#[async_trait::async_trait] +impl TransportReceiverT for SimpleStringReceiver { + type Error = LightClientError; + + async fn receive(&mut self) -> Result { + self.inner + .next() + .await + .map(|message| jsonrpsee::core::client::ReceivedMessage::Text(message)) + .ok_or(LightClientError::EmptyReturn) + } +} + +/// Build a smoldot client and add the specified chain spec to it. +pub async fn build_smoldot_client( + spawner: SpawnTaskHandle, + chain_spec: &str, +) -> RelayChainResult<(SmoldotClient, ChainId, JsonRpcResponses)> { + let config = ClientConfig { + tasks_spawner: Box::new(move |_, task| { + spawner.spawn("cumulus-relay-chain-light-client-task", None, task); + }), + system_name: env!("CARGO_PKG_NAME").to_string(), + system_version: env!("CARGO_PKG_VERSION").to_string(), + }; + + let mut client: SmoldotClient = SmoldotClient::new(config); + + // Ask the client to connect to a chain. + let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client + .add_chain(smoldot_light::AddChainConfig { + specification: chain_spec, + disable_json_rpc: false, + potential_relay_chains: core::iter::empty(), + database_content: "", + user_data: (), + }) + .map_err(RelayChainError::GenericError)?; + + Ok((client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed"))) +} + +pub struct LightClientRpcWorker { + client_receiver: Receiver, + imported_header_listeners: Vec>, + finalized_header_listeners: Vec>, + best_header_listeners: Vec>, + smoldot_client: Arc, +} + +fn handle_notification( + maybe_header: Option>, + senders: &mut Vec>, +) -> bool { + match maybe_header { + Some(Ok(header)) => crate::rpc_client::distribute_header(header, senders), + None => { + tracing::error!(target: LOG_TARGET, "Subscription closed."); + return true + }, + Some(Err(error)) => { + tracing::error!(target: LOG_TARGET, ?error, "Error in RPC subscription."); + return true + }, + }; + return false +} + +impl LightClientRpcWorker { + pub fn new( + smoldot_client: smoldot_light::Client, + json_rpc_responses: JsonRpcResponses, + chain_id: ChainId, + ) -> (LightClientRpcWorker, TokioSender) { + let (tx, rx) = tokio_channel(100); + let smoldot_adapter_sender = SimpleStringSender { inner: smoldot_client, chain_id }; + let smoldot_adapter_receiver = SimpleStringReceiver { inner: json_rpc_responses }; + let smoldot_jsonrpsee_client = Arc::new( + ClientBuilder::default() + .build_with_tokio(smoldot_adapter_sender, smoldot_adapter_receiver), + ); + let worker = LightClientRpcWorker { + client_receiver: rx, + imported_header_listeners: Default::default(), + finalized_header_listeners: Default::default(), + best_header_listeners: Default::default(), + smoldot_client: smoldot_jsonrpsee_client, + }; + (worker, tx) + } + + pub async fn run(mut self) { + tokio::time::sleep(Duration::from_secs(20)).await; + + let mut pending_requests = FuturesUnordered::new(); + + let Ok(mut new_head_subscription) = , + >>::subscribe_new_heads(&self.smoldot_client) + .await else { + tracing::error!( + target: LOG_TARGET, + "Unable to initialize new heads subscription" + ); + return; + }; + + let Ok(mut finalized_head_subscription) = , + >>::subscribe_finalized_heads(&self.smoldot_client) + .await else { + tracing::error!( + target: LOG_TARGET, + "Unable to initialize finalized heads subscription" + ); + return; + }; + + let Ok(mut all_head_subscription) = , + >>::subscribe_all_heads(&self.smoldot_client).await else { + tracing::error!( + target: LOG_TARGET, + "Unable to initialize all heads subscription" + ); + return + }; + + loop { + tokio::select! { + evt = self.client_receiver.recv() => match evt { + Some(RpcDispatcherMessage::RegisterBestHeadListener(tx)) => { + self.best_header_listeners.push(tx); + }, + Some(RpcDispatcherMessage::RegisterImportListener(tx)) => { + self.imported_header_listeners.push(tx) + }, + Some(RpcDispatcherMessage::RegisterFinalizationListener(tx)) => { + self.finalized_header_listeners.push(tx) + }, + Some(RpcDispatcherMessage::Request(method, params, response_sender)) => { + let closure_client = self.smoldot_client.clone(); + tracing::debug!( + target: LOG_TARGET, + len = pending_requests.len(), + method, + "Request" + ); + pending_requests.push(async move { + let response = closure_client.request(&method, params).await; + tracing::debug!( + target: LOG_TARGET, + method, + ?response, + "Response" + ); + if let Err(err) = response_sender.send(response) { + tracing::debug!( + target: LOG_TARGET, + ?err, + "Recipient no longer interested in request result" + ); + }; + }); + }, + None => { + tracing::error!(target: LOG_TARGET, "RPC client receiver closed. Stopping RPC Worker."); + return; + } + }, + _ = pending_requests.next(), if !pending_requests.is_empty() => {}, + import_event = all_head_subscription.next() => { + if handle_notification(import_event, &mut self.imported_header_listeners) { + return + } + }, + best_header_event = new_head_subscription.next() => { + if handle_notification(best_header_event, &mut self.best_header_listeners) { + return + } + } + finalized_event = finalized_head_subscription.next() => { + if handle_notification(finalized_event, &mut self.finalized_header_listeners) { + return + } + } + } + } + } +} diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs new file mode 100644 index 00000000000..a2a8994e749 --- /dev/null +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -0,0 +1,326 @@ +// Copyright 2023 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +use core::time::Duration; +use futures::{channel::mpsc, prelude::*, task::Poll}; +use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; +use smoldot_light::platform::{ + ConnectError, PlatformConnection, PlatformSubstreamDirection, ReadBuffer, +}; +use std::{ + collections::VecDeque, + io::IoSlice, + net::{IpAddr, SocketAddr}, + pin::Pin, + sync::Arc, +}; +use tokio::net::TcpStream; + +use tokio_util::compat::TokioAsyncReadCompatExt; +pub struct TokioPlatform; + +/// Implementation detail of [`AsyncStdTcpWebSocket`]. +pub struct TokioStream { + shared: Arc, + read_data_rx: Arc>>>>, + read_buffer: Option>, +} + +struct StreamShared { + guarded: parking_lot::Mutex, + write_queue_pushed: event_listener::Event, +} + +struct StreamSharedGuarded { + write_queue: VecDeque, +} + +impl smoldot_light::platform::Platform for TokioPlatform { + type Delay = future::BoxFuture<'static, ()>; + type Yield = future::Ready<()>; + type Instant = std::time::Instant; + type Connection = std::convert::Infallible; + type Stream = TokioStream; + type ConnectFuture = future::BoxFuture< + 'static, + Result, ConnectError>, + >; + type StreamDataFuture<'a> = future::BoxFuture<'a, ()>; + type NextSubstreamFuture<'a> = + future::Pending>; + + fn now_from_unix_epoch() -> Duration { + // Intentionally panic if the time is configured earlier than the UNIX EPOCH. + std::time::UNIX_EPOCH.elapsed().expect("Time should be after unix epoch.") + } + + fn now() -> Self::Instant { + std::time::Instant::now() + } + + fn sleep(duration: Duration) -> Self::Delay { + tokio::time::sleep(duration).boxed() + } + + fn sleep_until(when: Self::Instant) -> Self::Delay { + tokio::time::sleep_until(when.into()).boxed() + } + + fn yield_after_cpu_intensive() -> Self::Yield { + // No-op. + future::ready(()) + } + + fn connect(multiaddr: &str) -> Self::ConnectFuture { + // We simply copy the address to own it. We could be more zero-cost here, but doing so + // would considerably complicate the implementation. + let multiaddr = multiaddr.to_owned(); + + Box::pin(async move { + let addr = multiaddr.parse::().map_err(|_| ConnectError { + is_bad_addr: true, + message: format!("Failed to parse address"), + })?; + + let mut iter = addr.iter().fuse(); + let proto1 = iter.next().ok_or(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + })?; + let proto2 = iter.next().ok_or(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + })?; + let proto3 = iter.next(); + + if iter.next().is_some() { + return Err(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + }) + } + + // TODO: doesn't support WebSocket secure connections + + // Ensure ahead of time that the multiaddress is supported. + let (addr, host_if_websocket) = match (&proto1, &proto2, &proto3) { + (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), None) => + (either::Left(SocketAddr::new(IpAddr::V4((*ip).into()), *port)), None), + (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), None) => + (either::Left(SocketAddr::new(IpAddr::V6((*ip).into()), *port)), None), + (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { + let addr = SocketAddr::new(IpAddr::V4((*ip).into()), *port); + (either::Left(addr), Some(addr.to_string())) + }, + (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { + let addr = SocketAddr::new(IpAddr::V6((*ip).into()), *port); + (either::Left(addr), Some(addr.to_string())) + }, + + // TODO: we don't care about the differences between Dns, Dns4, and Dns6 + ( + ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), + ProtocolRef::Tcp(port), + None, + ) => (either::Right((addr.to_string(), *port)), None), + ( + ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), + ProtocolRef::Tcp(port), + Some(ProtocolRef::Ws), + ) => (either::Right((addr.to_string(), *port)), Some(format!("{}:{}", addr, *port))), + + _ => + return Err(ConnectError { + is_bad_addr: true, + message: format!("Unknown protocols combination"), + }), + }; + + let tcp_socket = match addr { + either::Left(socket_addr) => TcpStream::connect(socket_addr).await, + either::Right((dns, port)) => TcpStream::connect((&dns[..], port)).await, + }; + + if let Ok(tcp_socket) = &tcp_socket { + let _ = tcp_socket.set_nodelay(true); + } + + let mut socket = match (tcp_socket, host_if_websocket) { + (Ok(tcp_socket), Some(host)) => future::Either::Right( + websocket::websocket_client_handshake(websocket::Config { + tcp_socket: tcp_socket.compat(), + host: &host, + url: "/", + }) + .await + .map_err(|err| ConnectError { + message: format!("Failed to negotiate WebSocket: {}", err), + is_bad_addr: false, + })?, + ), + (Ok(tcp_socket), None) => future::Either::Left(tcp_socket.compat()), + (Err(err), _) => + return Err(ConnectError { + is_bad_addr: false, + message: format!("Failed to reach peer: {}", err), + }), + }; + + let shared = Arc::new(StreamShared { + guarded: parking_lot::Mutex::new(StreamSharedGuarded { + write_queue: VecDeque::with_capacity(1024), + }), + write_queue_pushed: event_listener::Event::new(), + }); + let shared_clone = shared.clone(); + + let (mut read_data_tx, read_data_rx) = mpsc::channel(2); + let mut read_buffer = vec![0; 4096]; + let mut write_queue_pushed_listener = shared.write_queue_pushed.listen(); + + // TODO: this whole code is a mess, but the Platform trait must be modified to fix it + // TODO: spawning a task per connection is necessary because the Platform trait isn't suitable for better strategies + tokio::spawn(future::poll_fn(move |cx| { + let mut lock = shared.guarded.lock(); + + loop { + match Pin::new(&mut read_data_tx).poll_ready(cx) { + Poll::Ready(Ok(())) => { + match Pin::new(&mut socket).poll_read(cx, &mut read_buffer) { + Poll::Pending => break, + Poll::Ready(result) => { + match result { + Ok(0) | Err(_) => return Poll::Ready(()), // End the task + Ok(bytes) => { + let _ = read_data_tx + .try_send(read_buffer[..bytes].to_vec()); + }, + } + }, + } + }, + Poll::Ready(Err(_)) => return Poll::Ready(()), // End the task + Poll::Pending => break, + } + } + + loop { + if lock.write_queue.is_empty() { + if let Poll::Ready(Err(_)) = Pin::new(&mut socket).poll_flush(cx) { + // End the task + return Poll::Ready(()) + } + + break + } else { + let write_queue_slices = lock.write_queue.as_slices(); + if let Poll::Ready(result) = Pin::new(&mut socket).poll_write_vectored( + cx, + &[ + IoSlice::new(write_queue_slices.0), + IoSlice::new(write_queue_slices.1), + ], + ) { + match result { + Ok(bytes) => + for _ in 0..bytes { + lock.write_queue.pop_front(); + }, + Err(_) => return Poll::Ready(()), // End the task + } + } else { + break + } + } + } + + loop { + if let Poll::Ready(()) = Pin::new(&mut write_queue_pushed_listener).poll(cx) { + write_queue_pushed_listener = shared.write_queue_pushed.listen(); + } else { + break + } + } + + Poll::Pending + })); + + Ok(PlatformConnection::SingleStreamMultistreamSelectNoiseYamux(TokioStream { + shared: shared_clone, + read_data_rx: Arc::new(parking_lot::Mutex::new(read_data_rx.peekable())), + read_buffer: Some(Vec::with_capacity(4096)), + })) + }) + } + + fn open_out_substream(c: &mut Self::Connection) { + // This function can only be called with so-called "multi-stream" connections. We never + // open such connection. + match *c {} + } + + fn next_substream(c: &'_ mut Self::Connection) -> Self::NextSubstreamFuture<'_> { + // This function can only be called with so-called "multi-stream" connections. We never + // open such connection. + match *c {} + } + + fn wait_more_data(stream: &'_ mut Self::Stream) -> Self::StreamDataFuture<'_> { + if stream.read_buffer.as_ref().map_or(true, |b| !b.is_empty()) { + return Box::pin(future::ready(())) + } + + let read_data_rx = stream.read_data_rx.clone(); + Box::pin(future::poll_fn(move |cx| { + let mut lock = read_data_rx.lock(); + Pin::new(&mut *lock).poll_peek(cx).map(|_| ()) + })) + } + + fn read_buffer(stream: &mut Self::Stream) -> ReadBuffer { + if stream.read_buffer.is_none() { + // TODO: the implementation doesn't let us differentiate between Closed and Reset + return ReadBuffer::Reset + } + + let mut lock = stream.read_data_rx.lock(); + while let Some(buf) = lock.next().now_or_never() { + match buf { + Some(b) => stream.read_buffer.as_mut().unwrap().extend(b), + None => { + stream.read_buffer = None; + return ReadBuffer::Reset + }, + } + } + + ReadBuffer::Open(stream.read_buffer.as_ref().unwrap()) + } + + fn advance_read_cursor(stream: &mut Self::Stream, bytes: usize) { + if let Some(read_buffer) = &mut stream.read_buffer { + // TODO: meh for copying + *read_buffer = read_buffer[bytes..].to_vec(); + } + } + + fn send(stream: &mut Self::Stream, data: &[u8]) { + let mut lock = stream.shared.guarded.lock(); + lock.write_queue.reserve(data.len()); + lock.write_queue.extend(data.iter().copied()); + stream.shared.write_queue_pushed.notify(usize::max_value()); + } +} From 007a6995403944980890118cb14ecbb32b0933d8 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 2 Mar 2023 11:19:16 +0100 Subject: [PATCH 13/44] Use smoldot master to avoid wasmtime conflict --- Cargo.lock | 40 ++++++++++--------- client/relay-chain-rpc-interface/Cargo.toml | 4 +- .../src/light_client_worker.rs | 30 ++++++++------ .../src/tokio_platform.rs | 1 - 4 files changed, 41 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4311525b5ac..3d9470ee528 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -669,12 +669,11 @@ dependencies = [ [[package]] name = "bip39" -version = "1.2.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b9e657de8ff1c3488a4ab77cb51d604eab53415ce34f0bc800f2eac9b13c28" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes", - "rand_core 0.4.2", ] [[package]] @@ -9619,12 +9618,6 @@ dependencies = [ "rand_core 0.6.3", ] -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.5.1" @@ -11788,6 +11781,7 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smoldot" version = "0.5.0" +source = "git+https://github.com/smol-dot/smoldot?branch=main#54d88891b1da202b4bf612a150df7b4dbfa03a55" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -11841,6 +11835,7 @@ dependencies = [ [[package]] name = "smoldot-light" version = "0.3.0" +source = "git+https://github.com/smol-dot/smoldot?branch=main#54d88891b1da202b4bf612a150df7b4dbfa03a55" dependencies = [ "async-std", "blake2-rfc", @@ -14339,9 +14334,11 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9086679497e0a0b441d47ebb4781def9fed3d224feee913464a9a9e2950bac89" dependencies = [ + "anyhow", "proc-macro2", "quote", "syn", @@ -14352,8 +14349,9 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "5.0.0" -source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a3dd61938af6e06b60b9c5b916b48c9d2b77102e80559fcb4e5afb0c5f5bfdf" [[package]] name = "wasmtime-cranelift" @@ -14397,8 +14395,9 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "5.0.0" -source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9172517a3331b2a486266f7e16b637b27db6cdf5cddf7d055cd145da14cada46" dependencies = [ "cc", "cfg-if", @@ -14492,8 +14491,9 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "5.0.0" -source = "git+https://github.com/paritytech/wasmtime.git?branch=v5.0.0_lto_fix#8a02705ad378108e43abe23c538688adf73f3b71" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92eb1c58cfa115b29e04ff3882ecbd1c8b6db3639b200c72418be5fd43eab3ff" dependencies = [ "anyhow", "heck", @@ -15188,15 +15188,17 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.3.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703eb1d2f89ff2c52d50f7ff002735e423cea75f0a5dc5c8a4626c4c47cd9ca6" +checksum = "b48914ea89d43d7b51fed072143b86b499059a85e27b401e6cdbd0ca1f0c1dc9" dependencies = [ "anyhow", "id-arena", "indexmap", + "log", "pulldown-cmark", "unicode-xid", + "url", ] [[package]] diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index ef073b4f966..e3df974cf09 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -33,8 +33,8 @@ url = "2.3.1" serde_json = "1.0.93" serde = "1.0.152" lru = "0.9.0" -smoldot = { path = "../../../smoldot/lib" } -smoldot-light = { path = "../../../smoldot/light-base" } +smoldot = { git = "https://github.com/smol-dot/smoldot", branch = "main" } +smoldot-light = { git = "https://github.com/smol-dot/smoldot", branch = "main" } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index a37041db501..513301f9451 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -//! This module contains a worker that sends RPC requests to an +//! This module contains a backend that sends RPC requests to an //! embedded light client. Even though no networking is involved, -//! we treat the light-client as a normal JsonRpc target. +//! we treat the light-client as a normal JsonRPC target. use core::time::Duration; use std::sync::Arc; @@ -98,7 +98,7 @@ pub async fn build_smoldot_client( tasks_spawner: Box::new(move |_, task| { spawner.spawn("cumulus-relay-chain-light-client-task", None, task); }), - system_name: env!("CARGO_PKG_NAME").to_string(), + system_name: "cumulus-embedded-light-client".to_string(), system_version: env!("CARGO_PKG_VERSION").to_string(), }; @@ -118,6 +118,9 @@ pub async fn build_smoldot_client( Ok((client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed"))) } +/// Worker to process incoming [`RpcDispatcherMessage`] to process requests. +/// On startup, this worker opens subscriptions for imported, best and finalized +/// heads. Incoming notifications are distributed to registered listeners. pub struct LightClientRpcWorker { client_receiver: Receiver, imported_header_listeners: Vec>, @@ -129,22 +132,25 @@ pub struct LightClientRpcWorker { fn handle_notification( maybe_header: Option>, senders: &mut Vec>, -) -> bool { +) -> Result<(), ()> { match maybe_header { - Some(Ok(header)) => crate::rpc_client::distribute_header(header, senders), + Some(Ok(header)) => { + crate::rpc_client::distribute_header(header, senders); + Ok(()) + }, None => { tracing::error!(target: LOG_TARGET, "Subscription closed."); - return true + Err(()) }, Some(Err(error)) => { tracing::error!(target: LOG_TARGET, ?error, "Error in RPC subscription."); - return true + Err(()) }, - }; - return false + } } impl LightClientRpcWorker { + /// Create new light-client worker pub fn new( smoldot_client: smoldot_light::Client, json_rpc_responses: JsonRpcResponses, @@ -257,17 +263,17 @@ impl LightClientRpcWorker { }, _ = pending_requests.next(), if !pending_requests.is_empty() => {}, import_event = all_head_subscription.next() => { - if handle_notification(import_event, &mut self.imported_header_listeners) { + if handle_notification(import_event, &mut self.imported_header_listeners).is_err() { return } }, best_header_event = new_head_subscription.next() => { - if handle_notification(best_header_event, &mut self.best_header_listeners) { + if handle_notification(best_header_event, &mut self.best_header_listeners).is_err() { return } } finalized_event = finalized_head_subscription.next() => { - if handle_notification(finalized_event, &mut self.finalized_header_listeners) { + if handle_notification(finalized_event, &mut self.finalized_header_listeners).is_err() { return } } diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index a2a8994e749..6c0f80b11ec 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -32,7 +32,6 @@ use tokio::net::TcpStream; use tokio_util::compat::TokioAsyncReadCompatExt; pub struct TokioPlatform; -/// Implementation detail of [`AsyncStdTcpWebSocket`]. pub struct TokioStream { shared: Arc, read_data_rx: Arc>>>>, From 85c61568259ecbecacedb95e7929db2a8ee176eb Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 2 Mar 2023 11:38:43 +0100 Subject: [PATCH 14/44] Remove sleep --- .../src/light_client_worker.rs | 3 --- .../src/tokio_platform.rs | 14 ++++++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index 513301f9451..9c68d30d63e 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -18,7 +18,6 @@ //! embedded light client. Even though no networking is involved, //! we treat the light-client as a normal JsonRPC target. -use core::time::Duration; use std::sync::Arc; use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; @@ -174,8 +173,6 @@ impl LightClientRpcWorker { } pub async fn run(mut self) { - tokio::time::sleep(Duration::from_secs(20)).await; - let mut pending_requests = FuturesUnordered::new(); let Ok(mut new_head_subscription) = , } +/// Platform implementation for tokio +/// This implementation is a conversion of the implementation for async-std: +/// https://github.com/smol-dot/smoldot/blob/54d88891b1da202b4bf612a150df7b4dbfa03a55/light-base/src/platform/async_std.rs#L40 impl smoldot_light::platform::Platform for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; type Yield = future::Ready<()>; @@ -112,7 +115,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { }) } - // TODO: doesn't support WebSocket secure connections + // doesn't support WebSocket secure connections // Ensure ahead of time that the multiaddress is supported. let (addr, host_if_websocket) = match (&proto1, &proto2, &proto3) { @@ -129,7 +132,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { (either::Left(addr), Some(addr.to_string())) }, - // TODO: we don't care about the differences between Dns, Dns4, and Dns6 + // we don't care about the differences between Dns, Dns4, and Dns6 ( ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), ProtocolRef::Tcp(port), @@ -190,8 +193,8 @@ impl smoldot_light::platform::Platform for TokioPlatform { let mut read_buffer = vec![0; 4096]; let mut write_queue_pushed_listener = shared.write_queue_pushed.listen(); - // TODO: this whole code is a mess, but the Platform trait must be modified to fix it - // TODO: spawning a task per connection is necessary because the Platform trait isn't suitable for better strategies + // this whole code is a mess, but the Platform trait must be modified to fix it + // spawning a task per connection is necessary because the Platform trait isn't suitable for better strategies tokio::spawn(future::poll_fn(move |cx| { let mut lock = shared.guarded.lock(); @@ -291,7 +294,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { fn read_buffer(stream: &mut Self::Stream) -> ReadBuffer { if stream.read_buffer.is_none() { - // TODO: the implementation doesn't let us differentiate between Closed and Reset + // the implementation doesn't let us differentiate between Closed and Reset return ReadBuffer::Reset } @@ -311,7 +314,6 @@ impl smoldot_light::platform::Platform for TokioPlatform { fn advance_read_cursor(stream: &mut Self::Stream, bytes: usize) { if let Some(read_buffer) = &mut stream.read_buffer { - // TODO: meh for copying *read_buffer = read_buffer[bytes..].to_vec(); } } From 489f1aefde48ceb28775e11c2091708e6729a575 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 2 Mar 2023 19:08:47 +0100 Subject: [PATCH 15/44] Improve naming of cli option --- client/cli/src/lib.rs | 8 ++++---- .../relay-chain-rpc-interface/src/light_client_worker.rs | 2 +- client/service/src/lib.rs | 8 ++------ test/service/src/lib.rs | 8 ++++---- zombienet/tests/0002-pov_recovery.toml | 8 ++++++++ zombienet/tests/0003-full_node_catching_up.toml | 2 +- 6 files changed, 20 insertions(+), 16 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 2e26992901e..81e715ea511 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -301,8 +301,8 @@ pub struct RunCmd { /// EXPERIMENTAL: Embed a light client for the relay chain. Only supported for full-nodes. /// Will use the specified relay chain chainspec. - #[arg(long, conflicts_with_all = ["relay_chain_rpc_url", "validator"])] - pub embedded_light_client: bool, + #[arg(long, conflicts_with_all = ["relay_chain_rpc_urls", "validator"])] + pub relay_chain_light_client: bool, } impl RunCmd { @@ -319,7 +319,7 @@ impl RunCmd { pub fn collator_options(&self) -> CollatorOptions { CollatorOptions { relay_chain_rpc_urls: self.relay_chain_rpc_urls.clone(), - embedded_light_client: self.embedded_light_client, + relay_chain_light_client: self.relay_chain_light_client, } } } @@ -331,7 +331,7 @@ pub struct CollatorOptions { pub relay_chain_rpc_urls: Vec, /// Use embedded light client for the relay chain - pub embedded_light_client: bool, + pub relay_chain_light_client: bool, } /// A non-redundant version of the `RunCmd` that sets the `validator` field when the diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index 9c68d30d63e..ea20e67fe25 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -97,7 +97,7 @@ pub async fn build_smoldot_client( tasks_spawner: Box::new(move |_, task| { spawner.spawn("cumulus-relay-chain-light-client-task", None, task); }), - system_name: "cumulus-embedded-light-client".to_string(), + system_name: "cumulus-relay-chain-light-client".to_string(), system_version: env!("CARGO_PKG_VERSION").to_string(), }; diff --git a/client/service/src/lib.rs b/client/service/src/lib.rs index ce70095702d..ac05e76d451 100644 --- a/client/service/src/lib.rs +++ b/client/service/src/lib.rs @@ -266,12 +266,8 @@ pub async fn build_relay_chain_interface( collator_options.relay_chain_rpc_urls, ) .await - } else if collator_options.embedded_light_client { - build_minimal_relay_chain_node_light_client( - polkadot_config, - task_manager, - ) - .await + } else if collator_options.relay_chain_light_client { + build_minimal_relay_chain_node_light_client(polkadot_config, task_manager).await } else { build_inprocess_relay_chain( polkadot_config, diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index c4cb954f1a2..3680efa1606 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -246,7 +246,7 @@ async fn build_relay_chain_interface( .map(|r| r.0) } - if collator_options.embedded_light_client { + if collator_options.relay_chain_light_client { return build_minimal_relay_chain_node_light_client(relay_chain_config, task_manager) .await .map(|r| r.0) @@ -495,7 +495,7 @@ pub struct TestNodeBuilder { storage_update_func_relay_chain: Option>, consensus: Consensus, relay_chain_full_node_url: Vec, - embedded_light_client: bool, + relay_chain_light_client: bool, } impl TestNodeBuilder { @@ -518,7 +518,7 @@ impl TestNodeBuilder { storage_update_func_relay_chain: None, consensus: Consensus::RelayChain, relay_chain_full_node_url: vec![], - embedded_light_client: false, + relay_chain_light_client: false, } } @@ -648,7 +648,7 @@ impl TestNodeBuilder { let collator_options = CollatorOptions { relay_chain_rpc_urls: self.relay_chain_full_node_url, - embedded_light_client: self.embedded_light_client, + relay_chain_light_client: self.relay_chain_light_client, }; relay_chain_config.network.node_name = diff --git a/zombienet/tests/0002-pov_recovery.toml b/zombienet/tests/0002-pov_recovery.toml index 0df0293e348..670e7645b0d 100644 --- a/zombienet/tests/0002-pov_recovery.toml +++ b/zombienet/tests/0002-pov_recovery.toml @@ -73,3 +73,11 @@ add_to_genesis = false image = "{{COL_IMAGE}}" command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] + + # run two as a RPC parachain full node + [[parachains.collators]] + name = "three" + validator = false # full node + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-light-client", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] diff --git a/zombienet/tests/0003-full_node_catching_up.toml b/zombienet/tests/0003-full_node_catching_up.toml index 9711fea6409..7270f3d26d9 100644 --- a/zombienet/tests/0003-full_node_catching_up.toml +++ b/zombienet/tests/0003-full_node_catching_up.toml @@ -47,4 +47,4 @@ cumulus_based = true validator = false image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["--reserved-only", "--reserved-nodes {{'charlie'|zombie('multiAddress')}}", "--embedded-light-client"] + args = ["--relay-chain-light-client", "--reserved-only", "--reserved-nodes {{'charlie'|zombie('multiAddress')}}"] From 45e5b45bdcf550c80eccf0c17c960b50a3a94db8 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 3 Mar 2023 12:02:03 +0100 Subject: [PATCH 16/44] Remove conflict with `validator` --- Cargo.lock | 3 +-- client/cli/src/lib.rs | 2 +- client/relay-chain-rpc-interface/Cargo.toml | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d9470ee528..4ef79afbc2a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2495,6 +2495,7 @@ dependencies = [ "serde_json", "smoldot", "smoldot-light", + "soketto", "sp-api", "sp-authority-discovery", "sp-consensus-babe", @@ -11837,7 +11838,6 @@ name = "smoldot-light" version = "0.3.0" source = "git+https://github.com/smol-dot/smoldot?branch=main#54d88891b1da202b4bf612a150df7b4dbfa03a55" dependencies = [ - "async-std", "blake2-rfc", "derive_more", "either", @@ -11849,7 +11849,6 @@ dependencies = [ "itertools", "log", "lru 0.9.0", - "parking_lot 0.12.1", "rand 0.8.5", "serde", "serde_json", diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 81e715ea511..9a967dbee4d 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -301,7 +301,7 @@ pub struct RunCmd { /// EXPERIMENTAL: Embed a light client for the relay chain. Only supported for full-nodes. /// Will use the specified relay chain chainspec. - #[arg(long, conflicts_with_all = ["relay_chain_rpc_urls", "validator"])] + #[arg(long, conflicts_with = "relay_chain_rpc_urls")] pub relay_chain_light_client: bool, } diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index e3df974cf09..b8b205ce901 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -34,8 +34,9 @@ serde_json = "1.0.93" serde = "1.0.152" lru = "0.9.0" smoldot = { git = "https://github.com/smol-dot/smoldot", branch = "main" } -smoldot-light = { git = "https://github.com/smol-dot/smoldot", branch = "main" } +smoldot-light = { git = "https://github.com/smol-dot/smoldot", branch = "main", default_features = false } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" thiserror = "1.0.38" +soketto = "0.7.1" From 35f96493bdb62a7567d5aebbe28ffddb6e6003d8 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 3 Mar 2023 12:27:13 +0100 Subject: [PATCH 17/44] Improve docs --- .../src/light_client_worker.rs | 18 ++++++++++++++---- .../src/rpc_client.rs | 7 +++++-- zombienet/tests/0002-pov_recovery.zndsl | 1 + 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index ea20e67fe25..9c9caf07b32 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -18,9 +18,6 @@ //! embedded light client. Even though no networking is involved, //! we treat the light-client as a normal JsonRPC target. -use std::sync::Arc; - -use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; use futures::{channel::mpsc::Sender, prelude::*, stream::FuturesUnordered}; use jsonrpsee::core::{ client::{ @@ -30,11 +27,13 @@ use jsonrpsee::core::{ Error, }; use smoldot_light::{ChainId, Client as SmoldotClient, ClientConfig, JsonRpcResponses}; +use std::sync::Arc; use tokio::sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}; use cumulus_primitives_core::relay_chain::{ Block as RelayBlock, BlockNumber as RelayNumber, Hash as RelayHash, Header as RelayHeader, }; +use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; use polkadot_service::generic::SignedBlock; @@ -149,7 +148,8 @@ fn handle_notification( } impl LightClientRpcWorker { - /// Create new light-client worker + /// Create new light-client worker. + /// Returns the worker itself and a channel to send messages. pub fn new( smoldot_client: smoldot_light::Client, json_rpc_responses: JsonRpcResponses, @@ -158,10 +158,13 @@ impl LightClientRpcWorker { let (tx, rx) = tokio_channel(100); let smoldot_adapter_sender = SimpleStringSender { inner: smoldot_client, chain_id }; let smoldot_adapter_receiver = SimpleStringReceiver { inner: json_rpc_responses }; + + // Build jsonrpsee client that will talk to the inprocess smoldot node let smoldot_jsonrpsee_client = Arc::new( ClientBuilder::default() .build_with_tokio(smoldot_adapter_sender, smoldot_adapter_receiver), ); + let worker = LightClientRpcWorker { client_receiver: rx, imported_header_listeners: Default::default(), @@ -172,6 +175,13 @@ impl LightClientRpcWorker { (worker, tx) } + // Main worker loop. Does the following: + // 1. Initialize notification streams + // 2. Enter main loop + // a. On listening request, register listener for respective notification stream + // b. On incoming notification, distribute notification to listeners + // c. On incoming request, forward request to smoldot + // d. Advance execution of pending requests pub async fn run(mut self) { let mut pending_requests = FuturesUnordered::new(); diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index f76c888153c..90711fd89cd 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -64,7 +64,8 @@ pub struct RelayChainRpcClient { ws_client: RpcFrontend, } -/// Entry point to create [`RelayChainRpcClient`] and start a worker that distributes notifications. +/// Entry point to create [`RelayChainRpcClient`] and start a worker that communicates +/// to JsonRPC servers over the network. pub async fn create_client_and_start_worker( urls: Vec, task_manager: &mut TaskManager, @@ -82,6 +83,8 @@ pub async fn create_client_and_start_worker( Ok(client) } +/// Entry point to create [`RelayChainRpcClient`] and start a worker that communicates +/// with an embedded smoldot instance. pub async fn create_client_and_start_light_client_worker( chain_spec: String, task_manager: &mut polkadot_service::TaskManager, @@ -111,7 +114,7 @@ pub enum RpcDispatcherMessage { } /// Frontend for performing websocket requests. -/// Requests and stream requests are forwarded to [`ReconnectingWebsocketWorker`]. +/// Requests and stream requests are forwarded to a processing worker. #[derive(Debug, Clone)] pub struct RpcFrontend { /// Channel to communicate with the RPC worker diff --git a/zombienet/tests/0002-pov_recovery.zndsl b/zombienet/tests/0002-pov_recovery.zndsl index 3eb28bb2aeb..12ff00210f3 100644 --- a/zombienet/tests/0002-pov_recovery.zndsl +++ b/zombienet/tests/0002-pov_recovery.zndsl @@ -13,4 +13,5 @@ alice: reports block height is at least 20 within 600 seconds charlie: reports block height is at least 20 within 600 seconds one: reports block height is at least 20 within 800 seconds two: reports block height is at least 20 within 800 seconds +three: reports block height is at least 20 within 800 seconds eve: reports block height is at least 20 within 800 seconds From 08efa4b838dca4df35bc0107296f78b8fd362f40 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 3 Mar 2023 12:49:18 +0100 Subject: [PATCH 18/44] Update smoldot, remove unwanted change --- Cargo.lock | 6 +++--- parachain-template/node/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 15218228968..15869b67b06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11848,7 +11848,7 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smoldot" version = "0.5.0" -source = "git+https://github.com/smol-dot/smoldot?branch=main#897b6d6ffb258882cc0b772b5576ba1e98a45092" +source = "git+https://github.com/smol-dot/smoldot?branch=main#cd29f5908af69c7cd429d74d1e3fac75dbbe2b50" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -11902,7 +11902,7 @@ dependencies = [ [[package]] name = "smoldot-light" version = "0.3.0" -source = "git+https://github.com/smol-dot/smoldot?branch=main#897b6d6ffb258882cc0b772b5576ba1e98a45092" +source = "git+https://github.com/smol-dot/smoldot?branch=main#cd29f5908af69c7cd429d74d1e3fac75dbbe2b50" dependencies = [ "blake2-rfc", "derive_more", @@ -13861,7 +13861,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.6", - "rand 0.8.5", + "rand 0.7.3", "static_assertions", ] diff --git a/parachain-template/node/Cargo.toml b/parachain-template/node/Cargo.toml index fb46459f25c..d64ab0702ae 100644 --- a/parachain-template/node/Cargo.toml +++ b/parachain-template/node/Cargo.toml @@ -55,7 +55,7 @@ substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "master", optional = true } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "master", features = ["rococo-native"] } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "master" } polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "master" } xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" } From e450413e88ca498ff57d150a6301c24e77bfeeb4 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 3 Mar 2023 17:24:46 +0100 Subject: [PATCH 19/44] Apply suggestions from code review Co-authored-by: Dmitry Markin --- client/relay-chain-rpc-interface/src/light_client_worker.rs | 4 ++-- client/relay-chain-rpc-interface/src/rpc_client.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index 9c9caf07b32..6e8cad0d889 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -46,7 +46,7 @@ const LOG_TARGET: &str = "rpc-light-client-worker"; #[derive(thiserror::Error, Debug)] enum LightClientError { - #[error("Error occured while calling inserting smoldot request: {0}")] + #[error("Error occured while executing smoldot request: {0}")] SmoldotError(String), #[error("Nothing returned from json_rpc_responses")] EmptyReturn, @@ -116,7 +116,7 @@ pub async fn build_smoldot_client( Ok((client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed"))) } -/// Worker to process incoming [`RpcDispatcherMessage`] to process requests. +/// Worker to process incoming [`RpcDispatcherMessage`] requests. /// On startup, this worker opens subscriptions for imported, best and finalized /// heads. Incoming notifications are distributed to registered listeners. pub struct LightClientRpcWorker { diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index 90711fd89cd..c73e6b98b34 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -87,7 +87,7 @@ pub async fn create_client_and_start_worker( /// with an embedded smoldot instance. pub async fn create_client_and_start_light_client_worker( chain_spec: String, - task_manager: &mut polkadot_service::TaskManager, + task_manager: &mut TaskManager, ) -> RelayChainResult { let (client, chain_id, json_rpc_responses) = build_smoldot_client(task_manager.spawn_handle(), &chain_spec).await?; From 9ce2ddd8e41d9fbe23eec427ff9147f4330edf11 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 7 Mar 2023 10:32:17 +0100 Subject: [PATCH 20/44] Disable collation --- client/cli/src/lib.rs | 2 +- client/relay-chain-rpc-interface/src/light_client_worker.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 9a967dbee4d..435ff5b0f23 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -301,7 +301,7 @@ pub struct RunCmd { /// EXPERIMENTAL: Embed a light client for the relay chain. Only supported for full-nodes. /// Will use the specified relay chain chainspec. - #[arg(long, conflicts_with = "relay_chain_rpc_urls")] + #[arg(long, conflicts_with_all = ["relay_chain_rpc_urls", "collator"])] pub relay_chain_light_client: bool, } diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index 6e8cad0d889..27a6baa37e5 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -111,7 +111,7 @@ pub async fn build_smoldot_client( database_content: "", user_data: (), }) - .map_err(RelayChainError::GenericError)?; + .map_err(|e| RelayChainError::GenericError(e.to_string()))?; Ok((client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed"))) } From 33a1b4c114a28c9df4e87c7f41bc79c2e72a70cf Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 9 Mar 2023 19:20:42 +0100 Subject: [PATCH 21/44] Reviewer comments --- client/relay-chain-rpc-interface/src/light_client_worker.rs | 6 +++--- client/relay-chain-rpc-interface/src/rpc_client.rs | 2 ++ client/relay-chain-rpc-interface/src/tokio_platform.rs | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index 27a6baa37e5..4798443a5ed 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -49,7 +49,7 @@ enum LightClientError { #[error("Error occured while executing smoldot request: {0}")] SmoldotError(String), #[error("Nothing returned from json_rpc_responses")] - EmptyReturn, + EmptyResult, } /// Sending adapter allowing JsonRpsee to send messages to smoldot @@ -83,7 +83,7 @@ impl TransportReceiverT for SimpleStringReceiver { .next() .await .map(|message| jsonrpsee::core::client::ReceivedMessage::Text(message)) - .ok_or(LightClientError::EmptyReturn) + .ok_or(LightClientError::EmptyResult) } } @@ -113,7 +113,7 @@ pub async fn build_smoldot_client( }) .map_err(|e| RelayChainError::GenericError(e.to_string()))?; - Ok((client, chain_id, json_rpc_responses.expect("JSON RPC is not disabled; qed"))) + Ok((client, chain_id, json_rpc_responses.expect("JSON RPC is enabled; qed"))) } /// Worker to process incoming [`RpcDispatcherMessage`] requests. diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index c73e6b98b34..b56aacdfb60 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -605,6 +605,8 @@ impl RelayChainRpcClient { } } +/// Send `header` through all channels contained in `senders`. +/// If no one is listening to the sender, it is removed from the vector. pub fn distribute_header(header: RelayHeader, senders: &mut Vec>) { senders.retain_mut(|e| { match e.try_send(header.clone()) { diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index 028cd67b358..1b389881a50 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -30,8 +30,8 @@ use std::{ use tokio::net::TcpStream; use tokio_util::compat::TokioAsyncReadCompatExt; -pub struct TokioPlatform; +/// Platform internal representation of the connection stream. pub struct TokioStream { shared: Arc, read_data_rx: Arc>>>>, @@ -50,6 +50,8 @@ struct StreamSharedGuarded { /// Platform implementation for tokio /// This implementation is a conversion of the implementation for async-std: /// https://github.com/smol-dot/smoldot/blob/54d88891b1da202b4bf612a150df7b4dbfa03a55/light-base/src/platform/async_std.rs#L40 +pub struct TokioPlatform; + impl smoldot_light::platform::Platform for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; type Yield = future::Ready<()>; From 7d0635ccc8db79b156745b5a07efa4fd61695843 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 27 Mar 2023 16:02:39 +0200 Subject: [PATCH 22/44] Update smoldot and tokio-platform --- Cargo.lock | 432 +++++++++++++++--- client/relay-chain-rpc-interface/Cargo.toml | 4 +- .../src/tokio_platform.rs | 346 ++++++++------ 3 files changed, 556 insertions(+), 226 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bec01c16aef..1082379cd07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1652,7 +1652,16 @@ version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7379abaacee0f14abf3204a7606118f0465785252169d186337bcb75030815a" dependencies = [ - "cranelift-entity", + "cranelift-entity 0.93.1", +] + +[[package]] +name = "cranelift-bforest" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862eb053fc21f991db27c73bc51494fe77aadfa09ea257cb43b62a2656fd4cc1" +dependencies = [ + "cranelift-entity 0.94.0", ] [[package]] @@ -1663,15 +1672,35 @@ checksum = "9489fa336927df749631f1008007ced2871068544f40a202ce6d93fbf2366a7b" dependencies = [ "arrayvec 0.7.2", "bumpalo", - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "cranelift-isle", + "cranelift-bforest 0.93.1", + "cranelift-codegen-meta 0.93.1", + "cranelift-codegen-shared 0.93.1", + "cranelift-entity 0.93.1", + "cranelift-isle 0.93.1", "gimli 0.26.1", "hashbrown 0.12.3", "log", - "regalloc2", + "regalloc2 0.5.1", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038a74bc85da2f6f9e237c51b7998b47229c0f9da69b4c6b0590cf6621c45d46" +dependencies = [ + "bumpalo", + "cranelift-bforest 0.94.0", + "cranelift-codegen-meta 0.94.0", + "cranelift-codegen-shared 0.94.0", + "cranelift-entity 0.94.0", + "cranelift-isle 0.94.0", + "gimli 0.27.0", + "hashbrown 0.13.2", + "log", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] @@ -1682,7 +1711,16 @@ version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05bbb67da91ec721ed57cef2f7c5ef7728e1cd9bde9ffd3ef8601022e73e3239" dependencies = [ - "cranelift-codegen-shared", + "cranelift-codegen-shared 0.93.1", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb720a7955cf7cc92c58f3896952589062e6f12d8eb35ef4337e708ed2e738" +dependencies = [ + "cranelift-codegen-shared 0.94.0", ] [[package]] @@ -1691,6 +1729,12 @@ version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "418ecb2f36032f6665dc1a5e2060a143dbab41d83b784882e97710e890a7a16d" +[[package]] +name = "cranelift-codegen-shared" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0954f9426cf0fa7ad57910ea5822a09c5da590222a767a6c38080a8534a0af8" + [[package]] name = "cranelift-entity" version = "0.93.1" @@ -1700,13 +1744,34 @@ dependencies = [ "serde", ] +[[package]] +name = "cranelift-entity" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68c7096c1a66cfa73899645f0a46a6f5c91641e678eeafb0fc47a19ab34069ca" +dependencies = [ + "serde", +] + [[package]] name = "cranelift-frontend" version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b66bf9e916f57fbbd0f7703ec6286f4624866bf45000111627c70d272c8dda1" dependencies = [ - "cranelift-codegen", + "cranelift-codegen 0.93.1", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-frontend" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697f2fdaceb228fea413ea91baa7c6b8533fc2e61ac5a08db7acc1b31e673a2a" +dependencies = [ + "cranelift-codegen 0.94.0", "log", "smallvec", "target-lexicon", @@ -1718,13 +1783,30 @@ version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "649782a39ce99798dd6b4029e2bb318a2fbeaade1b4fa25330763c10c65bc358" +[[package]] +name = "cranelift-isle" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f41037f4863e0c6716dbe60e551d501f4197383cb43d75038c0170159fc8fb5b" + [[package]] name = "cranelift-native" version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "937e021e089c51f9749d09e7ad1c4f255c2f8686cb8c3df63a34b3ec9921bc41" dependencies = [ - "cranelift-codegen", + "cranelift-codegen 0.93.1", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-native" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "797c6e5643eb654bb7bf496f1f03518323a89b937b84020b786620f910364a52" +dependencies = [ + "cranelift-codegen 0.94.0", "libc", "target-lexicon", ] @@ -1735,14 +1817,30 @@ version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d850cf6775477747c9dfda9ae23355dd70512ffebc70cf82b85a5b111ae668b5" dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", + "cranelift-codegen 0.93.1", + "cranelift-entity 0.93.1", + "cranelift-frontend 0.93.1", "itertools", "log", "smallvec", "wasmparser", - "wasmtime-types", + "wasmtime-types 6.0.1", +] + +[[package]] +name = "cranelift-wasm" +version = "0.94.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69b5fae12cefda3a2c43837e562dd525ab1d75b27989eece66de5b2c8fe120f9" +dependencies = [ + "cranelift-codegen 0.94.0", + "cranelift-entity 0.94.0", + "cranelift-frontend 0.94.0", + "itertools", + "log", + "smallvec", + "wasmparser", + "wasmtime-types 7.0.0", ] [[package]] @@ -4051,6 +4149,11 @@ name = "gimli" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] [[package]] name = "glob" @@ -5519,6 +5622,12 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "lru" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f1160296536f10c833a82dca22267d5486734230d47bf00bf435885814ba1e" + [[package]] name = "lru-cache" version = "0.1.2" @@ -5644,6 +5753,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "memory-db" version = "0.32.0" @@ -6130,6 +6248,9 @@ version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap", "memchr", ] @@ -7707,6 +7828,15 @@ dependencies = [ "digest 0.10.6", ] +[[package]] +name = "pbkdf2" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -9890,6 +10020,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regalloc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" +dependencies = [ + "fxhash", + "log", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" version = "1.6.0" @@ -10891,7 +11033,7 @@ dependencies = [ "sc-executor-common", "sp-runtime-interface", "sp-wasm-interface", - "wasmtime", + "wasmtime 6.0.1", ] [[package]] @@ -12018,9 +12160,8 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smoldot" version = "0.5.0" -source = "git+https://github.com/smol-dot/smoldot?rev=51d3a74df729baeae4b22c900ff7ca8676aa5894#51d3a74df729baeae4b22c900ff7ca8676aa5894" +source = "git+https://github.com/smol-dot/smoldot?rev=7ffa3c87c5818541b5f7d11bd244acb9a475a614#7ffa3c87c5818541b5f7d11bd244acb9a475a614" dependencies = [ - "anyhow", "arrayvec 0.7.2", "async-std", "atomic", @@ -12048,7 +12189,7 @@ dependencies = [ "num-traits", "parity-scale-codec", "parking_lot 0.12.1", - "pbkdf2 0.11.0", + "pbkdf2 0.12.1", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -12065,14 +12206,14 @@ dependencies = [ "sqlite", "tiny-keccak", "twox-hash", - "wasmi 0.27.0", - "wasmtime", + "wasmi 0.29.0", + "wasmtime 7.0.0", ] [[package]] name = "smoldot-light" version = "0.3.0" -source = "git+https://github.com/smol-dot/smoldot?rev=51d3a74df729baeae4b22c900ff7ca8676aa5894#51d3a74df729baeae4b22c900ff7ca8676aa5894" +source = "git+https://github.com/smol-dot/smoldot?rev=7ffa3c87c5818541b5f7d11bd244acb9a475a614#7ffa3c87c5818541b5f7d11bd244acb9a475a614" dependencies = [ "blake2-rfc", "derive_more", @@ -12084,7 +12225,7 @@ dependencies = [ "hex", "itertools", "log", - "lru 0.9.0", + "lru 0.10.0", "rand 0.8.5", "serde", "serde_json", @@ -12837,7 +12978,7 @@ dependencies = [ "parity-scale-codec", "sp-std", "wasmi 0.13.2", - "wasmtime", + "wasmtime 6.0.1", ] [[package]] @@ -14056,7 +14197,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.6", - "rand 0.8.5", + "rand 0.7.3", "static_assertions", ] @@ -14424,22 +14565,23 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3fdd2e118c188a4d070df4f7690295243f79f88a5425caf805fc7053c6547c" +checksum = "8e61a7006b0fdf24f6bbe8dcfdad5ca1b350de80061fb2827f31c82fbbb9565a" dependencies = [ "spin 0.9.4", "wasmi_arena", - "wasmi_core 0.11.0", + "wasmi_core 0.12.0", "wasmparser-nostd", ] [[package]] name = "wasmi" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e61a7006b0fdf24f6bbe8dcfdad5ca1b350de80061fb2827f31c82fbbb9565a" +checksum = "677160b1166881badada1137afc6457777126f328ae63a18058b504f546f0828" dependencies = [ + "smallvec", "spin 0.9.4", "wasmi_arena", "wasmi_core 0.12.0", @@ -14475,18 +14617,6 @@ dependencies = [ "region", ] -[[package]] -name = "wasmi_core" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2bde97906bbc49ad61184db16e5c905e946e747f6febd09b583fc321d70af0" -dependencies = [ - "downcast-rs", - "libm 0.2.1", - "num-traits", - "paste", -] - [[package]] name = "wasmi_core" version = "0.12.0" @@ -14525,7 +14655,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e89f9819523447330ffd70367ef4a18d8c832e24e8150fe054d1d912841632" dependencies = [ "anyhow", - "async-trait", "bincode", "cfg-if", "indexmap", @@ -14540,13 +14669,40 @@ dependencies = [ "target-lexicon", "wasmparser", "wasmtime-cache", + "wasmtime-cranelift 6.0.1", + "wasmtime-environ 6.0.1", + "wasmtime-jit 6.0.1", + "wasmtime-runtime 6.0.1", + "windows-sys 0.42.0", +] + +[[package]] +name = "wasmtime" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d137f87df6e037b2bcb960c2db7ea174e04fb897051380c14b5e5475a870669e" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "cfg-if", + "indexmap", + "libc", + "log", + "object 0.30.3", + "once_cell", + "paste", + "psm", + "serde", + "target-lexicon", + "wasmparser", "wasmtime-component-macro", - "wasmtime-cranelift", - "wasmtime-environ", + "wasmtime-cranelift 7.0.0", + "wasmtime-environ 7.0.0", "wasmtime-fiber", - "wasmtime-jit", - "wasmtime-runtime", - "windows-sys 0.42.0", + "wasmtime-jit 7.0.0", + "wasmtime-runtime 7.0.0", + "windows-sys 0.45.0", ] [[package]] @@ -14558,6 +14714,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "wasmtime-asm-macros" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad63d4175d6af44af2046186c87deae4e9a8150b92de2d4809c6f745d5ee9b38" +dependencies = [ + "cfg-if", +] + [[package]] name = "wasmtime-cache" version = "6.0.1" @@ -14580,9 +14745,9 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "6.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059ded8e36aa047039093fb3203e719864b219ba706ef83115897208c45c7227" +checksum = "64cf4906f990d6ab3065d042cf5a15eb7a2a5406d1c001a45ab9615de876458a" dependencies = [ "anyhow", "proc-macro2", @@ -14595,9 +14760,9 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "6.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925da75e4b2ba3a45671238037f8b496418c092dff287503ca4375824a234024" +checksum = "22ccf49c18c1ce3f682310e642dcdc00ffc67f1ce0767c89a16fc8fcf5eaeb97" [[package]] name = "wasmtime-cranelift" @@ -14606,18 +14771,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59b2c92a08c0db6efffd88fdc97d7aa9c7c63b03edb0971dbca745469f820e8c" dependencies = [ "anyhow", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", + "cranelift-codegen 0.93.1", + "cranelift-entity 0.93.1", + "cranelift-frontend 0.93.1", + "cranelift-native 0.93.1", + "cranelift-wasm 0.93.1", "gimli 0.26.1", "log", "object 0.29.0", "target-lexicon", "thiserror", "wasmparser", - "wasmtime-environ", + "wasmtime-environ 6.0.1", +] + +[[package]] +name = "wasmtime-cranelift" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "274590ecbb1179d45a5c8d9f54b9d236e9414d9ca3b861cd8956cec085508eb0" +dependencies = [ + "anyhow", + "cranelift-codegen 0.94.0", + "cranelift-entity 0.94.0", + "cranelift-frontend 0.94.0", + "cranelift-native 0.94.0", + "cranelift-wasm 0.94.0", + "gimli 0.27.0", + "log", + "object 0.30.3", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-environ 7.0.0", ] [[package]] @@ -14627,7 +14813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a6db9fc52985ba06ca601f2ff0ff1f526c5d724c7ac267b47326304b0c97883" dependencies = [ "anyhow", - "cranelift-entity", + "cranelift-entity 0.93.1", "gimli 0.26.1", "indexmap", "log", @@ -14636,20 +14822,39 @@ dependencies = [ "target-lexicon", "thiserror", "wasmparser", - "wasmtime-types", + "wasmtime-types 6.0.1", +] + +[[package]] +name = "wasmtime-environ" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b4a897e6ce1f2567ba98e7b1948c0e12cae1202fd88e7639f901b8ce9203f7" +dependencies = [ + "anyhow", + "cranelift-entity 0.94.0", + "gimli 0.27.0", + "indexmap", + "log", + "object 0.30.3", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types 7.0.0", ] [[package]] name = "wasmtime-fiber" -version = "6.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07739b74248aa609a51061956735e3e394cc9e0fe475e8f821bc837f12d5e547" +checksum = "01b1192624694399f601de28db78975ed20fa859da8e048bf8250bd3b38d302b" dependencies = [ "cc", "cfg-if", "rustix 0.36.7", - "wasmtime-asm-macros", - "windows-sys 0.42.0", + "wasmtime-asm-macros 7.0.0", + "windows-sys 0.45.0", ] [[package]] @@ -14669,13 +14874,36 @@ dependencies = [ "rustc-demangle", "serde", "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", + "wasmtime-environ 6.0.1", + "wasmtime-jit-debug 6.0.1", + "wasmtime-jit-icache-coherence 6.0.1", + "wasmtime-runtime 6.0.1", "windows-sys 0.42.0", ] +[[package]] +name = "wasmtime-jit" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f035bfe27ce5129c9d081d6288480f2e6ae9d16d0eb035a5d9e3b5b6c36658" +dependencies = [ + "addr2line 0.19.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.27.0", + "log", + "object 0.30.3", + "rustc-demangle", + "serde", + "target-lexicon", + "wasmtime-environ 7.0.0", + "wasmtime-jit-icache-coherence 7.0.0", + "wasmtime-runtime 7.0.0", + "windows-sys 0.45.0", +] + [[package]] name = "wasmtime-jit-debug" version = "6.0.1" @@ -14687,6 +14915,15 @@ dependencies = [ "rustix 0.36.7", ] +[[package]] +name = "wasmtime-jit-debug" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17e35d335dd2461c631ba24d2326d993bd3a4bdb4b0217e5bda4f518ba0e29f3" +dependencies = [ + "once_cell", +] + [[package]] name = "wasmtime-jit-icache-coherence" version = "6.0.1" @@ -14698,6 +14935,17 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8c01a070f55343f7afd309a9609c12378548b26c3f53c599bc711bb1ce42ee" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "wasmtime-runtime" version = "6.0.1" @@ -14716,20 +14964,56 @@ dependencies = [ "paste", "rand 0.8.5", "rustix 0.36.7", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-fiber", - "wasmtime-jit-debug", + "wasmtime-asm-macros 6.0.1", + "wasmtime-environ 6.0.1", + "wasmtime-jit-debug 6.0.1", "windows-sys 0.42.0", ] +[[package]] +name = "wasmtime-runtime" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac02cc14c8247f6e4e48c7653a79c226babac8f2cacdd933d3f15ca2a6ab20b" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap", + "libc", + "log", + "mach", + "memfd", + "memoffset 0.8.0", + "paste", + "rand 0.8.5", + "rustix 0.36.7", + "wasmtime-asm-macros 7.0.0", + "wasmtime-environ 7.0.0", + "wasmtime-fiber", + "wasmtime-jit-debug 7.0.0", + "windows-sys 0.45.0", +] + [[package]] name = "wasmtime-types" version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6688d6f96d4dbc1f89fab626c56c1778936d122b5f4ae7a57c2eb42b8d982e2" dependencies = [ - "cranelift-entity", + "cranelift-entity 0.93.1", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "wasmtime-types" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8dc0062ab053e1aa22d2355a2de4df482a0007fecae82ea02cc596c2329971d" +dependencies = [ + "cranelift-entity 0.94.0", "serde", "thiserror", "wasmparser", @@ -14737,9 +15021,9 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "6.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85c2889e5b4fd2713f02238c7bce6bd4a7e901e1ef251f8b414d5d9449167ea" +checksum = "fd2cf93f3c8a6f443d8a9098fddc5fd887783c0fe725dc10c54ca9280546421d" dependencies = [ "anyhow", "heck", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index a64ccd229c6..e9317330685 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -34,8 +34,8 @@ url = "2.3.1" serde_json = "1.0.94" serde = "1.0.156" lru = "0.9.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "51d3a74df729baeae4b22c900ff7ca8676aa5894" } -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "51d3a74df729baeae4b22c900ff7ca8676aa5894", default_features = false } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "7ffa3c87c5818541b5f7d11bd244acb9a475a614" } +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "7ffa3c87c5818541b5f7d11bd244acb9a475a614", default_features = false } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index 1b389881a50..af50ac1976d 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -15,60 +15,44 @@ // along with Cumulus. If not, see . use core::time::Duration; -use futures::{channel::mpsc, prelude::*, task::Poll}; +use futures::{prelude::*, task::Poll}; use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; use smoldot_light::platform::{ - ConnectError, PlatformConnection, PlatformSubstreamDirection, ReadBuffer, + ConnectError, Platform, PlatformConnection, PlatformSubstreamDirection, ReadBuffer, }; use std::{ collections::VecDeque, io::IoSlice, net::{IpAddr, SocketAddr}, pin::Pin, - sync::Arc, }; use tokio::net::TcpStream; -use tokio_util::compat::TokioAsyncReadCompatExt; - -/// Platform internal representation of the connection stream. -pub struct TokioStream { - shared: Arc, - read_data_rx: Arc>>>>, - read_buffer: Option>, -} - -struct StreamShared { - guarded: parking_lot::Mutex, - write_queue_pushed: event_listener::Event, -} - -struct StreamSharedGuarded { - write_queue: VecDeque, -} +use tokio_util::compat::{Compat, TokioAsyncReadCompatExt}; +type CompatTcpStream = Compat; /// Platform implementation for tokio /// This implementation is a conversion of the implementation for async-std: /// https://github.com/smol-dot/smoldot/blob/54d88891b1da202b4bf612a150df7b4dbfa03a55/light-base/src/platform/async_std.rs#L40 pub struct TokioPlatform; -impl smoldot_light::platform::Platform for TokioPlatform { +impl Platform for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; type Yield = future::Ready<()>; type Instant = std::time::Instant; type Connection = std::convert::Infallible; - type Stream = TokioStream; + type Stream = Stream; type ConnectFuture = future::BoxFuture< 'static, Result, ConnectError>, >; - type StreamDataFuture<'a> = future::BoxFuture<'a, ()>; + type StreamUpdateFuture<'a> = future::BoxFuture<'a, ()>; type NextSubstreamFuture<'a> = future::Pending>; fn now_from_unix_epoch() -> Duration { // Intentionally panic if the time is configured earlier than the UNIX EPOCH. - std::time::UNIX_EPOCH.elapsed().expect("Time should be after unix epoch.") + std::time::UNIX_EPOCH.elapsed().unwrap() } fn now() -> Self::Instant { @@ -80,7 +64,8 @@ impl smoldot_light::platform::Platform for TokioPlatform { } fn sleep_until(when: Self::Instant) -> Self::Delay { - tokio::time::sleep_until(when.into()).boxed() + let duration = when.saturating_duration_since(std::time::Instant::now()); + Self::sleep(duration) } fn yield_after_cpu_intensive() -> Self::Yield { @@ -96,28 +81,28 @@ impl smoldot_light::platform::Platform for TokioPlatform { Box::pin(async move { let addr = multiaddr.parse::().map_err(|_| ConnectError { is_bad_addr: true, - message: format!("Failed to parse address"), + message: "Failed to parse address".to_string(), })?; let mut iter = addr.iter().fuse(); let proto1 = iter.next().ok_or(ConnectError { is_bad_addr: true, - message: format!("Unknown protocols combination"), + message: "Unknown protocols combination".to_string(), })?; let proto2 = iter.next().ok_or(ConnectError { is_bad_addr: true, - message: format!("Unknown protocols combination"), + message: "Unknown protocols combination".to_string(), })?; let proto3 = iter.next(); if iter.next().is_some() { return Err(ConnectError { is_bad_addr: true, - message: format!("Unknown protocols combination"), + message: "Unknown protocols combination".to_string(), }) } - // doesn't support WebSocket secure connections + // TODO: doesn't support WebSocket secure connections // Ensure ahead of time that the multiaddress is supported. let (addr, host_if_websocket) = match (&proto1, &proto2, &proto3) { @@ -134,7 +119,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { (either::Left(addr), Some(addr.to_string())) }, - // we don't care about the differences between Dns, Dns4, and Dns6 + // TODO: we don't care about the differences between Dns, Dns4, and Dns6 ( ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), ProtocolRef::Tcp(port), @@ -149,20 +134,21 @@ impl smoldot_light::platform::Platform for TokioPlatform { _ => return Err(ConnectError { is_bad_addr: true, - message: format!("Unknown protocols combination"), + message: "Unknown protocols combination".to_string(), }), }; let tcp_socket = match addr { - either::Left(socket_addr) => TcpStream::connect(socket_addr).await, - either::Right((dns, port)) => TcpStream::connect((&dns[..], port)).await, + either::Left(socket_addr) => tokio::net::TcpStream::connect(socket_addr).await, + either::Right((dns, port)) => + tokio::net::TcpStream::connect((&dns[..], port)).await, }; if let Ok(tcp_socket) = &tcp_socket { let _ = tcp_socket.set_nodelay(true); } - let mut socket = match (tcp_socket, host_if_websocket) { + let socket: TcpOrWs = match (tcp_socket, host_if_websocket) { (Ok(tcp_socket), Some(host)) => future::Either::Right( websocket::websocket_client_handshake(websocket::Config { tcp_socket: tcp_socket.compat(), @@ -171,7 +157,7 @@ impl smoldot_light::platform::Platform for TokioPlatform { }) .await .map_err(|err| ConnectError { - message: format!("Failed to negotiate WebSocket: {}", err), + message: format!("Failed to negotiate WebSocket: {err}"), is_bad_addr: false, })?, ), @@ -179,93 +165,20 @@ impl smoldot_light::platform::Platform for TokioPlatform { (Err(err), _) => return Err(ConnectError { is_bad_addr: false, - message: format!("Failed to reach peer: {}", err), + message: format!("Failed to reach peer: {err}"), }), }; - let shared = Arc::new(StreamShared { - guarded: parking_lot::Mutex::new(StreamSharedGuarded { - write_queue: VecDeque::with_capacity(1024), - }), - write_queue_pushed: event_listener::Event::new(), - }); - let shared_clone = shared.clone(); - - let (mut read_data_tx, read_data_rx) = mpsc::channel(2); - let mut read_buffer = vec![0; 4096]; - let mut write_queue_pushed_listener = shared.write_queue_pushed.listen(); - - // this whole code is a mess, but the Platform trait must be modified to fix it - // spawning a task per connection is necessary because the Platform trait isn't suitable for better strategies - tokio::spawn(future::poll_fn(move |cx| { - let mut lock = shared.guarded.lock(); - - loop { - match Pin::new(&mut read_data_tx).poll_ready(cx) { - Poll::Ready(Ok(())) => { - match Pin::new(&mut socket).poll_read(cx, &mut read_buffer) { - Poll::Pending => break, - Poll::Ready(result) => { - match result { - Ok(0) | Err(_) => return Poll::Ready(()), // End the task - Ok(bytes) => { - let _ = read_data_tx - .try_send(read_buffer[..bytes].to_vec()); - }, - } - }, - } - }, - Poll::Ready(Err(_)) => return Poll::Ready(()), // End the task - Poll::Pending => break, - } - } - - loop { - if lock.write_queue.is_empty() { - if let Poll::Ready(Err(_)) = Pin::new(&mut socket).poll_flush(cx) { - // End the task - return Poll::Ready(()) - } - - break - } else { - let write_queue_slices = lock.write_queue.as_slices(); - if let Poll::Ready(result) = Pin::new(&mut socket).poll_write_vectored( - cx, - &[ - IoSlice::new(write_queue_slices.0), - IoSlice::new(write_queue_slices.1), - ], - ) { - match result { - Ok(bytes) => - for _ in 0..bytes { - lock.write_queue.pop_front(); - }, - Err(_) => return Poll::Ready(()), // End the task - } - } else { - break - } - } - } - - loop { - if let Poll::Ready(()) = Pin::new(&mut write_queue_pushed_listener).poll(cx) { - write_queue_pushed_listener = shared.write_queue_pushed.listen(); - } else { - break - } - } - - Poll::Pending - })); - - Ok(PlatformConnection::SingleStreamMultistreamSelectNoiseYamux(TokioStream { - shared: shared_clone, - read_data_rx: Arc::new(parking_lot::Mutex::new(read_data_rx.peekable())), - read_buffer: Some(Vec::with_capacity(4096)), + Ok(PlatformConnection::SingleStreamMultistreamSelectNoiseYamux(Stream { + socket, + buffers: Some(( + StreamReadBuffer::Open { buffer: vec![0; 16384], cursor: 0..0 }, + StreamWriteBuffer::Open { + buffer: VecDeque::with_capacity(16384), + must_close: false, + must_flush: false, + }, + )), })) }) } @@ -282,48 +195,181 @@ impl smoldot_light::platform::Platform for TokioPlatform { match *c {} } - fn wait_more_data(stream: &'_ mut Self::Stream) -> Self::StreamDataFuture<'_> { - if stream.read_buffer.as_ref().map_or(true, |b| !b.is_empty()) { - return Box::pin(future::ready(())) - } + fn update_stream(stream: &'_ mut Self::Stream) -> Self::StreamUpdateFuture<'_> { + Box::pin(future::poll_fn(|cx| { + let Some((read_buffer, write_buffer)) = stream.buffers.as_mut() else { return Poll::Pending }; + + // Whether the future returned by `update_stream` should return `Ready` or `Pending`. + let mut update_stream_future_ready = false; + + if let StreamReadBuffer::Open { buffer: ref mut buf, ref mut cursor } = read_buffer { + // When reading data from the socket, `poll_read` might return "EOF". In that + // situation, we transition to the `Closed` state, which would discard the data + // currently in the buffer. For this reason, we only try to read if there is no + // data left in the buffer. + if cursor.start == cursor.end { + if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_read(cx, buf) { + update_stream_future_ready = true; + match result { + Err(_) => { + // End the stream. + stream.buffers = None; + return Poll::Ready(()) + }, + Ok(0) => { + // EOF. + *read_buffer = StreamReadBuffer::Closed; + }, + Ok(bytes) => { + *cursor = 0..bytes; + }, + } + } + } + } + + if let StreamWriteBuffer::Open { buffer: ref mut buf, must_flush, must_close } = + write_buffer + { + while !buf.is_empty() { + let write_queue_slices = buf.as_slices(); + if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_write_vectored( + cx, + &[IoSlice::new(write_queue_slices.0), IoSlice::new(write_queue_slices.1)], + ) { + if !*must_close { + // In the situation where the API user wants to close the writing + // side, simply sending the buffered data isn't enough to justify + // making the future ready. + update_stream_future_ready = true; + } - let read_data_rx = stream.read_data_rx.clone(); - Box::pin(future::poll_fn(move |cx| { - let mut lock = read_data_rx.lock(); - Pin::new(&mut *lock).poll_peek(cx).map(|_| ()) + match result { + Err(_) => { + // End the stream. + stream.buffers = None; + return Poll::Ready(()) + }, + Ok(bytes) => { + *must_flush = true; + for _ in 0..bytes { + buf.pop_front(); + } + }, + } + } else { + break + } + } + + if buf.is_empty() && *must_close { + if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_close(cx) { + update_stream_future_ready = true; + match result { + Err(_) => { + // End the stream. + stream.buffers = None; + return Poll::Ready(()) + }, + Ok(()) => { + *write_buffer = StreamWriteBuffer::Closed; + }, + } + } + } else if *must_flush { + if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_flush(cx) { + update_stream_future_ready = true; + match result { + Err(_) => { + // End the stream. + stream.buffers = None; + return Poll::Ready(()) + }, + Ok(()) => { + *must_flush = false; + }, + } + } + } + } + + if update_stream_future_ready { + Poll::Ready(()) + } else { + Poll::Pending + } })) } fn read_buffer(stream: &mut Self::Stream) -> ReadBuffer { - if stream.read_buffer.is_none() { - // the implementation doesn't let us differentiate between Closed and Reset - return ReadBuffer::Reset + match stream.buffers.as_ref().map(|(r, _)| r) { + None => ReadBuffer::Reset, + Some(StreamReadBuffer::Closed) => ReadBuffer::Closed, + Some(StreamReadBuffer::Open { buffer, cursor }) => + ReadBuffer::Open(&buffer[cursor.clone()]), } + } - let mut lock = stream.read_data_rx.lock(); - while let Some(buf) = lock.next().now_or_never() { - match buf { - Some(b) => stream.read_buffer.as_mut().unwrap().extend(b), - None => { - stream.read_buffer = None; - return ReadBuffer::Reset - }, - } - } + fn advance_read_cursor(stream: &mut Self::Stream, extra_bytes: usize) { + let Some(StreamReadBuffer::Open { ref mut cursor, .. }) = + stream.buffers.as_mut().map(|(r, _)| r) + else { + assert_eq!(extra_bytes, 0); + return + }; - ReadBuffer::Open(stream.read_buffer.as_ref().unwrap()) + assert!(cursor.start + extra_bytes <= cursor.end); + cursor.start += extra_bytes; } - fn advance_read_cursor(stream: &mut Self::Stream, bytes: usize) { - if let Some(read_buffer) = &mut stream.read_buffer { - *read_buffer = read_buffer[bytes..].to_vec(); - } + fn writable_bytes(stream: &mut Self::Stream) -> usize { + let Some(StreamWriteBuffer::Open { ref mut buffer, must_close: false, ..}) = + stream.buffers.as_mut().map(|(_, w)| w) else { return 0 }; + buffer.capacity() - buffer.len() } fn send(stream: &mut Self::Stream, data: &[u8]) { - let mut lock = stream.shared.guarded.lock(); - lock.write_queue.reserve(data.len()); - lock.write_queue.extend(data.iter().copied()); - stream.shared.write_queue_pushed.notify(usize::max_value()); + debug_assert!(!data.is_empty()); + + // Because `writable_bytes` returns 0 if the writing side is closed, and because `data` + // must always have a size inferior or equal to `writable_bytes`, we know for sure that + // the writing side isn't closed. + let Some(StreamWriteBuffer::Open { ref mut buffer, .. } )= + stream.buffers.as_mut().map(|(_, w)| w) else { panic!() }; + buffer.reserve(data.len()); + buffer.extend(data.iter().copied()); + } + + fn close_send(stream: &mut Self::Stream) { + // It is not illegal to call this on an already-reset stream. + let Some((_, write_buffer)) = stream.buffers.as_mut() else { return }; + + match write_buffer { + StreamWriteBuffer::Open { must_close: must_close @ false, .. } => *must_close = true, + _ => { + // However, it is illegal to call this on a stream that was already close + // attempted. + panic!() + }, + } } } + +/// Implementation detail of [`AsyncStdTcpWebSocket`]. +pub struct Stream { + socket: TcpOrWs, + /// Read and write buffers of the connection, or `None` if the socket has been reset. + buffers: Option<(StreamReadBuffer, StreamWriteBuffer)>, +} + +enum StreamReadBuffer { + Open { buffer: Vec, cursor: std::ops::Range }, + Closed, +} + +enum StreamWriteBuffer { + Open { buffer: VecDeque, must_flush: bool, must_close: bool }, + Closed, +} + +type TcpOrWs = future::Either>; From 181ce72456a25d6cfb7cc1b8b63af1ddfd3d82ce Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 31 Mar 2023 10:17:15 +0200 Subject: [PATCH 23/44] Update smoldot --- Cargo.lock | 18 +++++++++--------- client/relay-chain-rpc-interface/Cargo.toml | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1082379cd07..13e66ce8ea0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11912,18 +11912,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.158" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" +checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.158" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" +checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" dependencies = [ "proc-macro2", "quote", @@ -11932,9 +11932,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" dependencies = [ "itoa 1.0.4", "ryu", @@ -12160,7 +12160,7 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smoldot" version = "0.5.0" -source = "git+https://github.com/smol-dot/smoldot?rev=7ffa3c87c5818541b5f7d11bd244acb9a475a614#7ffa3c87c5818541b5f7d11bd244acb9a475a614" +source = "git+https://github.com/smol-dot/smoldot?rev=5390303#53903038b043f6b8776f5c1a18309d4d47d5694c" dependencies = [ "arrayvec 0.7.2", "async-std", @@ -12213,7 +12213,7 @@ dependencies = [ [[package]] name = "smoldot-light" version = "0.3.0" -source = "git+https://github.com/smol-dot/smoldot?rev=7ffa3c87c5818541b5f7d11bd244acb9a475a614#7ffa3c87c5818541b5f7d11bd244acb9a475a614" +source = "git+https://github.com/smol-dot/smoldot?rev=5390303#53903038b043f6b8776f5c1a18309d4d47d5694c" dependencies = [ "blake2-rfc", "derive_more", @@ -14197,7 +14197,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.6", - "rand 0.7.3", + "rand 0.8.5", "static_assertions", ] diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index e9317330685..e1ae89affed 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -34,8 +34,8 @@ url = "2.3.1" serde_json = "1.0.94" serde = "1.0.156" lru = "0.9.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "7ffa3c87c5818541b5f7d11bd244acb9a475a614" } -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "7ffa3c87c5818541b5f7d11bd244acb9a475a614", default_features = false } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "5390303" } +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "5390303", default_features = false } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" From 2dbed4bc9778b33032f1effe7ef30834dc55e778 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 6 Jun 2023 15:35:43 +0200 Subject: [PATCH 24/44] Update smoldot --- Cargo.lock | 701 +++++++++++------- client/relay-chain-rpc-interface/Cargo.toml | 6 +- .../src/light_client_worker.rs | 2 +- .../src/reconnecting_ws_client.rs | 2 +- 4 files changed, 420 insertions(+), 291 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c96ed8e6ff1..9dd85f3edd1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -240,6 +240,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arbitrary" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" + [[package]] name = "arc-swap" version = "1.6.0" @@ -776,9 +782,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.4.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ "event-listener", ] @@ -929,9 +935,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1e31e207a6b8fb791a38ea3105e6cb541f55e4d029902d3039a4ad07cc4105" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64ct" @@ -972,7 +978,7 @@ version = "0.65.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", @@ -1008,6 +1014,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84" + [[package]] name = "bitvec" version = "1.0.1" @@ -1643,6 +1655,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "tinyvec", +] + [[package]] name = "bstr" version = "0.2.17" @@ -1958,7 +1979,7 @@ checksum = "72394f3339a76daf211e57d4bcb374410f3965dcc606dd0e03738c7888766980" dependencies = [ "anstream", "anstyle 1.0.0", - "bitflags", + "bitflags 1.3.2", "clap_lex", "strsim", ] @@ -2332,15 +2353,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" -[[package]] -name = "cranelift-bforest" -version = "0.94.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0853f4732d9557cc1f3b4a97112bd5f00a7c619c9828edb45d0a2389ce2913f9" -dependencies = [ - "cranelift-entity 0.94.1", -] - [[package]] name = "cranelift-bforest" version = "0.95.1" @@ -2351,23 +2363,12 @@ dependencies = [ ] [[package]] -name = "cranelift-codegen" -version = "0.94.1" +name = "cranelift-bforest" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed06a9dd2e065be7c1f89cdc820c8c328d2cb69b2be0ba6338fe4050b30bf510" +checksum = "9c064a534a914eb6709d198525321a386dad50627aecfaf64053f369993a3e5a" dependencies = [ - "bumpalo", - "cranelift-bforest 0.94.1", - "cranelift-codegen-meta 0.94.1", - "cranelift-codegen-shared 0.94.1", - "cranelift-entity 0.94.1", - "cranelift-isle 0.94.1", - "gimli", - "hashbrown 0.13.2", - "log", - "regalloc2", - "smallvec", - "target-lexicon", + "cranelift-entity 0.96.3", ] [[package]] @@ -2385,18 +2386,30 @@ dependencies = [ "gimli", "hashbrown 0.13.2", "log", - "regalloc2", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] [[package]] -name = "cranelift-codegen-meta" -version = "0.94.1" +name = "cranelift-codegen" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f0e0e34689be78c2689b31374404d21f1c7667431fd7cd29bed0fa8a67ce8" +checksum = "619ed4d24acef0bd58b16a1be39077c0b36c65782e6c933892439af5e799110e" dependencies = [ - "cranelift-codegen-shared 0.94.1", + "bumpalo", + "cranelift-bforest 0.96.3", + "cranelift-codegen-meta 0.96.3", + "cranelift-codegen-shared 0.96.3", + "cranelift-control", + "cranelift-entity 0.96.3", + "cranelift-isle 0.96.3", + "gimli", + "hashbrown 0.13.2", + "log", + "regalloc2 0.8.1", + "smallvec", + "target-lexicon", ] [[package]] @@ -2409,10 +2422,13 @@ dependencies = [ ] [[package]] -name = "cranelift-codegen-shared" -version = "0.94.1" +name = "cranelift-codegen-meta" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a05c0a89f82c5731ccad8795cd91cc3c771295aa42c268c7f81607388495d374" +checksum = "c777ce22678ae1869f990b2f31e0cd7ca109049213bfc0baf3e2205a18b21ebb" +dependencies = [ + "cranelift-codegen-shared 0.96.3", +] [[package]] name = "cranelift-codegen-shared" @@ -2421,12 +2437,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" [[package]] -name = "cranelift-entity" -version = "0.94.1" +name = "cranelift-codegen-shared" +version = "0.96.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb65884d17a1fa55990dd851c43c140afb4c06c3312cf42cfa1222c3b23f9561" + +[[package]] +name = "cranelift-control" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f184fc14ff49b119760e5f96d1c836d89ee0f5d1b94073ebe88f45b745a9c7a5" +checksum = "9a0cea8abc90934d0a7ee189a29fd35fecd5c40f59ae7e6aab1805e8ab1a535e" dependencies = [ - "serde", + "arbitrary", ] [[package]] @@ -2439,15 +2461,12 @@ dependencies = [ ] [[package]] -name = "cranelift-frontend" -version = "0.94.1" +name = "cranelift-entity" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1990b107c505d3bb0e9fe7ee9a4180912c924c12da1ebed68230393789387858" +checksum = "c2e50bebc05f2401a1320169314b62f91ad811ef20163cac00151d78e0684d4c" dependencies = [ - "cranelift-codegen 0.94.1", - "log", - "smallvec", - "target-lexicon", + "serde", ] [[package]] @@ -2463,10 +2482,16 @@ dependencies = [ ] [[package]] -name = "cranelift-isle" -version = "0.94.1" +name = "cranelift-frontend" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47d398114545d4de2b152c28b1428c840e55764a6b58eea2a0e5c661d9a382a" +checksum = "7b82ccfe704d53f669791399d417928410785132d809ec46f5e2ce069e9d17c8" +dependencies = [ + "cranelift-codegen 0.96.3", + "log", + "smallvec", + "target-lexicon", +] [[package]] name = "cranelift-isle" @@ -2475,15 +2500,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" [[package]] -name = "cranelift-native" -version = "0.94.1" +name = "cranelift-isle" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c769285ed99f5791ca04d9716b3ca3508ec4e7b959759409fddf51ad0481f51" -dependencies = [ - "cranelift-codegen 0.94.1", - "libc", - "target-lexicon", -] +checksum = "a2515d8e7836f9198b160b2c80aaa1f586d7749d57d6065af86223fb65b7e2c3" [[package]] name = "cranelift-native" @@ -2497,19 +2517,14 @@ dependencies = [ ] [[package]] -name = "cranelift-wasm" -version = "0.94.1" +name = "cranelift-native" +version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cbcdec1d7b678919910d213b9e98d5d4c65eeb2153ac042535b00931f093d3" +checksum = "bcb47ffdcdac7e9fed6e4a618939773a4dc4a412fa7da9e701ae667431a10af3" dependencies = [ - "cranelift-codegen 0.94.1", - "cranelift-entity 0.94.1", - "cranelift-frontend 0.94.1", - "itertools", - "log", - "smallvec", - "wasmparser 0.100.0", - "wasmtime-types 7.0.1", + "cranelift-codegen 0.96.3", + "libc", + "target-lexicon", ] [[package]] @@ -2528,6 +2543,22 @@ dependencies = [ "wasmtime-types 8.0.1", ] +[[package]] +name = "cranelift-wasm" +version = "0.96.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852390f92c3eaa457e42be44d174ff5abbbcd10062d5963bda8ffb2505e73a71" +dependencies = [ + "cranelift-codegen 0.96.3", + "cranelift-entity 0.96.3", + "cranelift-frontend 0.96.3", + "itertools", + "log", + "smallvec", + "wasmparser 0.103.0", + "wasmtime-types 9.0.3", +] + [[package]] name = "crc" version = "3.0.0" @@ -3303,7 +3334,6 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "polkadot-overseer", - "polkadot-service", "sc-client-api", "sc-rpc-api", "sc-service", @@ -3316,6 +3346,7 @@ dependencies = [ "sp-authority-discovery", "sp-consensus-babe", "sp-core", + "sp-runtime", "sp-state-machine", "sp-storage", "thiserror", @@ -3647,6 +3678,15 @@ dependencies = [ "syn 1.0.109", ] +[[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.6.0" @@ -4129,13 +4169,13 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -4252,6 +4292,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + [[package]] name = "fastrand" version = "1.7.0" @@ -4598,7 +4644,7 @@ name = "frame-support" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" dependencies = [ - "bitflags", + "bitflags 1.3.2", "environmental", "frame-metadata", "frame-support-procedural", @@ -4892,6 +4938,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.3.1", + "debugid", + "fxhash", + "serde", + "serde_json", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -5136,6 +5195,15 @@ dependencies = [ "serde", ] +[[package]] +name = "hashlink" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0761a1b9491c4f2e3d66aa0f62d0fba0af9a0e2852e4d48ea506632a4b56e6aa" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "heck" version = "0.4.0" @@ -5576,6 +5644,12 @@ dependencies = [ "webrtc-util", ] +[[package]] +name = "intx" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f38a50a899dc47a6d0ed5508e7f601a2e34c3a85303514b5d137f3c10a0c75" + [[package]] name = "io-lifetimes" version = "0.7.5" @@ -5584,12 +5658,13 @@ checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" [[package]] name = "io-lifetimes" -version = "1.0.2" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e394faa0efb47f9f227f1cd89978f854542b318a6f64fa695489c9c993056656" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -5623,8 +5698,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", - "io-lifetimes 1.0.2", - "rustix 0.37.3", + "io-lifetimes 1.0.11", + "rustix 0.37.19", "windows-sys 0.48.0", ] @@ -6108,9 +6183,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.146" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "libloading" @@ -6262,7 +6337,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" dependencies = [ - "bs58", + "bs58 0.4.0", "ed25519-dalek", "log", "multiaddr", @@ -6622,6 +6697,17 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "libsqlite3-sys" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "libz-sys" version = "1.1.3" @@ -6680,9 +6766,9 @@ checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f" [[package]] name = "linux-raw-sys" -version = "0.3.0" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" @@ -7208,7 +7294,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -7261,7 +7347,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -7273,7 +7359,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.7.1", @@ -8082,7 +8168,7 @@ name = "pallet-contracts" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" dependencies = [ - "bitflags", + "bitflags 1.3.2", "environmental", "frame-benchmarking", "frame-support", @@ -8112,7 +8198,7 @@ name = "pallet-contracts-primitives" version = "24.0.0" source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" dependencies = [ - "bitflags", + "bitflags 1.3.2", "parity-scale-codec", "scale-info", "sp-runtime", @@ -9641,22 +9727,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", ] [[package]] @@ -10359,7 +10445,7 @@ name = "polkadot-node-metrics" version = "0.9.41" source = "git+https://github.com/paritytech/polkadot?branch=master#bfb9e87a6d9964a8769c01b2019c30db48f5349d" dependencies = [ - "bs58", + "bs58 0.4.0", "futures", "futures-timer", "log", @@ -10860,7 +10946,7 @@ name = "polkadot-runtime-metrics" version = "0.9.41" source = "git+https://github.com/paritytech/polkadot?branch=master#bfb9e87a6d9964a8769c01b2019c30db48f5349d" dependencies = [ - "bs58", + "bs58 0.4.0", "parity-scale-codec", "polkadot-primitives", "sp-std", @@ -10872,7 +10958,7 @@ name = "polkadot-runtime-parachains" version = "0.9.41" source = "git+https://github.com/paritytech/polkadot?branch=master#bfb9e87a6d9964a8769c01b2019c30db48f5349d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bitvec", "derive_more", "frame-benchmarking", @@ -11502,7 +11588,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "memchr", "unicase", ] @@ -11724,7 +11810,7 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -11733,7 +11819,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -11791,6 +11877,19 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regalloc2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a52e724646c6c0800fc456ec43b4165d2f91fba88ceaca06d9e0b400023478" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" version = "1.6.0" @@ -12082,6 +12181,20 @@ dependencies = [ "webrtc-util", ] +[[package]] +name = "rusqlite" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" +dependencies = [ + "bitflags 2.3.1", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "smallvec", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -12133,7 +12246,7 @@ version = "0.35.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno 0.2.8", "io-lifetimes 0.7.5", "libc", @@ -12147,9 +12260,9 @@ version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno 0.2.8", - "io-lifetimes 1.0.2", + "io-lifetimes 1.0.11", "libc", "linux-raw-sys 0.1.3", "windows-sys 0.42.0", @@ -12157,16 +12270,16 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.3" +version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ - "bitflags", - "errno 0.3.0", - "io-lifetimes 1.0.2", + "bitflags 1.3.2", + "errno 0.3.1", + "io-lifetimes 1.0.11", "libc", - "linux-raw-sys 0.3.0", - "windows-sys 0.45.0", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", ] [[package]] @@ -12223,12 +12336,12 @@ checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" [[package]] name = "ruzstd" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a15e661f0f9dac21f3494fe5d23a6338c0ac116a2d22c2b63010acd89467ffe" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" dependencies = [ "byteorder", - "thiserror", + "thiserror-core", "twox-hash", ] @@ -12896,7 +13009,7 @@ source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b0 dependencies = [ "array-bytes 4.2.0", "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "futures", "futures-timer", @@ -13616,7 +13729,7 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -13944,23 +14057,25 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smoldot" -version = "0.5.0" -source = "git+https://github.com/smol-dot/smoldot?rev=5390303#53903038b043f6b8776f5c1a18309d4d47d5694c" +version = "0.7.0" +source = "git+https://github.com/smol-dot/smoldot?rev=b8a4d432#b8a4d432b4ac15ad829a05561dd6a10004e8b7aa" dependencies = [ "arrayvec 0.7.2", + "async-lock", "async-std", "atomic", - "base64 0.21.1", + "base64 0.21.2", "bip39", "blake2-rfc", - "bs58", + "bs58 0.5.0", "crossbeam-queue", "derive_more", "ed25519-zebra", "either", "event-listener", "fnv", - "futures", + "futures-channel", + "futures-util", "hashbrown 0.13.2", "hex", "hmac 0.12.1", @@ -13972,12 +14087,12 @@ dependencies = [ "num-bigint", "num-rational", "num-traits", - "parity-scale-codec", "parking_lot 0.12.1", "pbkdf2 0.12.1", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", + "rusqlite", "ruzstd", "schnorrkel 0.10.2", "serde", @@ -13988,24 +14103,25 @@ dependencies = [ "smallvec", "snow", "soketto", - "sqlite", "tiny-keccak", "twox-hash", - "wasmi 0.29.0", - "wasmtime 7.0.1", + "wasmi 0.30.0", + "wasmtime 9.0.3", ] [[package]] name = "smoldot-light" -version = "0.3.0" -source = "git+https://github.com/smol-dot/smoldot?rev=5390303#53903038b043f6b8776f5c1a18309d4d47d5694c" +version = "0.5.0" +source = "git+https://github.com/smol-dot/smoldot?rev=b8a4d432#b8a4d432b4ac15ad829a05561dd6a10004e8b7aa" dependencies = [ + "async-lock", "blake2-rfc", "derive_more", "either", "event-listener", "fnv", - "futures", + "futures-channel", + "futures-util", "hashbrown 0.13.2", "hex", "itertools", @@ -14014,6 +14130,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", + "siphasher", "slab", "smoldot", ] @@ -14281,10 +14398,10 @@ version = "21.0.0" source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" dependencies = [ "array-bytes 4.2.0", - "bitflags", + "bitflags 1.3.2", "blake2", "bounded-collections", - "bs58", + "bs58 0.4.0", "dyn-clonable", "ed25519-zebra", "futures", @@ -14831,36 +14948,6 @@ dependencies = [ "der 0.7.1", ] -[[package]] -name = "sqlite" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e66cb949f931ece6201d72bffad3f3601b94998a345793713dd13af70a77c185" -dependencies = [ - "libc", - "sqlite3-sys", -] - -[[package]] -name = "sqlite3-src" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1815a7a02c996eb8e5c64f61fcb6fd9b12e593ce265c512c5853b2513635691" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "sqlite3-sys" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d47c99824fc55360ba00caf28de0b8a0458369b832e016a64c13af0ad9fbb9ee" -dependencies = [ - "libc", - "sqlite3-src", -] - [[package]] name = "ss58-registry" version = "1.34.0" @@ -14906,7 +14993,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -15211,7 +15298,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -15247,7 +15334,7 @@ dependencies = [ "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.3", + "rustix 0.37.19", "windows-sys 0.45.0", ] @@ -15289,6 +15376,26 @@ dependencies = [ "thiserror-impl", ] +[[package]] +name = "thiserror-core" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497" +dependencies = [ + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "thiserror-impl" version = "1.0.40" @@ -15437,9 +15544,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -15589,7 +15696,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", @@ -15868,7 +15975,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.6", - "rand 0.8.5", + "rand 0.7.3", "static_assertions", ] @@ -16238,10 +16345,11 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677160b1166881badada1137afc6457777126f328ae63a18058b504f546f0828" +checksum = "e51fb5c61993e71158abf5bb863df2674ca3ec39ed6471c64f07aeaf751d67b4" dependencies = [ + "intx", "smallvec", "spin 0.9.4", "wasmi_arena", @@ -16269,9 +16377,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.100.0" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ "indexmap", "url", @@ -16279,9 +16387,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.102.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" +checksum = "2c437373cac5ea84f1113d648d51f71751ffbe3d90c00ae67618cf20d0b5ee7b" dependencies = [ "indexmap", "url", @@ -16298,12 +16406,11 @@ dependencies = [ [[package]] name = "wasmtime" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15ac4b4bee3bcf3750911c7104cf50f12c6b1055cc491254c508294b019fd79" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" dependencies = [ "anyhow", - "async-trait", "bincode", "cfg-if", "indexmap", @@ -16313,27 +16420,30 @@ dependencies = [ "once_cell", "paste", "psm", + "rayon", "serde", "target-lexicon", - "wasmparser 0.100.0", - "wasmtime-component-macro", - "wasmtime-cranelift 7.0.1", - "wasmtime-environ 7.0.1", - "wasmtime-fiber", - "wasmtime-jit 7.0.1", - "wasmtime-runtime 7.0.1", + "wasmparser 0.102.0", + "wasmtime-cache", + "wasmtime-cranelift 8.0.1", + "wasmtime-environ 8.0.1", + "wasmtime-jit 8.0.1", + "wasmtime-runtime 8.0.1", "windows-sys 0.45.0", ] [[package]] name = "wasmtime" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" +checksum = "aa0f72886c3264eb639f50188d1eb98b975564130292fea8deb4facf91ca7258" dependencies = [ "anyhow", + "async-trait", "bincode", + "bumpalo", "cfg-if", + "fxprof-processed-profile", "indexmap", "libc", "log", @@ -16341,32 +16451,33 @@ dependencies = [ "once_cell", "paste", "psm", - "rayon", "serde", + "serde_json", "target-lexicon", - "wasmparser 0.102.0", - "wasmtime-cache", - "wasmtime-cranelift 8.0.1", - "wasmtime-environ 8.0.1", - "wasmtime-jit 8.0.1", - "wasmtime-runtime 8.0.1", - "windows-sys 0.45.0", + "wasmparser 0.103.0", + "wasmtime-component-macro", + "wasmtime-cranelift 9.0.3", + "wasmtime-environ 9.0.3", + "wasmtime-fiber", + "wasmtime-jit 9.0.3", + "wasmtime-runtime 9.0.3", + "windows-sys 0.48.0", ] [[package]] name = "wasmtime-asm-macros" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06f9859a704f6b807a3e2e3466ab727f3f748134a96712d0d27c48ba32b32992" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-asm-macros" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" +checksum = "a18391ed41ca957eecdbe64c51879b75419cbc52e2d8663fe82945b28b4f19da" dependencies = [ "cfg-if", ] @@ -16378,7 +16489,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.21.1", + "base64 0.21.2", "bincode", "directories-next", "file-per-thread-logger", @@ -16393,9 +16504,9 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "7.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f851a08ee7b76f74a51d1fd1ce22b139a40beb1792b4f903279c46b568eb1ec" +checksum = "b31baf908d484e93b18fd31f47af5072aa812d3af5ee4d8323295b48240a9ada" dependencies = [ "anyhow", "proc-macro2", @@ -16408,51 +16519,53 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "7.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc0e0e733a8d097a137e05d5e7f62376600d32bd89bdc22c002d1826ae5af2e" +checksum = "daff76cac73c9a1bd0bc201d5304e20dc0724b2c34c029b0c91e10e44c1f47a1" [[package]] name = "wasmtime-cranelift" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ce3bc589c19cd055cc5210daaf77288563010f45cce40c58b57182b9b5bdd" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" dependencies = [ "anyhow", - "cranelift-codegen 0.94.1", - "cranelift-entity 0.94.1", - "cranelift-frontend 0.94.1", - "cranelift-native 0.94.1", - "cranelift-wasm 0.94.1", + "cranelift-codegen 0.95.1", + "cranelift-entity 0.95.1", + "cranelift-frontend 0.95.1", + "cranelift-native 0.95.1", + "cranelift-wasm 0.95.1", "gimli", "log", "object", "target-lexicon", "thiserror", - "wasmparser 0.100.0", - "wasmtime-environ 7.0.1", + "wasmparser 0.102.0", + "wasmtime-cranelift-shared 8.0.1", + "wasmtime-environ 8.0.1", ] [[package]] name = "wasmtime-cranelift" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" +checksum = "a2495036d05eb1e79ecf22e092eeacd279dcf24b4fcab77fb4cf8ef9bd42c3ea" dependencies = [ "anyhow", - "cranelift-codegen 0.95.1", - "cranelift-entity 0.95.1", - "cranelift-frontend 0.95.1", - "cranelift-native 0.95.1", - "cranelift-wasm 0.95.1", + "cranelift-codegen 0.96.3", + "cranelift-control", + "cranelift-entity 0.96.3", + "cranelift-frontend 0.96.3", + "cranelift-native 0.96.3", + "cranelift-wasm 0.96.3", "gimli", "log", "object", "target-lexicon", "thiserror", - "wasmparser 0.102.0", - "wasmtime-cranelift-shared", - "wasmtime-environ 8.0.1", + "wasmparser 0.103.0", + "wasmtime-cranelift-shared 9.0.3", + "wasmtime-environ 9.0.3", ] [[package]] @@ -16471,22 +16584,19 @@ dependencies = [ ] [[package]] -name = "wasmtime-environ" -version = "7.0.1" +name = "wasmtime-cranelift-shared" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a205f0f0ea33bcb56756718a9a9ca1042614237d6258893c519f6fed593325" +checksum = "ef677f7b0d3f3b73275675486d791f1e85e7c24afe8dd367c6b9950028906330" dependencies = [ "anyhow", - "cranelift-entity 0.94.1", + "cranelift-codegen 0.96.3", + "cranelift-control", + "cranelift-native 0.96.3", "gimli", - "indexmap", - "log", "object", - "serde", "target-lexicon", - "thiserror", - "wasmparser 0.100.0", - "wasmtime-types 7.0.1", + "wasmtime-environ 9.0.3", ] [[package]] @@ -16508,24 +16618,43 @@ dependencies = [ "wasmtime-types 8.0.1", ] +[[package]] +name = "wasmtime-environ" +version = "9.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d03356374ffafa881c5f972529d2bb11ce48fe2736285e2b0ad72c6d554257b" +dependencies = [ + "anyhow", + "cranelift-entity 0.96.3", + "gimli", + "indexmap", + "log", + "object", + "serde", + "target-lexicon", + "thiserror", + "wasmparser 0.103.0", + "wasmtime-types 9.0.3", +] + [[package]] name = "wasmtime-fiber" -version = "7.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d55f4f52b3f26b03e6774f2e6c41c72d4106175c58ddd0b74b4b4a81c1ba702c" +checksum = "3ecb992732d5fc99c14e3752f6b9110ec5ace88da15d843f2b80f2b789b182ea" dependencies = [ "cc", "cfg-if", - "rustix 0.36.7", - "wasmtime-asm-macros 7.0.1", - "windows-sys 0.45.0", + "rustix 0.37.19", + "wasmtime-asm-macros 9.0.3", + "windows-sys 0.48.0", ] [[package]] name = "wasmtime-jit" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b111d642a32c858096a57456e503f6b72abdbd04d15b44e12f329c238802f66" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ "addr2line", "anyhow", @@ -16538,17 +16667,18 @@ dependencies = [ "rustc-demangle", "serde", "target-lexicon", - "wasmtime-environ 7.0.1", - "wasmtime-jit-icache-coherence 7.0.1", - "wasmtime-runtime 7.0.1", + "wasmtime-environ 8.0.1", + "wasmtime-jit-debug 8.0.1", + "wasmtime-jit-icache-coherence 8.0.1", + "wasmtime-runtime 8.0.1", "windows-sys 0.45.0", ] [[package]] name = "wasmtime-jit" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" +checksum = "e5374f0d2ee0069391dd9348f148802846b2b3e0af650385f9c56b3012d3c5d1" dependencies = [ "addr2line", "anyhow", @@ -16561,38 +16691,37 @@ dependencies = [ "rustc-demangle", "serde", "target-lexicon", - "wasmtime-environ 8.0.1", - "wasmtime-jit-debug 8.0.1", - "wasmtime-jit-icache-coherence 8.0.1", - "wasmtime-runtime 8.0.1", - "windows-sys 0.45.0", + "wasmtime-environ 9.0.3", + "wasmtime-jit-icache-coherence 9.0.3", + "wasmtime-runtime 9.0.3", + "windows-sys 0.48.0", ] [[package]] name = "wasmtime-jit-debug" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7da0f3ae2e2cefa9d28f3f11bcf7d956433a60ccb34f359cd8c930e2bf1cf5a" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ + "object", "once_cell", + "rustix 0.36.7", ] [[package]] name = "wasmtime-jit-debug" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" +checksum = "102653b177225bfdd2da41cc385965d4bf6bc10cf14ec7b306bc9b015fb01c22" dependencies = [ - "object", "once_cell", - "rustix 0.36.7", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52aab5839634bd3b158757b52bb689e04815023f2a83b281d657b3a0f061f7a0" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" dependencies = [ "cfg-if", "libc", @@ -16601,20 +16730,20 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" +checksum = "374ff63b3eb41db57c56682a9ef7737d2c9efa801f5dbf9da93941c9dd436a06" dependencies = [ "cfg-if", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "wasmtime-runtime" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b738633d1c81b5df6f959757ac529b5c0f69ca917c1cfefac2e114af5c397014" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" dependencies = [ "anyhow", "cc", @@ -16628,18 +16757,17 @@ dependencies = [ "paste", "rand 0.8.5", "rustix 0.36.7", - "wasmtime-asm-macros 7.0.1", - "wasmtime-environ 7.0.1", - "wasmtime-fiber", - "wasmtime-jit-debug 7.0.1", + "wasmtime-asm-macros 8.0.1", + "wasmtime-environ 8.0.1", + "wasmtime-jit-debug 8.0.1", "windows-sys 0.45.0", ] [[package]] name = "wasmtime-runtime" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" +checksum = "9b1b832f19099066ebd26e683121d331f12cf98f158eac0f889972854413b46f" dependencies = [ "anyhow", "cc", @@ -16652,42 +16780,43 @@ dependencies = [ "memoffset 0.8.0", "paste", "rand 0.8.5", - "rustix 0.36.7", - "wasmtime-asm-macros 8.0.1", - "wasmtime-environ 8.0.1", - "wasmtime-jit-debug 8.0.1", - "windows-sys 0.45.0", + "rustix 0.37.19", + "wasmtime-asm-macros 9.0.3", + "wasmtime-environ 9.0.3", + "wasmtime-fiber", + "wasmtime-jit-debug 9.0.3", + "windows-sys 0.48.0", ] [[package]] name = "wasmtime-types" -version = "7.0.1" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc565951214d0707de731561b84457e1200c545437a167f232e150c496295c6e" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ - "cranelift-entity 0.94.1", + "cranelift-entity 0.95.1", "serde", "thiserror", - "wasmparser 0.100.0", + "wasmparser 0.102.0", ] [[package]] name = "wasmtime-types" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" +checksum = "9c574221440e05bbb04efa09786d049401be2eb10081ecf43eb72fbd637bd12f" dependencies = [ - "cranelift-entity 0.95.1", + "cranelift-entity 0.96.3", "serde", "thiserror", - "wasmparser 0.102.0", + "wasmparser 0.103.0", ] [[package]] name = "wasmtime-wit-bindgen" -version = "7.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f2a35ff0a64ae07d4fcfd7c9b745e517be00ddb9991f8e2ad2c913cc11094" +checksum = "5afee5e7c290e9b32280160226dadbb5e1a4d6ba7c9b79f440b70cc790aabc1e" dependencies = [ "anyhow", "heck", @@ -16931,7 +17060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -17415,9 +17544,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.6.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f887c3da527a51b321076ebe6a7513026a4757b6d4d144259946552d6fc728b3" +checksum = "5ca2581061573ef6d1754983d7a9b3ed5871ef859d52708ea9a0f5af32919172" dependencies = [ "anyhow", "id-arena", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index bc6d7a9f0ba..a6e91cbf66c 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -7,7 +7,6 @@ edition = "2021" [dependencies] polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "master" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "master" } cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = { path = "../relay-chain-interface" } @@ -18,6 +17,7 @@ sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-storage = { git = "https://github.com/paritytech/substrate", branch = "master" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } @@ -34,8 +34,8 @@ url = "2.4.0" serde_json = "1.0.96" serde = "1.0.163" lru = "0.9.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "5390303" } -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "5390303", default_features = false } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "b8a4d432" } +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "b8a4d432", default_features = false } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index 4798443a5ed..df6c8d78612 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -35,7 +35,7 @@ use cumulus_primitives_core::relay_chain::{ }; use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; -use polkadot_service::generic::SignedBlock; +use sp_runtime::generic::SignedBlock; use sc_rpc_api::chain::ChainApiClient; use sc_service::SpawnTaskHandle; diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index e888bd7f9a3..1a178be3403 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -32,8 +32,8 @@ use jsonrpsee::{ ws_client::WsClientBuilder, }; use lru::LruCache; -use polkadot_service::generic::SignedBlock; use sc_rpc_api::chain::ChainApiClient; +use sp_runtime::generic::SignedBlock; use std::{num::NonZeroUsize, sync::Arc}; use tokio::sync::mpsc::{ channel as tokio_channel, Receiver as TokioReceiver, Sender as TokioSender, From 4982892f66fb1d9e38ef834c0f672fc0eeded24c Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 6 Jun 2023 17:29:31 +0200 Subject: [PATCH 25/44] Adjust to new version --- .../src/light_client_worker.rs | 22 +++---- .../src/tokio_platform.rs | 58 +++++++++++++------ 2 files changed, 49 insertions(+), 31 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index df6c8d78612..c1bce47f182 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -26,8 +26,8 @@ use jsonrpsee::core::{ }, Error, }; -use smoldot_light::{ChainId, Client as SmoldotClient, ClientConfig, JsonRpcResponses}; -use std::sync::Arc; +use smoldot_light::{ChainId, Client as SmoldotClient, JsonRpcResponses}; +use std::{num::NonZeroU32, sync::Arc}; use tokio::sync::mpsc::{channel as tokio_channel, Receiver, Sender as TokioSender}; use cumulus_primitives_core::relay_chain::{ @@ -54,7 +54,7 @@ enum LightClientError { /// Sending adapter allowing JsonRpsee to send messages to smoldot struct SimpleStringSender { - inner: smoldot_light::Client, + inner: SmoldotClient, chain_id: ChainId, } @@ -92,21 +92,17 @@ pub async fn build_smoldot_client( spawner: SpawnTaskHandle, chain_spec: &str, ) -> RelayChainResult<(SmoldotClient, ChainId, JsonRpcResponses)> { - let config = ClientConfig { - tasks_spawner: Box::new(move |_, task| { - spawner.spawn("cumulus-relay-chain-light-client-task", None, task); - }), - system_name: "cumulus-relay-chain-light-client".to_string(), - system_version: env!("CARGO_PKG_VERSION").to_string(), - }; - - let mut client: SmoldotClient = SmoldotClient::new(config); + let platform = TokioPlatform::new(spawner); + let mut client: SmoldotClient = SmoldotClient::new(platform); // Ask the client to connect to a chain. let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client .add_chain(smoldot_light::AddChainConfig { specification: chain_spec, - disable_json_rpc: false, + json_rpc: smoldot_light::AddChainConfigJsonRpc::Enabled { + max_pending_requests: NonZeroU32::new(128).expect("128 > 0; qed"), + max_subscriptions: 64, + }, potential_relay_chains: core::iter::empty(), database_content: "", user_data: (), diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index af50ac1976d..e03c8dad5cb 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -16,9 +16,10 @@ use core::time::Duration; use futures::{prelude::*, task::Poll}; +use sc_service::SpawnTaskHandle; use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; use smoldot_light::platform::{ - ConnectError, Platform, PlatformConnection, PlatformSubstreamDirection, ReadBuffer, + ConnectError, PlatformConnection, PlatformRef, PlatformSubstreamDirection, ReadBuffer, }; use std::{ collections::VecDeque, @@ -34,9 +35,18 @@ type CompatTcpStream = Compat; /// Platform implementation for tokio /// This implementation is a conversion of the implementation for async-std: /// https://github.com/smol-dot/smoldot/blob/54d88891b1da202b4bf612a150df7b4dbfa03a55/light-base/src/platform/async_std.rs#L40 -pub struct TokioPlatform; +#[derive(Clone)] +pub struct TokioPlatform { + spawner: SpawnTaskHandle, +} -impl Platform for TokioPlatform { +impl TokioPlatform { + pub fn new(spawner: SpawnTaskHandle) -> Self { + TokioPlatform { spawner } + } +} + +impl PlatformRef for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; type Yield = future::Ready<()>; type Instant = std::time::Instant; @@ -50,30 +60,30 @@ impl Platform for TokioPlatform { type NextSubstreamFuture<'a> = future::Pending>; - fn now_from_unix_epoch() -> Duration { + fn now_from_unix_epoch(&self) -> Duration { // Intentionally panic if the time is configured earlier than the UNIX EPOCH. std::time::UNIX_EPOCH.elapsed().unwrap() } - fn now() -> Self::Instant { + fn now(&self) -> Self::Instant { std::time::Instant::now() } - fn sleep(duration: Duration) -> Self::Delay { + fn sleep(&self, duration: Duration) -> Self::Delay { tokio::time::sleep(duration).boxed() } - fn sleep_until(when: Self::Instant) -> Self::Delay { + fn sleep_until(&self, when: Self::Instant) -> Self::Delay { let duration = when.saturating_duration_since(std::time::Instant::now()); - Self::sleep(duration) + self.sleep(duration) } - fn yield_after_cpu_intensive() -> Self::Yield { + fn yield_after_cpu_intensive(&self) -> Self::Yield { // No-op. future::ready(()) } - fn connect(multiaddr: &str) -> Self::ConnectFuture { + fn connect(&self, multiaddr: &str) -> Self::ConnectFuture { // We simply copy the address to own it. We could be more zero-cost here, but doing so // would considerably complicate the implementation. let multiaddr = multiaddr.to_owned(); @@ -183,19 +193,19 @@ impl Platform for TokioPlatform { }) } - fn open_out_substream(c: &mut Self::Connection) { + fn open_out_substream(&self, c: &mut Self::Connection) { // This function can only be called with so-called "multi-stream" connections. We never // open such connection. match *c {} } - fn next_substream(c: &'_ mut Self::Connection) -> Self::NextSubstreamFuture<'_> { + fn next_substream<'a>(&self, c: &'a mut Self::Connection) -> Self::NextSubstreamFuture<'a> { // This function can only be called with so-called "multi-stream" connections. We never // open such connection. match *c {} } - fn update_stream(stream: &'_ mut Self::Stream) -> Self::StreamUpdateFuture<'_> { + fn update_stream<'a>(&self, stream: &'a mut Self::Stream) -> Self::StreamUpdateFuture<'a> { Box::pin(future::poll_fn(|cx| { let Some((read_buffer, write_buffer)) = stream.buffers.as_mut() else { return Poll::Pending }; @@ -301,7 +311,7 @@ impl Platform for TokioPlatform { })) } - fn read_buffer(stream: &mut Self::Stream) -> ReadBuffer { + fn read_buffer<'a>(&self, stream: &'a mut Self::Stream) -> ReadBuffer<'a> { match stream.buffers.as_ref().map(|(r, _)| r) { None => ReadBuffer::Reset, Some(StreamReadBuffer::Closed) => ReadBuffer::Closed, @@ -310,7 +320,7 @@ impl Platform for TokioPlatform { } } - fn advance_read_cursor(stream: &mut Self::Stream, extra_bytes: usize) { + fn advance_read_cursor(&self, stream: &mut Self::Stream, extra_bytes: usize) { let Some(StreamReadBuffer::Open { ref mut cursor, .. }) = stream.buffers.as_mut().map(|(r, _)| r) else { @@ -322,13 +332,13 @@ impl Platform for TokioPlatform { cursor.start += extra_bytes; } - fn writable_bytes(stream: &mut Self::Stream) -> usize { + fn writable_bytes(&self, stream: &mut Self::Stream) -> usize { let Some(StreamWriteBuffer::Open { ref mut buffer, must_close: false, ..}) = stream.buffers.as_mut().map(|(_, w)| w) else { return 0 }; buffer.capacity() - buffer.len() } - fn send(stream: &mut Self::Stream, data: &[u8]) { + fn send(&self, stream: &mut Self::Stream, data: &[u8]) { debug_assert!(!data.is_empty()); // Because `writable_bytes` returns 0 if the writing side is closed, and because `data` @@ -340,7 +350,7 @@ impl Platform for TokioPlatform { buffer.extend(data.iter().copied()); } - fn close_send(stream: &mut Self::Stream) { + fn close_send(&self, stream: &mut Self::Stream) { // It is not illegal to call this on an already-reset stream. let Some((_, write_buffer)) = stream.buffers.as_mut() else { return }; @@ -353,6 +363,18 @@ impl Platform for TokioPlatform { }, } } + + fn spawn_task(&self, _: std::borrow::Cow, task: future::BoxFuture<'static, ()>) { + self.spawner.spawn("cumulus-internal-light-client-task", None, task) + } + + fn client_name(&self) -> std::borrow::Cow { + "cumulus-relay-chain-light-client".into() + } + + fn client_version(&self) -> std::borrow::Cow { + env!("CARGO_PKG_VERSION").into() + } } /// Implementation detail of [`AsyncStdTcpWebSocket`]. From 197a77dd14a1b357430e5e2773411773c20fecc0 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 7 Jun 2023 10:26:18 +0200 Subject: [PATCH 26/44] Patch substrate --- Cargo.lock | 1091 +++++++++++++++++++++++++--------------------------- Cargo.toml | 263 +++++++++++++ 2 files changed, 791 insertions(+), 563 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9dd85f3edd1..18e116141ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -957,7 +957,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "hash-db", "log", @@ -2353,42 +2353,13 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" -[[package]] -name = "cranelift-bforest" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" -dependencies = [ - "cranelift-entity 0.95.1", -] - [[package]] name = "cranelift-bforest" version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c064a534a914eb6709d198525321a386dad50627aecfaf64053f369993a3e5a" dependencies = [ - "cranelift-entity 0.96.3", -] - -[[package]] -name = "cranelift-codegen" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" -dependencies = [ - "bumpalo", - "cranelift-bforest 0.95.1", - "cranelift-codegen-meta 0.95.1", - "cranelift-codegen-shared 0.95.1", - "cranelift-entity 0.95.1", - "cranelift-isle 0.95.1", - "gimli", - "hashbrown 0.13.2", - "log", - "regalloc2 0.6.1", - "smallvec", - "target-lexicon", + "cranelift-entity", ] [[package]] @@ -2398,44 +2369,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "619ed4d24acef0bd58b16a1be39077c0b36c65782e6c933892439af5e799110e" dependencies = [ "bumpalo", - "cranelift-bforest 0.96.3", - "cranelift-codegen-meta 0.96.3", - "cranelift-codegen-shared 0.96.3", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", "cranelift-control", - "cranelift-entity 0.96.3", - "cranelift-isle 0.96.3", + "cranelift-entity", + "cranelift-isle", "gimli", "hashbrown 0.13.2", "log", - "regalloc2 0.8.1", + "regalloc2", "smallvec", "target-lexicon", ] -[[package]] -name = "cranelift-codegen-meta" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" -dependencies = [ - "cranelift-codegen-shared 0.95.1", -] - [[package]] name = "cranelift-codegen-meta" version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c777ce22678ae1869f990b2f31e0cd7ca109049213bfc0baf3e2205a18b21ebb" dependencies = [ - "cranelift-codegen-shared 0.96.3", + "cranelift-codegen-shared", ] -[[package]] -name = "cranelift-codegen-shared" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" - [[package]] name = "cranelift-codegen-shared" version = "0.96.3" @@ -2451,15 +2407,6 @@ dependencies = [ "arbitrary", ] -[[package]] -name = "cranelift-entity" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" -dependencies = [ - "serde", -] - [[package]] name = "cranelift-entity" version = "0.96.3" @@ -2469,94 +2416,49 @@ dependencies = [ "serde", ] -[[package]] -name = "cranelift-frontend" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" -dependencies = [ - "cranelift-codegen 0.95.1", - "log", - "smallvec", - "target-lexicon", -] - [[package]] name = "cranelift-frontend" version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b82ccfe704d53f669791399d417928410785132d809ec46f5e2ce069e9d17c8" dependencies = [ - "cranelift-codegen 0.96.3", + "cranelift-codegen", "log", "smallvec", "target-lexicon", ] -[[package]] -name = "cranelift-isle" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" - [[package]] name = "cranelift-isle" version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2515d8e7836f9198b160b2c80aaa1f586d7749d57d6065af86223fb65b7e2c3" -[[package]] -name = "cranelift-native" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" -dependencies = [ - "cranelift-codegen 0.95.1", - "libc", - "target-lexicon", -] - [[package]] name = "cranelift-native" version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcb47ffdcdac7e9fed6e4a618939773a4dc4a412fa7da9e701ae667431a10af3" dependencies = [ - "cranelift-codegen 0.96.3", + "cranelift-codegen", "libc", "target-lexicon", ] -[[package]] -name = "cranelift-wasm" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" -dependencies = [ - "cranelift-codegen 0.95.1", - "cranelift-entity 0.95.1", - "cranelift-frontend 0.95.1", - "itertools", - "log", - "smallvec", - "wasmparser 0.102.0", - "wasmtime-types 8.0.1", -] - [[package]] name = "cranelift-wasm" version = "0.96.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "852390f92c3eaa457e42be44d174ff5abbbcd10062d5963bda8ffb2505e73a71" dependencies = [ - "cranelift-codegen 0.96.3", - "cranelift-entity 0.96.3", - "cranelift-frontend 0.96.3", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", "itertools", "log", "smallvec", - "wasmparser 0.103.0", - "wasmtime-types 9.0.3", + "wasmparser", + "wasmtime-types", ] [[package]] @@ -4454,7 +4356,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", ] @@ -4477,7 +4379,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-support-procedural", @@ -4502,7 +4404,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -4549,7 +4451,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-pallet-pov" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -4564,7 +4466,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4575,7 +4477,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4592,7 +4494,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -4621,7 +4523,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-recursion", "futures", @@ -4642,7 +4544,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "bitflags 1.3.2", "environmental", @@ -4677,7 +4579,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "Inflector", "cfg-expr", @@ -4694,7 +4596,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -4706,7 +4608,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro2", "quote", @@ -4716,7 +4618,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "cfg-if", "frame-support", @@ -4735,7 +4637,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -4750,7 +4652,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "sp-api", @@ -4759,7 +4661,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "parity-scale-codec", @@ -5908,7 +5810,7 @@ checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" [[package]] name = "kitchensink-runtime" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-benchmarking-pallet-pov", @@ -6855,9 +6757,9 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e7c1b5ffe892e88b288611ccf55f9c4f4e43214aea6f7f80f0c2c53c85e68e" +checksum = "0a2d6d7fe4741b5621cf7c8048e472933877c7ea870cbf1420da55ea9f3bb08c" dependencies = [ "macro_magic_core", "macro_magic_macros", @@ -6867,9 +6769,9 @@ dependencies = [ [[package]] name = "macro_magic_core" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e812c59de90e5d50405131c676dad7d239de39ccc975620c72d467c70138851" +checksum = "3005604258419767cacc5989c2dd75263f8b33773dd680734f598eb88baf5370" dependencies = [ "derive-syn-parse", "macro_magic_core_macros", @@ -6880,9 +6782,9 @@ dependencies = [ [[package]] name = "macro_magic_core_macros" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b1906fa06ee8c02b24595e121be94e0036cb64f9dce5e587edd1e823c87c94" +checksum = "de6267819c9042df1a9e62ca279e5a34254ad5dfdcb13ff988f560d75576e8b4" dependencies = [ "proc-macro2", "quote", @@ -6891,9 +6793,9 @@ dependencies = [ [[package]] name = "macro_magic_macros" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e8939ee52e99672a887d8ee13776d0f54262c058ce7e911185fed8e43e3a59" +checksum = "dc7176ac15ab2ed7f335e2398f729b9562dae0c233705bc1e1e3acd8452d403d" dependencies = [ "macro_magic_core", "quote", @@ -7080,7 +6982,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "log", @@ -7099,7 +7001,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "anyhow", "jsonrpsee", @@ -7376,7 +7278,7 @@ checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" [[package]] name = "node-cli" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "clap", @@ -7447,7 +7349,7 @@ dependencies = [ [[package]] name = "node-executor" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "kitchensink-runtime", @@ -7466,7 +7368,7 @@ dependencies = [ [[package]] name = "node-inspect" version = "0.9.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "clap", "parity-scale-codec", @@ -7483,7 +7385,7 @@ dependencies = [ [[package]] name = "node-primitives" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-system", "parity-scale-codec", @@ -7496,7 +7398,7 @@ dependencies = [ [[package]] name = "node-rpc" version = "3.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -7766,7 +7668,7 @@ dependencies = [ [[package]] name = "pallet-alliance" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "frame-benchmarking", @@ -7787,7 +7689,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -7804,7 +7706,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -7818,7 +7720,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -7836,7 +7738,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -7851,7 +7753,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -7867,7 +7769,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -7883,7 +7785,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -7897,7 +7799,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -7921,7 +7823,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7941,7 +7843,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -7956,7 +7858,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -7975,7 +7877,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "binary-merkle-tree", @@ -7999,7 +7901,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8105,7 +8007,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8149,7 +8051,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8166,7 +8068,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "bitflags 1.3.2", "environmental", @@ -8196,7 +8098,7 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -8209,7 +8111,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro2", "quote", @@ -8219,7 +8121,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8236,7 +8138,7 @@ dependencies = [ [[package]] name = "pallet-core-fellowship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8254,7 +8156,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8272,7 +8174,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8295,7 +8197,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8308,7 +8210,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8326,7 +8228,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "docify", "frame-benchmarking", @@ -8345,7 +8247,7 @@ dependencies = [ [[package]] name = "pallet-glutton" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "blake2", "frame-benchmarking", @@ -8363,7 +8265,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8386,7 +8288,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8402,7 +8304,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8422,7 +8324,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8439,7 +8341,7 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8453,7 +8355,7 @@ dependencies = [ [[package]] name = "pallet-lottery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8467,7 +8369,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8484,7 +8386,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8503,7 +8405,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8520,7 +8422,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8536,7 +8438,7 @@ dependencies = [ [[package]] name = "pallet-nft-fractionalization" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8553,7 +8455,7 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8571,7 +8473,7 @@ dependencies = [ [[package]] name = "pallet-nfts-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "pallet-nfts", @@ -8582,7 +8484,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8598,7 +8500,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8615,7 +8517,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8635,7 +8537,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -8646,7 +8548,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8663,7 +8565,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8702,7 +8604,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8719,7 +8621,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8734,7 +8636,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8752,7 +8654,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8767,7 +8669,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8786,7 +8688,7 @@ dependencies = [ [[package]] name = "pallet-remark" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8803,7 +8705,7 @@ dependencies = [ [[package]] name = "pallet-root-testing" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8818,7 +8720,7 @@ dependencies = [ [[package]] name = "pallet-salary" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8836,7 +8738,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8853,7 +8755,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8874,7 +8776,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8890,7 +8792,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8904,7 +8806,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8927,7 +8829,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8938,7 +8840,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "log", "sp-arithmetic", @@ -8947,7 +8849,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "sp-api", @@ -8956,7 +8858,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -8973,7 +8875,7 @@ dependencies = [ [[package]] name = "pallet-statement" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -8991,7 +8893,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9006,7 +8908,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9024,7 +8926,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9043,7 +8945,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-support", "frame-system", @@ -9059,7 +8961,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -9075,7 +8977,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -9087,7 +8989,7 @@ dependencies = [ [[package]] name = "pallet-transaction-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9107,7 +9009,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9124,7 +9026,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9139,7 +9041,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9155,7 +9057,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -9170,7 +9072,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-benchmarking", "frame-support", @@ -11865,18 +11767,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "regalloc2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" -dependencies = [ - "fxhash", - "log", - "slice-group-by", - "smallvec", -] - [[package]] name = "regalloc2" version = "0.8.1" @@ -12392,7 +12282,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "log", "sp-core", @@ -12403,7 +12293,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -12432,7 +12322,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "futures-timer", @@ -12455,7 +12345,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -12470,7 +12360,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -12489,7 +12379,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12500,7 +12390,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "chrono", @@ -12540,7 +12430,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "fnv", "futures", @@ -12567,7 +12457,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "hash-db", "kvdb", @@ -12593,7 +12483,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -12618,7 +12508,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -12647,7 +12537,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "fork-tree", @@ -12683,7 +12573,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "jsonrpsee", @@ -12705,7 +12595,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -12741,7 +12631,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "jsonrpsee", @@ -12760,7 +12650,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "fork-tree", "parity-scale-codec", @@ -12773,7 +12663,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ahash 0.8.2", "array-bytes 4.2.0", @@ -12813,7 +12703,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "finality-grandpa", "futures", @@ -12833,7 +12723,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -12856,7 +12746,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -12878,7 +12768,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -12890,7 +12780,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "anyhow", "cfg-if", @@ -12902,13 +12792,13 @@ dependencies = [ "sc-executor-common", "sp-runtime-interface", "sp-wasm-interface", - "wasmtime 8.0.1", + "wasmtime", ] [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ansi_term", "futures", @@ -12924,7 +12814,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "parking_lot 0.12.1", @@ -12938,7 +12828,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -12984,7 +12874,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-channel", "cid", @@ -13005,7 +12895,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -13032,7 +12922,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ahash 0.8.2", "futures", @@ -13050,7 +12940,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -13072,7 +12962,7 @@ dependencies = [ [[package]] name = "sc-network-statement" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -13092,7 +12982,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -13126,7 +13016,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "futures", @@ -13144,7 +13034,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -13174,7 +13064,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -13183,7 +13073,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "jsonrpsee", @@ -13214,7 +13104,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13233,7 +13123,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "http", "jsonrpsee", @@ -13248,7 +13138,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "futures", @@ -13274,7 +13164,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "directories", @@ -13340,7 +13230,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "log", "parity-scale-codec", @@ -13351,7 +13241,7 @@ dependencies = [ [[package]] name = "sc-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -13374,7 +13264,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "clap", "fs4", @@ -13390,7 +13280,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13409,7 +13299,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "libc", @@ -13428,7 +13318,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "chrono", "futures", @@ -13447,7 +13337,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ansi_term", "atty", @@ -13478,7 +13368,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -13489,7 +13379,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -13515,7 +13405,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -13531,7 +13421,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-channel", "futures", @@ -14106,7 +13996,7 @@ dependencies = [ "tiny-keccak", "twox-hash", "wasmi 0.30.0", - "wasmtime 9.0.3", + "wasmtime", ] [[package]] @@ -14188,7 +14078,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "hash-db", "log", @@ -14208,7 +14098,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "Inflector", "blake2", @@ -14222,7 +14112,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -14235,7 +14125,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "integer-sqrt", "num-traits", @@ -14249,7 +14139,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -14262,7 +14152,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "sp-api", @@ -14274,7 +14164,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "log", @@ -14292,7 +14182,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures", @@ -14307,7 +14197,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "parity-scale-codec", @@ -14325,7 +14215,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "parity-scale-codec", @@ -14346,7 +14236,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "lazy_static", "parity-scale-codec", @@ -14365,7 +14255,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "finality-grandpa", "log", @@ -14383,7 +14273,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -14395,7 +14285,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "bitflags 1.3.2", @@ -14439,7 +14329,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "blake2b_simd", "byteorder", @@ -14453,7 +14343,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro2", "quote", @@ -14464,7 +14354,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -14473,7 +14363,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro2", "quote", @@ -14483,7 +14373,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "environmental", "parity-scale-codec", @@ -14494,7 +14384,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -14509,7 +14399,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "bytes", "ed25519", @@ -14535,7 +14425,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "lazy_static", "sp-core", @@ -14546,7 +14436,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "parity-scale-codec", @@ -14560,7 +14450,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -14569,7 +14459,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14580,7 +14470,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14598,7 +14488,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -14612,7 +14502,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "sp-api", "sp-core", @@ -14622,7 +14512,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "backtrace", "lazy_static", @@ -14632,7 +14522,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "rustc-hash", "serde", @@ -14642,7 +14532,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "either", "hash256-std-hasher", @@ -14664,7 +14554,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -14682,7 +14572,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "Inflector", "proc-macro-crate", @@ -14694,7 +14584,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -14708,7 +14598,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -14721,7 +14611,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "hash-db", "log", @@ -14741,7 +14631,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "log", "parity-scale-codec", @@ -14759,12 +14649,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14777,7 +14667,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "futures-timer", @@ -14792,7 +14682,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "sp-std", @@ -14804,7 +14694,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "sp-api", "sp-runtime", @@ -14813,7 +14703,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "log", @@ -14829,7 +14719,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ahash 0.8.2", "hash-db", @@ -14852,7 +14742,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14869,7 +14759,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -14880,20 +14770,20 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", "sp-std", - "wasmtime 8.0.1", + "wasmtime", ] [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "parity-scale-codec", "scale-info", @@ -15091,7 +14981,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "platforms", ] @@ -15099,7 +14989,7 @@ dependencies = [ [[package]] name = "substrate-frame-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "clap", "frame-support", @@ -15112,7 +15002,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -15131,7 +15021,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "hyper", "log", @@ -15143,7 +15033,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "jsonrpsee", @@ -15156,7 +15046,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "jsonrpsee", "log", @@ -15175,7 +15065,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -15201,7 +15091,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "futures", "substrate-test-utils-derive", @@ -15211,7 +15101,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -15222,7 +15112,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "ansi_term", "build-helper", @@ -15908,7 +15798,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#31b57a1884b00ed979ba85343e308ed73756cb41" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" dependencies = [ "async-trait", "clap", @@ -16375,16 +16265,6 @@ dependencies = [ "paste", ] -[[package]] -name = "wasmparser" -version = "0.102.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" -dependencies = [ - "indexmap", - "url", -] - [[package]] name = "wasmparser" version = "0.103.0" @@ -16404,34 +16284,6 @@ dependencies = [ "indexmap-nostd", ] -[[package]] -name = "wasmtime" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" -dependencies = [ - "anyhow", - "bincode", - "cfg-if", - "indexmap", - "libc", - "log", - "object", - "once_cell", - "paste", - "psm", - "rayon", - "serde", - "target-lexicon", - "wasmparser 0.102.0", - "wasmtime-cache", - "wasmtime-cranelift 8.0.1", - "wasmtime-environ 8.0.1", - "wasmtime-jit 8.0.1", - "wasmtime-runtime 8.0.1", - "windows-sys 0.45.0", -] - [[package]] name = "wasmtime" version = "9.0.3" @@ -16451,28 +16303,21 @@ dependencies = [ "once_cell", "paste", "psm", + "rayon", "serde", "serde_json", "target-lexicon", - "wasmparser 0.103.0", + "wasmparser", + "wasmtime-cache", "wasmtime-component-macro", - "wasmtime-cranelift 9.0.3", - "wasmtime-environ 9.0.3", + "wasmtime-cranelift", + "wasmtime-environ", "wasmtime-fiber", - "wasmtime-jit 9.0.3", - "wasmtime-runtime 9.0.3", + "wasmtime-jit", + "wasmtime-runtime", "windows-sys 0.48.0", ] -[[package]] -name = "wasmtime-asm-macros" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" -dependencies = [ - "cfg-if", -] - [[package]] name = "wasmtime-asm-macros" version = "9.0.3" @@ -16484,9 +16329,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "8.0.1" +version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" +checksum = "dfd5ef82889a6a35b3790025b3fd33e6ee4902a5408c09f716c771a38c47cd10" dependencies = [ "anyhow", "base64 0.21.2", @@ -16494,11 +16339,11 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.36.7", + "rustix 0.37.19", "serde", "sha2 0.10.6", "toml 0.5.10", - "windows-sys 0.45.0", + "windows-sys 0.48.0", "zstd 0.11.2+zstd.1.5.2", ] @@ -16523,28 +16368,6 @@ version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daff76cac73c9a1bd0bc201d5304e20dc0724b2c34c029b0c91e10e44c1f47a1" -[[package]] -name = "wasmtime-cranelift" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" -dependencies = [ - "anyhow", - "cranelift-codegen 0.95.1", - "cranelift-entity 0.95.1", - "cranelift-frontend 0.95.1", - "cranelift-native 0.95.1", - "cranelift-wasm 0.95.1", - "gimli", - "log", - "object", - "target-lexicon", - "thiserror", - "wasmparser 0.102.0", - "wasmtime-cranelift-shared 8.0.1", - "wasmtime-environ 8.0.1", -] - [[package]] name = "wasmtime-cranelift" version = "9.0.3" @@ -16552,35 +16375,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2495036d05eb1e79ecf22e092eeacd279dcf24b4fcab77fb4cf8ef9bd42c3ea" dependencies = [ "anyhow", - "cranelift-codegen 0.96.3", + "cranelift-codegen", "cranelift-control", - "cranelift-entity 0.96.3", - "cranelift-frontend 0.96.3", - "cranelift-native 0.96.3", - "cranelift-wasm 0.96.3", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", "gimli", "log", "object", "target-lexicon", "thiserror", - "wasmparser 0.103.0", - "wasmtime-cranelift-shared 9.0.3", - "wasmtime-environ 9.0.3", -] - -[[package]] -name = "wasmtime-cranelift-shared" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" -dependencies = [ - "anyhow", - "cranelift-codegen 0.95.1", - "cranelift-native 0.95.1", - "gimli", - "object", - "target-lexicon", - "wasmtime-environ 8.0.1", + "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", ] [[package]] @@ -16590,32 +16398,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef677f7b0d3f3b73275675486d791f1e85e7c24afe8dd367c6b9950028906330" dependencies = [ "anyhow", - "cranelift-codegen 0.96.3", + "cranelift-codegen", "cranelift-control", - "cranelift-native 0.96.3", - "gimli", - "object", - "target-lexicon", - "wasmtime-environ 9.0.3", -] - -[[package]] -name = "wasmtime-environ" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" -dependencies = [ - "anyhow", - "cranelift-entity 0.95.1", + "cranelift-native", "gimli", - "indexmap", - "log", "object", - "serde", "target-lexicon", - "thiserror", - "wasmparser 0.102.0", - "wasmtime-types 8.0.1", + "wasmtime-environ", ] [[package]] @@ -16625,7 +16414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d03356374ffafa881c5f972529d2bb11ce48fe2736285e2b0ad72c6d554257b" dependencies = [ "anyhow", - "cranelift-entity 0.96.3", + "cranelift-entity", "gimli", "indexmap", "log", @@ -16633,8 +16422,8 @@ dependencies = [ "serde", "target-lexicon", "thiserror", - "wasmparser 0.103.0", - "wasmtime-types 9.0.3", + "wasmparser", + "wasmtime-types", ] [[package]] @@ -16646,34 +16435,10 @@ dependencies = [ "cc", "cfg-if", "rustix 0.37.19", - "wasmtime-asm-macros 9.0.3", + "wasmtime-asm-macros", "windows-sys 0.48.0", ] -[[package]] -name = "wasmtime-jit" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" -dependencies = [ - "addr2line", - "anyhow", - "bincode", - "cfg-if", - "cpp_demangle", - "gimli", - "log", - "object", - "rustc-demangle", - "serde", - "target-lexicon", - "wasmtime-environ 8.0.1", - "wasmtime-jit-debug 8.0.1", - "wasmtime-jit-icache-coherence 8.0.1", - "wasmtime-runtime 8.0.1", - "windows-sys 0.45.0", -] - [[package]] name = "wasmtime-jit" version = "9.0.3" @@ -16691,41 +16456,22 @@ dependencies = [ "rustc-demangle", "serde", "target-lexicon", - "wasmtime-environ 9.0.3", - "wasmtime-jit-icache-coherence 9.0.3", - "wasmtime-runtime 9.0.3", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", "windows-sys 0.48.0", ] -[[package]] -name = "wasmtime-jit-debug" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" -dependencies = [ - "object", - "once_cell", - "rustix 0.36.7", -] - [[package]] name = "wasmtime-jit-debug" version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "102653b177225bfdd2da41cc385965d4bf6bc10cf14ec7b306bc9b015fb01c22" dependencies = [ + "object", "once_cell", -] - -[[package]] -name = "wasmtime-jit-icache-coherence" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" -dependencies = [ - "cfg-if", - "libc", - "windows-sys 0.45.0", + "rustix 0.37.19", ] [[package]] @@ -16739,30 +16485,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "wasmtime-runtime" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" -dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap", - "libc", - "log", - "mach", - "memfd", - "memoffset 0.8.0", - "paste", - "rand 0.8.5", - "rustix 0.36.7", - "wasmtime-asm-macros 8.0.1", - "wasmtime-environ 8.0.1", - "wasmtime-jit-debug 8.0.1", - "windows-sys 0.45.0", -] - [[package]] name = "wasmtime-runtime" version = "9.0.3" @@ -16781,35 +16503,23 @@ dependencies = [ "paste", "rand 0.8.5", "rustix 0.37.19", - "wasmtime-asm-macros 9.0.3", - "wasmtime-environ 9.0.3", + "wasmtime-asm-macros", + "wasmtime-environ", "wasmtime-fiber", - "wasmtime-jit-debug 9.0.3", + "wasmtime-jit-debug", "windows-sys 0.48.0", ] -[[package]] -name = "wasmtime-types" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" -dependencies = [ - "cranelift-entity 0.95.1", - "serde", - "thiserror", - "wasmparser 0.102.0", -] - [[package]] name = "wasmtime-types" version = "9.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c574221440e05bbb04efa09786d049401be2eb10081ecf43eb72fbd637bd12f" dependencies = [ - "cranelift-entity 0.96.3", + "cranelift-entity", "serde", "thiserror", - "wasmparser 0.103.0", + "wasmparser", ] [[package]] @@ -17819,3 +17529,258 @@ dependencies = [ "libc", "pkg-config", ] + +[[patch.unused]] +name = "chain-spec-builder" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "frame-election-solution-type-fuzzer" +version = "2.0.0-alpha.5" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "frame-support-test" +version = "3.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "frame-support-test-compile-pass" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "frame-support-test-pallet" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "generate-bags" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "node-bench" +version = "0.9.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "node-runtime-generate-bags" +version = "3.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "node-template" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "node-template-release" +version = "3.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "node-template-runtime" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "node-testing" +version = "3.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-atomic-swap" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-bags-list-fuzzer" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-bags-list-remote-tests" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-default-config-example" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-dev-mode" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-election-provider-e2e-test" +version = "1.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-example-basic" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-example-kitchensink" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-example-offchain-worker" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-examples" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-nicks" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-node-authorization" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-nomination-pools-fuzzer" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-nomination-pools-test-staking" +version = "1.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-root-offences" +version = "1.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-scored-pool" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "pallet-template" +version = "4.0.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sc-consensus-manual-seal" +version = "0.10.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sc-consensus-pow" +version = "0.10.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sc-network-test" +version = "0.8.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sc-runtime-test" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sc-service-test" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-api-test" +version = "2.0.1" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-application-crypto-test" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-arithmetic-fuzzer" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-consensus-pow" +version = "0.10.0-dev" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-crypto-ec-utils" +version = "0.4.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-npos-elections-fuzzer" +version = "2.0.0-alpha.5" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-runtime-interface-test" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-runtime-interface-test-wasm" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-runtime-interface-test-wasm-deprecated" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "sp-test-primitives" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "subkey" +version = "3.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "substrate-cli-test-utils" +version = "0.1.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "substrate-frame-rpc-support" +version = "3.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "substrate-test-runtime" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "substrate-test-runtime-client" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "substrate-test-runtime-transaction-pool" +version = "2.0.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" + +[[patch.unused]] +name = "substrate-test-utils-test-crate" +version = "0.1.0" +source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" diff --git a/Cargo.toml b/Cargo.toml index 77b32019681..9e72000a4d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,3 +73,266 @@ opt-level = 3 inherits = "release" lto = true codegen-units = 1 + +[patch."https://github.com/paritytech/substrate"] +node-template = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support-procedural = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support-procedural-tools = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support-procedural-tools-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-api-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-core = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-core-hashing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-std = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-debug-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-externalities = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-storage = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-runtime-interface = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-runtime-interface-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-tracing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-wasm-interface = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-io = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-keystore = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-state-machine = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-panic-handler = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-trie = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-application-crypto = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-arithmetic = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-weights = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-runtime-client = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-block-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-client-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-prometheus-endpoint = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-executor = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-executor-common = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-allocator = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-maybe-compressed-blob = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-executor-wasmtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-runtime-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-wasm-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-version = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-core-hashing-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-version-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-tracing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-rpc-server = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-tracing-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-blockchain = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-inherents = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-test-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-database = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-executive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-system = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-try-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-balances = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-transaction-payment = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-system-rpc-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-babe = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-authorship = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-session = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-timestamp = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-timestamp = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-session = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-staking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus-babe = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus-slots = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-election-provider-support = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-election-provider-solution-type = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-npos-elections = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-utils-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-service = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-chain-spec = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-chain-spec-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-common = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus-grandpa = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-light = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-sync = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +fork-tree = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-telemetry = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-client-db = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-state-db = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +kitchensink-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-benchmarking-pallet-pov = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-system-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-alliance = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-collective = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-identity = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-asset-conversion = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-assets = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-asset-rate = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-asset-tx-payment = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-authority-discovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-authority-discovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-bags-list = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-bounties = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-treasury = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-utility = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-root-testing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-child-bounties = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-contracts = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-contracts-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-contracts-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-proxy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-conviction-voting = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-scheduler = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-preimage = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-core-fellowship = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-democracy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-election-provider-multi-phase = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-election-provider-support-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-elections-phragmen = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-fast-unstake = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-staking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-staking-reward-curve = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-glutton = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-grandpa = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-offences = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-keyring = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-im-online = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-indices = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-lottery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support-test-pallet = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-membership = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-message-queue = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-mmr = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-mmr-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-multisig = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nft-fractionalization = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nfts = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nfts-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nis = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nomination-pools = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nomination-pools-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nomination-pools-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-offences-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-ranked-collective = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-recovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-referenda = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-remark = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-salary = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-session-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-society = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-staking-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-state-trie-migration = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-remote-externalities = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-rpc-client = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-rpc-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-transaction-pool-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-state-trie-migration-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-statement = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-statement-store = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-sudo = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-tips = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-transaction-storage = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-transaction-storage-proof = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-uniques = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-vesting = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-whitelist = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-block-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-offchain = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-transaction-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-informant = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-keystore = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-bitswap = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-transactions = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-offchain = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-transaction-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-runtime-transaction-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-rpc-spec-v2 = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-storage-monitor = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-sysinfo = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-beefy-mmr = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +binary-merkle-tree = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-beefy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus-beefy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus-aura = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-client = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-runtime-interface-test-wasm = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-metadata-ir = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-benchmarking-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-template-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-aura = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-template = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-transaction-payment-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-basic-authorship = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-proposer-metrics = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-aura = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-slots = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-grandpa = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-gossip = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-statement-store = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-frame-rpc-system = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +try-runtime-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-cli-test-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-build-script-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-bench = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-testing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-executor = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-inspect = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +mmr-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-babe = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-epochs = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-babe-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-grandpa-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-sync-state-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-authority-discovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-network-statement = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-service-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-frame-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +chain-spec-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +subkey = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-beefy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-beefy-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-manual-seal = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sc-consensus-pow = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-consensus-pow = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +mmr-gadget = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-atomic-swap = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-bags-list-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-bags-list-remote-tests = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-election-provider-e2e-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-election-solution-type-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-examples = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-default-config-example = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-dev-mode = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-example-basic = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-example-kitchensink = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-example-offchain-worker = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nicks = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-node-authorization = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nomination-pools-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-nomination-pools-test-staking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-scored-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-staking-reward-fn = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +pallet-root-offences = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +frame-support-test-compile-pass = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-api-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-application-crypto-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-arithmetic-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-crypto-ec-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-npos-elections-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-runtime-interface-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +sp-runtime-interface-test-wasm-deprecated = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-template-release = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-test-utils-test-crate = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +substrate-frame-rpc-support = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +generate-bags = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } +node-runtime-generate-bags = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } From 9eba856a7520dd741ca4a9523373c6ad356926ab Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 7 Jun 2023 10:57:24 +0200 Subject: [PATCH 27/44] Use constants --- .../relay-chain-rpc-interface/src/light_client_worker.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index c1bce47f182..f3bd58d1571 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -43,6 +43,8 @@ use sc_service::SpawnTaskHandle; use crate::{rpc_client::RpcDispatcherMessage, tokio_platform::TokioPlatform}; const LOG_TARGET: &str = "rpc-light-client-worker"; +const MAX_PENDING_REQUESTS: u32 = 128; +const MAX_SUBSCRIPTIONS: u32 = 64; #[derive(thiserror::Error, Debug)] enum LightClientError { @@ -100,8 +102,9 @@ pub async fn build_smoldot_client( .add_chain(smoldot_light::AddChainConfig { specification: chain_spec, json_rpc: smoldot_light::AddChainConfigJsonRpc::Enabled { - max_pending_requests: NonZeroU32::new(128).expect("128 > 0; qed"), - max_subscriptions: 64, + max_pending_requests: NonZeroU32::new(MAX_PENDING_REQUESTS) + .expect("Constant larger than 0; qed"), + max_subscriptions: MAX_SUBSCRIPTIONS, }, potential_relay_chains: core::iter::empty(), database_content: "", From 410be7c956e3d23e77a5cf1cca1b221bd4df0e5e Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 7 Jun 2023 14:06:56 +0200 Subject: [PATCH 28/44] Add readme entry, improve zombienet tests --- README.md | 24 +++++++++++++++++-- zombienet/tests/0007-full_node_warp_sync.toml | 7 ++++++ .../tests/0007-full_node_warp_sync.zndsl | 3 ++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b9ebebfe3a7..eae43134ce3 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ To operate a parachain node, a connection to the corresponding relay chain is ne achieved in one of two ways: 1. Run a full relay chain node within the parachain node (default) 2. Connect to an external relay chain node via WebSocket RPC +2. Run a light client for the relay chain #### In-process Relay Chain Node If an external relay chain node is not specified (default behavior), then a full relay chain node is @@ -51,7 +52,7 @@ This node has all of the typical components of a regular Polkadot node and will with the relay chain to work. ##### Example command -```shell= +```bash polkadot-parachain \ --chain parachain-chainspec.json \ --tmp \ @@ -72,7 +73,7 @@ they will use fewer system resources. relay chain node in-process. Even though they lack the majority of normal Polkadot subsystems, they will still need to connect directly to the relay chain network. ##### Example command -```shell= +```bash polkadot-parachain \ --chain parachain-chainspec.json \ --tmp \ @@ -83,6 +84,25 @@ polkadot-parachain \ --chain relaychain-chainspec.json ``` +#### Relay Chain Light Client +An internal relay chain light client provides a fast and lightweight approach for connecting to the relay chain network. It provides relay chain notifications and facilitates runtime calls. + +To specify which chain the light client should connect to, users need to supply a relay chain chain-spec as part of the relay chain arguments. + +**Note:** At this time, any parachain nodes using this feature will still spawn a significantly cut-down +relay chain node in-process. Even though they lack the majority of normal Polkadot subsystems, they +will still need to connect directly to the relay chain network. + +##### Example command +```bash +polkadot-parachain \ + --chain parachain-chainspec.json \ + --tmp \ + --relay-chain-light-client \ + -- \ + --chain relaychain-chainspec.json +``` + ## Installation and Setup Before building Cumulus SDK based nodes / runtimes prepare your environment by following Substrate [installation instructions](https://docs.substrate.io/main-docs/install/). diff --git a/zombienet/tests/0007-full_node_warp_sync.toml b/zombienet/tests/0007-full_node_warp_sync.toml index 493363fd3cf..b3076d9ef76 100644 --- a/zombienet/tests/0007-full_node_warp_sync.toml +++ b/zombienet/tests/0007-full_node_warp_sync.toml @@ -75,3 +75,10 @@ add_to_genesis = false image = "{{COL_IMAGE}}" command = "test-parachain" args = ["-lsync=debug","--sync warp","--relay-chain-rpc-urls {{'dave'|zombie('wsUri')}}"] + + [[parachains.collators]] + name = "four" + validator = false + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lsync=debug","--sync warp","--relay-chain-light-client"] diff --git a/zombienet/tests/0007-full_node_warp_sync.zndsl b/zombienet/tests/0007-full_node_warp_sync.zndsl index 1bcc35e80c4..9f503b2ad63 100644 --- a/zombienet/tests/0007-full_node_warp_sync.zndsl +++ b/zombienet/tests/0007-full_node_warp_sync.zndsl @@ -5,4 +5,5 @@ Creds: config alice: parachain 2000 is registered within 225 seconds one: reports block height is at least 770 within 225 seconds two: reports block height is at least 770 within 225 seconds -three: reports block height is at least 770 within 225 seconds \ No newline at end of file +three: reports block height is at least 770 within 225 seconds +four: reports block height is at least 770 within 225 seconds From a1d5b3df8a85031d08d6228e4390a12ec11a9114 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 7 Jun 2023 17:43:39 +0200 Subject: [PATCH 29/44] Apply suggestions from code review Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> --- zombienet/tests/0002-pov_recovery.toml | 2 +- zombienet/tests/0003-full_node_catching_up.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zombienet/tests/0002-pov_recovery.toml b/zombienet/tests/0002-pov_recovery.toml index 670e7645b0d..4128086b73c 100644 --- a/zombienet/tests/0002-pov_recovery.toml +++ b/zombienet/tests/0002-pov_recovery.toml @@ -74,7 +74,7 @@ add_to_genesis = false command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] - # run two as a RPC parachain full node + # run two nodes with light client [[parachains.collators]] name = "three" validator = false # full node diff --git a/zombienet/tests/0003-full_node_catching_up.toml b/zombienet/tests/0003-full_node_catching_up.toml index 7270f3d26d9..350a7682bfa 100644 --- a/zombienet/tests/0003-full_node_catching_up.toml +++ b/zombienet/tests/0003-full_node_catching_up.toml @@ -41,7 +41,7 @@ cumulus_based = true command = "test-parachain" args = ["--reserved-only", "--reserved-nodes {{'charlie'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'alice'|zombie('wsUri')}}"] - # run cumulus eve (a parachain full node) and wait for it to sync some blocks + # run cumulus node ferdie (with embedded light client) and wait for it to sync some blocks [[parachains.collators]] name = "ferdie" validator = false From 26fce06f1966d136fb21ce1e8042c4c6548e9b58 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 7 Jun 2023 18:23:22 +0200 Subject: [PATCH 30/44] Make execution mode an enum --- client/cli/src/lib.rs | 30 +++++++---- client/relay-chain-minimal-node/src/lib.rs | 2 +- client/service/src/lib.rs | 30 +++++------ parachain-template/node/src/command.rs | 17 +++--- polkadot-parachain/src/command.rs | 6 +-- test/service/src/lib.rs | 63 ++++++++++------------ 6 files changed, 74 insertions(+), 74 deletions(-) diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs index 8853e7fa24f..523912245d7 100644 --- a/client/cli/src/lib.rs +++ b/client/cli/src/lib.rs @@ -317,21 +317,33 @@ impl RunCmd { /// Create [`CollatorOptions`] representing options only relevant to parachain collator nodes pub fn collator_options(&self) -> CollatorOptions { - CollatorOptions { - relay_chain_rpc_urls: self.relay_chain_rpc_urls.clone(), - relay_chain_light_client: self.relay_chain_light_client, - } + let relay_chain_mode = + match (self.relay_chain_light_client, !self.relay_chain_rpc_urls.is_empty()) { + (true, _) => RelayChainMode::LightClient, + (_, true) => RelayChainMode::ExternalRpc(self.relay_chain_rpc_urls.clone()), + _ => RelayChainMode::Embedded, + }; + + CollatorOptions { relay_chain_mode } } } +/// Possible modes for the relay chain to operate in. +#[derive(Clone, Debug)] +pub enum RelayChainMode { + /// Spawn embedded relay chain node + Embedded, + /// Connect to remote relay chain node via websocket RPC + ExternalRpc(Vec), + /// Spawn embedded relay chain light client + LightClient, +} + /// Options only relevant for collator nodes #[derive(Clone, Debug)] pub struct CollatorOptions { - /// Location of relay chain full node - pub relay_chain_rpc_urls: Vec, - - /// Use embedded light client for the relay chain - pub relay_chain_light_client: bool, + /// How this collator retrieves relay chain information + pub relay_chain_mode: RelayChainMode, } /// A non-redundant version of the `RunCmd` that sets the `validator` field when the diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index 0b396b0f791..3a4c2baf8b2 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -81,7 +81,7 @@ fn build_authority_discovery_service( service } -pub async fn build_minimal_relay_chain_node( +pub async fn build_minimal_relay_chain_node_with_rpc( polkadot_config: Configuration, task_manager: &mut TaskManager, relay_chain_url: Vec, diff --git a/client/service/src/lib.rs b/client/service/src/lib.rs index e136a6cf170..c88cf68f279 100644 --- a/client/service/src/lib.rs +++ b/client/service/src/lib.rs @@ -26,7 +26,7 @@ use cumulus_primitives_core::{CollectCollationInfo, ParaId}; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; use cumulus_relay_chain_minimal_node::{ - build_minimal_relay_chain_node, build_minimal_relay_chain_node_light_client, + build_minimal_relay_chain_node_light_client, build_minimal_relay_chain_node_with_rpc, }; use futures::{ channel::{mpsc, oneshot}, @@ -262,30 +262,30 @@ pub fn prepare_node_config(mut parachain_config: Configuration) -> Configuration /// Will return a minimal relay chain node with RPC /// client or an inprocess node, based on the [`CollatorOptions`] passed in. pub async fn build_relay_chain_interface( - polkadot_config: Configuration, + relay_chain_config: Configuration, parachain_config: &Configuration, telemetry_worker_handle: Option, task_manager: &mut TaskManager, collator_options: CollatorOptions, hwbench: Option, ) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { - if !collator_options.relay_chain_rpc_urls.is_empty() { - build_minimal_relay_chain_node( - polkadot_config, - task_manager, - collator_options.relay_chain_rpc_urls, - ) - .await - } else if collator_options.relay_chain_light_client { - build_minimal_relay_chain_node_light_client(polkadot_config, task_manager).await - } else { - build_inprocess_relay_chain( - polkadot_config, + match collator_options.relay_chain_mode { + cumulus_client_cli::RelayChainMode::Embedded => build_inprocess_relay_chain( + relay_chain_config, parachain_config, telemetry_worker_handle, task_manager, hwbench, - ) + ), + cumulus_client_cli::RelayChainMode::ExternalRpc(rpc_target_urls) => + build_minimal_relay_chain_node_with_rpc( + relay_chain_config, + task_manager, + rpc_target_urls, + ) + .await, + cumulus_client_cli::RelayChainMode::LightClient => + build_minimal_relay_chain_node_light_client(relay_chain_config, task_manager).await, } } diff --git a/parachain-template/node/src/command.rs b/parachain-template/node/src/command.rs index c3e79ebe387..fe3931344c4 100644 --- a/parachain-template/node/src/command.rs +++ b/parachain-template/node/src/command.rs @@ -4,7 +4,7 @@ use codec::Encode; use cumulus_client_cli::generate_genesis_block; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; -use log::{info, warn}; +use log::info; use parachain_template_runtime::Block; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, @@ -266,11 +266,12 @@ pub fn run() -> Result<()> { let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { - let hwbench = (!cli.no_hardware_benchmarks).then_some( - config.database.path().map(|database_path| { + let hwbench = (!cli.no_hardware_benchmarks) + .then_some(config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(database_path); sc_sysinfo::gather_hwbench(Some(database_path)) - })).flatten(); + })) + .flatten(); let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) @@ -284,7 +285,9 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating( + &id, + ); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version) @@ -301,10 +304,6 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - if !collator_options.relay_chain_rpc_urls.is_empty() && !cli.relay_chain_args.is_empty() { - warn!("Detected relay chain node arguments together with --relay-chain-rpc-url. This command starts a minimal Polkadot node that only uses a network-related subset of all relay chain CLI options."); - } - crate::service::start_parachain_node( config, polkadot_config, diff --git a/polkadot-parachain/src/command.rs b/polkadot-parachain/src/command.rs index f59a58aa367..bb1aae15f9c 100644 --- a/polkadot-parachain/src/command.rs +++ b/polkadot-parachain/src/command.rs @@ -28,7 +28,7 @@ use codec::Encode; use cumulus_client_cli::generate_genesis_block; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; -use log::{info, warn}; +use log::info; use parachains_common::{AssetHubPolkadotAuraId, AuraId}; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, @@ -942,10 +942,6 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - if !collator_options.relay_chain_rpc_urls.is_empty() && !cli.relaychain_args.is_empty() { - warn!("Detected relay chain node arguments together with --relay-chain-rpc-url. This command starts a minimal Polkadot node that only uses a network-related subset of all relay chain CLI options."); - } - match config.chain_spec.runtime() { Runtime::AssetHubPolkadot => crate::service::start_generic_aura_node::< asset_hub_polkadot_runtime::RuntimeApi, diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index 61f8bf21487..0c061491054 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -34,7 +34,7 @@ use std::{ use url::Url; use crate::runtime::Weight; -use cumulus_client_cli::CollatorOptions; +use cumulus_client_cli::{CollatorOptions, RelayChainMode}; use cumulus_client_consensus_common::{ ParachainBlockImport as TParachainBlockImport, ParachainCandidate, ParachainConsensus, }; @@ -47,7 +47,7 @@ use cumulus_primitives_core::ParaId; use cumulus_relay_chain_inprocess_interface::RelayChainInProcessInterface; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; use cumulus_relay_chain_minimal_node::{ - build_minimal_relay_chain_node, build_minimal_relay_chain_node_light_client, + build_minimal_relay_chain_node_light_client, build_minimal_relay_chain_node_with_rpc, }; use cumulus_test_runtime::{Hash, Header, NodeBlock as Block, RuntimeApi}; @@ -251,32 +251,30 @@ async fn build_relay_chain_interface( collator_options: CollatorOptions, task_manager: &mut TaskManager, ) -> RelayChainResult> { - if !collator_options.relay_chain_rpc_urls.is_empty() { - return build_minimal_relay_chain_node( + let relay_chain_full_node = match collator_options.relay_chain_mode { + cumulus_client_cli::RelayChainMode::Embedded => polkadot_test_service::new_full( relay_chain_config, - task_manager, - collator_options.relay_chain_rpc_urls, + if let Some(ref key) = collator_key { + polkadot_service::IsCollator::Yes(key.clone()) + } else { + polkadot_service::IsCollator::Yes(CollatorPair::generate().0) + }, + None, ) - .await - .map(|r| r.0) - } - - if collator_options.relay_chain_light_client { - return build_minimal_relay_chain_node_light_client(relay_chain_config, task_manager) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?, + cumulus_client_cli::RelayChainMode::ExternalRpc(rpc_target_urls) => + return build_minimal_relay_chain_node_with_rpc( + relay_chain_config, + task_manager, + rpc_target_urls, + ) .await - .map(|r| r.0) - } - - let relay_chain_full_node = polkadot_test_service::new_full( - relay_chain_config, - if let Some(ref key) = collator_key { - polkadot_service::IsCollator::Yes(key.clone()) - } else { - polkadot_service::IsCollator::Yes(CollatorPair::generate().0) - }, - None, - ) - .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; + .map(|r| r.0), + cumulus_client_cli::RelayChainMode::LightClient => + return build_minimal_relay_chain_node_light_client(relay_chain_config, task_manager) + .await + .map(|r| r.0), + }; task_manager.add_child(relay_chain_full_node.task_manager); tracing::info!("Using inprocess node."); @@ -512,9 +510,8 @@ pub struct TestNodeBuilder { storage_update_func_parachain: Option>, storage_update_func_relay_chain: Option>, consensus: Consensus, - relay_chain_full_node_url: Vec, + relay_chain_mode: RelayChainMode, endowed_accounts: Vec, - relay_chain_light_client: bool, } impl TestNodeBuilder { @@ -536,9 +533,8 @@ impl TestNodeBuilder { storage_update_func_parachain: None, storage_update_func_relay_chain: None, consensus: Consensus::RelayChain, - relay_chain_full_node_url: vec![], endowed_accounts: Default::default(), - relay_chain_light_client: false, + relay_chain_mode: RelayChainMode::Embedded, } } @@ -632,7 +628,7 @@ impl TestNodeBuilder { /// Connect to full node via RPC. pub fn use_external_relay_chain_node_at_url(mut self, network_address: Url) -> Self { - self.relay_chain_full_node_url = vec![network_address]; + self.relay_chain_mode = RelayChainMode::ExternalRpc(vec![network_address]); self } @@ -641,7 +637,7 @@ impl TestNodeBuilder { let mut localhost_url = Url::parse("ws://localhost").expect("Should be able to parse localhost Url"); localhost_url.set_port(Some(port)).expect("Should be able to set port"); - self.relay_chain_full_node_url = vec![localhost_url]; + self.relay_chain_mode = RelayChainMode::ExternalRpc(vec![localhost_url]); self } @@ -673,10 +669,7 @@ impl TestNodeBuilder { false, ); - let collator_options = CollatorOptions { - relay_chain_rpc_urls: self.relay_chain_full_node_url, - relay_chain_light_client: self.relay_chain_light_client, - }; + let collator_options = CollatorOptions { relay_chain_mode: self.relay_chain_mode }; relay_chain_config.network.node_name = format!("{} (relay chain)", relay_chain_config.network.node_name); From b4f372beb13525b8f55be9bb6bafd98ed495d51f Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Thu, 8 Jun 2023 13:32:46 +0200 Subject: [PATCH 31/44] Update smoldot, remove substrate patch --- Cargo.lock | 1247 ++++++------------- Cargo.toml | 262 ---- client/relay-chain-rpc-interface/Cargo.toml | 4 +- 3 files changed, 373 insertions(+), 1140 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b718e35522..9aad7c6715a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -240,12 +240,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "arbitrary" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" - [[package]] name = "arc-swap" version = "1.6.0" @@ -726,7 +720,7 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue 2.1.0", + "concurrent-queue", "event-listener", "futures-core", ] @@ -739,44 +733,42 @@ checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" dependencies = [ "async-lock", "async-task", - "concurrent-queue 2.1.0", + "concurrent-queue", "fastrand", "futures-lite", "slab", ] [[package]] -name = "async-global-executor" -version = "2.3.1" +name = "async-fs" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" dependencies = [ - "async-channel", - "async-executor", - "async-io", "async-lock", + "autocfg", "blocking", "futures-lite", - "once_cell", ] [[package]] name = "async-io" -version = "1.6.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ - "concurrent-queue 1.2.2", + "async-lock", + "autocfg", + "cfg-if", + "concurrent-queue", "futures-lite", - "libc", "log", - "once_cell", "parking", "polling", + "rustix 0.37.19", "slab", "socket2", "waker-fn", - "winapi", ] [[package]] @@ -789,40 +781,44 @@ dependencies = [ ] [[package]] -name = "async-recursion" -version = "1.0.4" +name = "async-net" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.18", + "async-io", + "autocfg", + "blocking", + "futures-lite", ] [[package]] -name = "async-std" -version = "1.12.0" +name = "async-process" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" dependencies = [ - "async-channel", - "async-global-executor", "async-io", "async-lock", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", + "autocfg", + "blocking", + "cfg-if", + "event-listener", "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite 0.2.9", - "pin-utils", - "slab", - "wasm-bindgen-futures", + "rustix 0.37.19", + "signal-hook", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", ] [[package]] @@ -947,7 +943,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "hash-db", "log", @@ -968,7 +964,7 @@ version = "0.65.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cexpr", "clang-sys", "lazy_static", @@ -1004,12 +1000,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitflags" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84" - [[package]] name = "bitvec" version = "1.0.1" @@ -1732,12 +1722,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "cache-padded" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" - [[package]] name = "camino" version = "1.1.2" @@ -1970,7 +1954,7 @@ checksum = "72394f3339a76daf211e57d4bcb374410f3965dcc606dd0e03738c7888766980" dependencies = [ "anstream", "anstyle 1.0.0", - "bitflags 1.3.2", + "bitflags", "clap_lex", "strsim", ] @@ -2158,15 +2142,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" -[[package]] -name = "concurrent-queue" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" -dependencies = [ - "cache-padded", -] - [[package]] name = "concurrent-queue" version = "2.1.0" @@ -2337,24 +2312,23 @@ checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" [[package]] name = "cranelift-bforest" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c064a534a914eb6709d198525321a386dad50627aecfaf64053f369993a3e5a" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619ed4d24acef0bd58b16a1be39077c0b36c65782e6c933892439af5e799110e" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" dependencies = [ "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", - "cranelift-control", "cranelift-entity", "cranelift-isle", "gimli", @@ -2367,42 +2341,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c777ce22678ae1869f990b2f31e0cd7ca109049213bfc0baf3e2205a18b21ebb" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.96.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb65884d17a1fa55990dd851c43c140afb4c06c3312cf42cfa1222c3b23f9561" - -[[package]] -name = "cranelift-control" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a0cea8abc90934d0a7ee189a29fd35fecd5c40f59ae7e6aab1805e8ab1a535e" -dependencies = [ - "arbitrary", -] +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" [[package]] name = "cranelift-entity" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e50bebc05f2401a1320169314b62f91ad811ef20163cac00151d78e0684d4c" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82ccfe704d53f669791399d417928410785132d809ec46f5e2ce069e9d17c8" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" dependencies = [ "cranelift-codegen", "log", @@ -2412,15 +2377,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2515d8e7836f9198b160b2c80aaa1f586d7749d57d6065af86223fb65b7e2c3" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" [[package]] name = "cranelift-native" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcb47ffdcdac7e9fed6e4a618939773a4dc4a412fa7da9e701ae667431a10af3" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" dependencies = [ "cranelift-codegen", "libc", @@ -2429,9 +2394,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.96.3" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852390f92c3eaa457e42be44d174ff5abbbcd10062d5963bda8ffb2505e73a71" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -3559,15 +3524,6 @@ dependencies = [ "syn 1.0.109", ] -[[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.6.0" @@ -4173,12 +4129,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" -[[package]] -name = "fallible-streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" - [[package]] name = "fastrand" version = "1.7.0" @@ -4335,7 +4285,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", ] @@ -4358,7 +4308,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-support-procedural", @@ -4383,7 +4333,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -4430,7 +4380,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4441,7 +4391,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4458,7 +4408,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -4487,7 +4437,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-recursion", "futures", @@ -4508,9 +4458,9 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ - "bitflags 1.3.2", + "bitflags", "environmental", "frame-metadata", "frame-support-procedural", @@ -4543,7 +4493,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "Inflector", "cfg-expr", @@ -4560,7 +4510,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -4572,7 +4522,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro2", "quote", @@ -4582,7 +4532,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "cfg-if", "frame-support", @@ -4601,7 +4551,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4616,7 +4566,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "sp-api", @@ -4625,7 +4575,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "parity-scale-codec", @@ -4804,19 +4754,6 @@ 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.3.1", - "debugid", - "fxhash", - "serde", - "serde_json", -] - [[package]] name = "generic-array" version = "0.12.4" @@ -4919,18 +4856,6 @@ dependencies = [ "regex", ] -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "glutton-runtime" version = "1.0.0" @@ -5058,16 +4983,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ "ahash 0.8.2", - "serde", ] [[package]] -name = "hashlink" -version = "0.8.2" +name = "hashbrown" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0761a1b9491c4f2e3d66aa0f62d0fba0af9a0e2852e4d48ea506632a4b56e6aa" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" dependencies = [ - "hashbrown 0.13.2", + "serde", ] [[package]] @@ -5283,12 +5207,6 @@ dependencies = [ "webpki-roots", ] -[[package]] -name = "id-arena" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" - [[package]] name = "ident_case" version = "1.0.1" @@ -5873,15 +5791,6 @@ dependencies = [ "sp-weights", ] -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - [[package]] name = "kvdb" version = "0.13.0" @@ -6443,17 +6352,6 @@ dependencies = [ "libsecp256k1-core", ] -[[package]] -name = "libsqlite3-sys" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - [[package]] name = "libz-sys" version = "1.1.3" @@ -6530,9 +6428,6 @@ name = "log" version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" -dependencies = [ - "value-bag", -] [[package]] name = "lru" @@ -6826,7 +6721,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "log", @@ -6845,7 +6740,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "anyhow", "jsonrpsee", @@ -7040,7 +6935,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags 1.3.2", + "bitflags", "byteorder", "libc", "netlink-packet-core", @@ -7093,7 +6988,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cfg-if", "libc", "memoffset 0.6.5", @@ -7105,7 +7000,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cfg-if", "libc", "memoffset 0.7.1", @@ -7360,7 +7255,7 @@ dependencies = [ [[package]] name = "pallet-alliance" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "frame-benchmarking", @@ -7381,7 +7276,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7399,7 +7294,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7414,7 +7309,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -7430,7 +7325,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -7446,7 +7341,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -7460,7 +7355,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7484,7 +7379,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7504,7 +7399,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7519,7 +7414,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -7538,7 +7433,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "binary-merkle-tree", @@ -7562,7 +7457,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7668,7 +7563,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7712,7 +7607,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7729,9 +7624,9 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ - "bitflags 1.3.2", + "bitflags", "environmental", "frame-benchmarking", "frame-support", @@ -7759,9 +7654,9 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "24.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ - "bitflags 1.3.2", + "bitflags", "parity-scale-codec", "scale-info", "sp-runtime", @@ -7772,7 +7667,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro2", "quote", @@ -7782,7 +7677,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7799,7 +7694,7 @@ dependencies = [ [[package]] name = "pallet-core-fellowship" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7817,7 +7712,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7835,7 +7730,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7858,7 +7753,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7871,7 +7766,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7889,7 +7784,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "docify", "frame-benchmarking", @@ -7908,7 +7803,7 @@ dependencies = [ [[package]] name = "pallet-glutton" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "blake2", "frame-benchmarking", @@ -7926,7 +7821,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7949,7 +7844,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "enumflags2", "frame-benchmarking", @@ -7965,7 +7860,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -7985,7 +7880,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8002,7 +7897,7 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -8016,7 +7911,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8033,7 +7928,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8052,7 +7947,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8069,7 +7964,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8085,7 +7980,7 @@ dependencies = [ [[package]] name = "pallet-nft-fractionalization" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8102,7 +7997,7 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8120,7 +8015,7 @@ dependencies = [ [[package]] name = "pallet-nfts-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "pallet-nfts", @@ -8131,7 +8026,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8147,7 +8042,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -8164,7 +8059,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8184,7 +8079,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -8195,7 +8090,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -8212,7 +8107,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8251,7 +8146,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8268,7 +8163,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8283,7 +8178,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8301,7 +8196,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8316,7 +8211,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "assert_matches", "frame-benchmarking", @@ -8335,7 +8230,7 @@ dependencies = [ [[package]] name = "pallet-salary" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8353,7 +8248,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8370,7 +8265,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -8391,7 +8286,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8407,7 +8302,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -8421,7 +8316,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8444,7 +8339,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8455,7 +8350,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "log", "sp-arithmetic", @@ -8464,7 +8359,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8473,7 +8368,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8490,7 +8385,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8505,7 +8400,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8523,7 +8418,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8542,7 +8437,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-support", "frame-system", @@ -8558,7 +8453,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -8574,7 +8469,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8586,7 +8481,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8603,7 +8498,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8618,7 +8513,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8634,7 +8529,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8649,7 +8544,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-benchmarking", "frame-support", @@ -10437,7 +10332,7 @@ name = "polkadot-runtime-parachains" version = "0.9.41" source = "git+https://github.com/paritytech/polkadot?branch=master#bfb9e87a6d9964a8769c01b2019c30db48f5349d" dependencies = [ - "bitflags 1.3.2", + "bitflags", "bitvec", "derive_more", "frame-benchmarking", @@ -11060,17 +10955,6 @@ dependencies = [ "cc", ] -[[package]] -name = "pulldown-cmark" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" -dependencies = [ - "bitflags 1.3.2", - "memchr", - "unicase", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -11288,7 +11172,7 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] @@ -11297,7 +11181,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags 1.3.2", + "bitflags", ] [[package]] @@ -11345,13 +11229,12 @@ dependencies = [ [[package]] name = "regalloc2" -version = "0.8.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a52e724646c6c0800fc456ec43b4165d2f91fba88ceaca06d9e0b400023478" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" dependencies = [ - "hashbrown 0.13.2", + "fxhash", "log", - "rustc-hash", "slice-group-by", "smallvec", ] @@ -11647,20 +11530,6 @@ dependencies = [ "webrtc-util", ] -[[package]] -name = "rusqlite" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" -dependencies = [ - "bitflags 2.3.1", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink", - "libsqlite3-sys", - "smallvec", -] - [[package]] name = "rustc-demangle" version = "0.1.21" @@ -11712,7 +11581,7 @@ version = "0.35.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" dependencies = [ - "bitflags 1.3.2", + "bitflags", "errno 0.2.8", "io-lifetimes 0.7.5", "libc", @@ -11726,7 +11595,7 @@ version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" dependencies = [ - "bitflags 1.3.2", + "bitflags", "errno 0.2.8", "io-lifetimes 1.0.11", "libc", @@ -11740,7 +11609,7 @@ version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ - "bitflags 1.3.2", + "bitflags", "errno 0.3.1", "io-lifetimes 1.0.11", "libc", @@ -11858,7 +11727,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "log", "sp-core", @@ -11869,7 +11738,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -11898,7 +11767,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "futures-timer", @@ -11921,7 +11790,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -11936,7 +11805,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -11955,7 +11824,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -11966,7 +11835,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "chrono", @@ -12006,7 +11875,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "fnv", "futures", @@ -12033,7 +11902,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "hash-db", "kvdb", @@ -12059,7 +11928,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -12084,7 +11953,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -12113,7 +11982,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "fork-tree", @@ -12149,7 +12018,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "jsonrpsee", @@ -12171,7 +12040,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -12207,7 +12076,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "jsonrpsee", @@ -12226,7 +12095,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "fork-tree", "parity-scale-codec", @@ -12239,7 +12108,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ahash 0.8.2", "array-bytes 4.2.0", @@ -12279,7 +12148,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "finality-grandpa", "futures", @@ -12299,7 +12168,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -12322,7 +12191,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "lru 0.10.0", "parity-scale-codec", @@ -12344,7 +12213,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -12356,7 +12225,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "anyhow", "cfg-if", @@ -12374,7 +12243,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ansi_term", "futures", @@ -12390,7 +12259,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "parking_lot 0.12.1", @@ -12404,7 +12273,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -12450,7 +12319,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-channel", "cid", @@ -12471,11 +12340,11 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "async-trait", - "bitflags 1.3.2", + "bitflags", "bytes", "futures", "futures-timer", @@ -12498,7 +12367,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ahash 0.8.2", "futures", @@ -12516,7 +12385,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -12538,7 +12407,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -12572,7 +12441,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "futures", @@ -12590,7 +12459,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -12620,7 +12489,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12629,7 +12498,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "jsonrpsee", @@ -12660,7 +12529,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12679,7 +12548,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "http", "jsonrpsee", @@ -12694,7 +12563,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "futures", @@ -12720,7 +12589,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "directories", @@ -12786,7 +12655,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "log", "parity-scale-codec", @@ -12797,7 +12666,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "clap", "fs4", @@ -12813,7 +12682,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12832,7 +12701,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "libc", @@ -12851,7 +12720,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "chrono", "futures", @@ -12870,7 +12739,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ansi_term", "atty", @@ -12901,7 +12770,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12912,7 +12781,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -12938,7 +12807,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -12954,7 +12823,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-channel", "futures", @@ -13152,7 +13021,7 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -13388,6 +13257,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +[[package]] +name = "signal-hook" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -13478,14 +13357,30 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-net", + "async-process", + "blocking", + "futures-lite", +] + [[package]] name = "smoldot" version = "0.7.0" -source = "git+https://github.com/smol-dot/smoldot?rev=b8a4d432#b8a4d432b4ac15ad829a05561dd6a10004e8b7aa" +source = "git+https://github.com/smol-dot/smoldot?rev=cf211107#cf21110789140f42f9f21880c1517ef086cc3e2e" dependencies = [ "arrayvec 0.7.2", "async-lock", - "async-std", "atomic", "base64 0.21.2", "bip39", @@ -13499,7 +13394,7 @@ dependencies = [ "fnv", "futures-channel", "futures-util", - "hashbrown 0.13.2", + "hashbrown 0.14.0", "hex", "hmac 0.12.1", "itertools", @@ -13510,12 +13405,10 @@ dependencies = [ "num-bigint", "num-rational", "num-traits", - "parking_lot 0.12.1", "pbkdf2 0.12.1", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", - "rusqlite", "ruzstd", "schnorrkel 0.10.2", "serde", @@ -13524,18 +13417,18 @@ dependencies = [ "siphasher", "slab", "smallvec", + "smol", "snow", "soketto", "tiny-keccak", "twox-hash", "wasmi 0.30.0", - "wasmtime", ] [[package]] name = "smoldot-light" version = "0.5.0" -source = "git+https://github.com/smol-dot/smoldot?rev=b8a4d432#b8a4d432b4ac15ad829a05561dd6a10004e8b7aa" +source = "git+https://github.com/smol-dot/smoldot?rev=cf211107#cf21110789140f42f9f21880c1517ef086cc3e2e" dependencies = [ "async-lock", "blake2-rfc", @@ -13545,16 +13438,18 @@ dependencies = [ "fnv", "futures-channel", "futures-util", - "hashbrown 0.13.2", + "hashbrown 0.14.0", "hex", "itertools", "log", "lru 0.10.0", + "parking_lot 0.12.1", "rand 0.8.5", "serde", "serde_json", "siphasher", "slab", + "smol", "smoldot", ] @@ -13611,7 +13506,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "hash-db", "log", @@ -13631,7 +13526,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "Inflector", "blake2", @@ -13645,7 +13540,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -13658,7 +13553,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "integer-sqrt", "num-traits", @@ -13672,7 +13567,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -13685,7 +13580,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "sp-api", @@ -13697,7 +13592,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "log", @@ -13715,7 +13610,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures", @@ -13730,7 +13625,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "parity-scale-codec", @@ -13748,7 +13643,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "parity-scale-codec", @@ -13769,7 +13664,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "lazy_static", "parity-scale-codec", @@ -13788,7 +13683,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "finality-grandpa", "log", @@ -13806,7 +13701,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -13818,10 +13713,10 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", - "bitflags 1.3.2", + "bitflags", "blake2", "bounded-collections", "bs58 0.4.0", @@ -13862,7 +13757,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "blake2b_simd", "byteorder", @@ -13876,7 +13771,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro2", "quote", @@ -13887,7 +13782,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -13896,7 +13791,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro2", "quote", @@ -13906,7 +13801,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "environmental", "parity-scale-codec", @@ -13917,7 +13812,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -13932,7 +13827,7 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "bytes", "ed25519", @@ -13958,7 +13853,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "lazy_static", "sp-core", @@ -13969,7 +13864,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "parity-scale-codec", @@ -13983,7 +13878,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -13992,7 +13887,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14003,7 +13898,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14021,7 +13916,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -14035,7 +13930,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "sp-api", "sp-core", @@ -14045,7 +13940,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "backtrace", "lazy_static", @@ -14055,7 +13950,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "rustc-hash", "serde", @@ -14065,7 +13960,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "either", "hash256-std-hasher", @@ -14087,7 +13982,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -14105,7 +14000,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "Inflector", "proc-macro-crate", @@ -14117,7 +14012,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -14131,7 +14026,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -14144,7 +14039,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "hash-db", "log", @@ -14164,7 +14059,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "log", "parity-scale-codec", @@ -14182,12 +14077,12 @@ dependencies = [ [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14200,7 +14095,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "futures-timer", @@ -14215,7 +14110,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "sp-std", @@ -14227,7 +14122,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "sp-api", "sp-runtime", @@ -14236,7 +14131,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "log", @@ -14252,7 +14147,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ahash 0.8.2", "hash-db", @@ -14275,7 +14170,7 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14292,7 +14187,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -14303,7 +14198,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -14316,7 +14211,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "parity-scale-codec", "scale-info", @@ -14416,7 +14311,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -14514,7 +14409,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "platforms", ] @@ -14522,7 +14417,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -14541,7 +14436,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "hyper", "log", @@ -14553,7 +14448,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "jsonrpsee", @@ -14566,7 +14461,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "jsonrpsee", "log", @@ -14585,7 +14480,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -14611,7 +14506,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "futures", "substrate-test-utils-derive", @@ -14621,7 +14516,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -14632,7 +14527,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "ansi_term", "build-helper", @@ -14708,7 +14603,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "system-configuration-sys", ] @@ -15107,7 +15002,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" dependencies = [ - "bitflags 1.3.2", + "bitflags", "bytes", "futures-core", "futures-util", @@ -15319,7 +15214,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" +source = "git+https://github.com/paritytech/substrate?branch=master#85b0807f62f210063feaa7c24b37174af09870cb" dependencies = [ "async-trait", "clap", @@ -15414,15 +15309,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.13" @@ -15516,12 +15402,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "value-bag" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4d330786735ea358f3bc09eea4caa098569c1c93f342d9aca0514915022fe7e" - [[package]] name = "vcpkg" version = "0.2.15" @@ -15788,9 +15668,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.103.0" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c437373cac5ea84f1113d648d51f71751ffbe3d90c00ae67618cf20d0b5ee7b" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ "indexmap", "url", @@ -15807,16 +15687,13 @@ dependencies = [ [[package]] name = "wasmtime" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0f72886c3264eb639f50188d1eb98b975564130292fea8deb4facf91ca7258" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" dependencies = [ "anyhow", - "async-trait", "bincode", - "bumpalo", "cfg-if", - "fxprof-processed-profile", "indexmap", "libc", "log", @@ -15826,33 +15703,30 @@ dependencies = [ "psm", "rayon", "serde", - "serde_json", "target-lexicon", "wasmparser", "wasmtime-cache", - "wasmtime-component-macro", "wasmtime-cranelift", "wasmtime-environ", - "wasmtime-fiber", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-asm-macros" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18391ed41ca957eecdbe64c51879b75419cbc52e2d8663fe82945b28b4f19da" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfd5ef82889a6a35b3790025b3fd33e6ee4902a5408c09f716c771a38c47cd10" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", "base64 0.21.2", @@ -15860,44 +15734,22 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.37.19", + "rustix 0.36.7", "serde", "sha2 0.10.6", "toml 0.5.10", - "windows-sys 0.48.0", + "windows-sys 0.45.0", "zstd 0.11.2+zstd.1.5.2", ] -[[package]] -name = "wasmtime-component-macro" -version = "9.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b31baf908d484e93b18fd31f47af5072aa812d3af5ee4d8323295b48240a9ada" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 1.0.109", - "wasmtime-component-util", - "wasmtime-wit-bindgen", - "wit-parser", -] - -[[package]] -name = "wasmtime-component-util" -version = "9.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daff76cac73c9a1bd0bc201d5304e20dc0724b2c34c029b0c91e10e44c1f47a1" - [[package]] name = "wasmtime-cranelift" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2495036d05eb1e79ecf22e092eeacd279dcf24b4fcab77fb4cf8ef9bd42c3ea" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" dependencies = [ "anyhow", "cranelift-codegen", - "cranelift-control", "cranelift-entity", "cranelift-frontend", "cranelift-native", @@ -15914,13 +15766,12 @@ dependencies = [ [[package]] name = "wasmtime-cranelift-shared" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef677f7b0d3f3b73275675486d791f1e85e7c24afe8dd367c6b9950028906330" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" dependencies = [ "anyhow", "cranelift-codegen", - "cranelift-control", "cranelift-native", "gimli", "object", @@ -15930,9 +15781,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d03356374ffafa881c5f972529d2bb11ce48fe2736285e2b0ad72c6d554257b" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" dependencies = [ "anyhow", "cranelift-entity", @@ -15947,24 +15798,11 @@ dependencies = [ "wasmtime-types", ] -[[package]] -name = "wasmtime-fiber" -version = "9.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ecb992732d5fc99c14e3752f6b9110ec5ace88da15d843f2b80f2b789b182ea" -dependencies = [ - "cc", - "cfg-if", - "rustix 0.37.19", - "wasmtime-asm-macros", - "windows-sys 0.48.0", -] - [[package]] name = "wasmtime-jit" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5374f0d2ee0069391dd9348f148802846b2b3e0af650385f9c56b3012d3c5d1" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ "addr2line", "anyhow", @@ -15981,36 +15819,36 @@ dependencies = [ "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-jit-debug" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "102653b177225bfdd2da41cc385965d4bf6bc10cf14ec7b306bc9b015fb01c22" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ "object", "once_cell", - "rustix 0.37.19", + "rustix 0.36.7", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374ff63b3eb41db57c56682a9ef7737d2c9efa801f5dbf9da93941c9dd436a06" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" dependencies = [ "cfg-if", "libc", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-runtime" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1b832f19099066ebd26e683121d331f12cf98f158eac0f889972854413b46f" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" dependencies = [ "anyhow", "cc", @@ -16023,19 +15861,18 @@ dependencies = [ "memoffset 0.8.0", "paste", "rand 0.8.5", - "rustix 0.37.19", + "rustix 0.36.7", "wasmtime-asm-macros", "wasmtime-environ", - "wasmtime-fiber", "wasmtime-jit-debug", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-types" -version = "9.0.3" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c574221440e05bbb04efa09786d049401be2eb10081ecf43eb72fbd637bd12f" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ "cranelift-entity", "serde", @@ -16043,17 +15880,6 @@ dependencies = [ "wasmparser", ] -[[package]] -name = "wasmtime-wit-bindgen" -version = "9.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afee5e7c290e9b32280160226dadbb5e1a4d6ba7c9b79f440b70cc790aabc1e" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - [[package]] name = "web-sys" version = "0.3.55" @@ -16291,7 +16117,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags 1.3.2", + "bitflags", "bytes", "cc", "ipnet", @@ -16533,13 +16359,37 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -16749,21 +16599,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wit-parser" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca2581061573ef6d1754983d7a9b3ed5871ef859d52708ea9a0f5af32919172" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "pulldown-cmark", - "unicode-xid", - "url", -] - [[package]] name = "wyz" version = "0.5.0" @@ -17026,343 +16861,3 @@ dependencies = [ "libc", "pkg-config", ] - -[[patch.unused]] -name = "chain-spec-builder" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "frame-benchmarking-pallet-pov" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "frame-election-solution-type-fuzzer" -version = "2.0.0-alpha.5" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "frame-support-test" -version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "frame-support-test-compile-pass" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "frame-support-test-pallet" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "generate-bags" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "kitchensink-runtime" -version = "3.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-bench" -version = "0.9.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-cli" -version = "3.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-executor" -version = "3.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-inspect" -version = "0.9.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-primitives" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-rpc" -version = "3.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-runtime-generate-bags" -version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-template" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-template-release" -version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-template-runtime" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "node-testing" -version = "3.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-asset-conversion" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-asset-rate" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-atomic-swap" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-bags-list-fuzzer" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-bags-list-remote-tests" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-default-config-example" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-dev-mode" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-election-provider-e2e-test" -version = "1.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-example-basic" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-example-kitchensink" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-example-offchain-worker" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-examples" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-lottery" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-nicks" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-node-authorization" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-nomination-pools-fuzzer" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-nomination-pools-test-staking" -version = "1.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-remark" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-root-offences" -version = "1.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-root-testing" -version = "1.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-scored-pool" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-statement" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-template" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "pallet-transaction-storage" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-consensus-manual-seal" -version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-consensus-pow" -version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-network-statement" -version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-network-test" -version = "0.8.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-runtime-test" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-service-test" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sc-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-api-test" -version = "2.0.1" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-application-crypto-test" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-arithmetic-fuzzer" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-consensus-pow" -version = "0.10.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-crypto-ec-utils" -version = "0.4.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-npos-elections-fuzzer" -version = "2.0.0-alpha.5" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-runtime-interface-test" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-runtime-interface-test-wasm" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-runtime-interface-test-wasm-deprecated" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "sp-test-primitives" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "subkey" -version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-cli-test-utils" -version = "0.1.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-frame-cli" -version = "4.0.0-dev" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-frame-rpc-support" -version = "3.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-test-runtime" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-test-runtime-client" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-test-runtime-transaction-pool" -version = "2.0.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" - -[[patch.unused]] -name = "substrate-test-utils-test-crate" -version = "0.1.0" -source = "git+https://github.com/skunert/substrate.git?branch=skunert/wasmtime-9#49c782ceb474b2631c62461c99508a1943bb4005" diff --git a/Cargo.toml b/Cargo.toml index 9e72000a4d5..56c5529b683 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,265 +74,3 @@ inherits = "release" lto = true codegen-units = 1 -[patch."https://github.com/paritytech/substrate"] -node-template = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support-procedural = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support-procedural-tools = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support-procedural-tools-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-api-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-core = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-core-hashing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-std = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-debug-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-externalities = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-storage = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-runtime-interface = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-runtime-interface-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-tracing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-wasm-interface = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-io = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-keystore = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-state-machine = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-panic-handler = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-trie = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-application-crypto = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-arithmetic = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-weights = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-runtime-client = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-block-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-client-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-prometheus-endpoint = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-executor = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-executor-common = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-allocator = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-maybe-compressed-blob = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-executor-wasmtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-runtime-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-wasm-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-version = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-core-hashing-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-version-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-tracing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-rpc-server = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-tracing-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-blockchain = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-inherents = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-test-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-database = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-executive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-system = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-try-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-balances = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-transaction-payment = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-system-rpc-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-babe = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-authorship = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-session = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-timestamp = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-timestamp = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-session = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-staking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus-babe = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus-slots = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-election-provider-support = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-election-provider-solution-type = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-npos-elections = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-utils-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-service = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-chain-spec = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-chain-spec-derive = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-common = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus-grandpa = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-light = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-sync = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -fork-tree = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-telemetry = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-client-db = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-state-db = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -kitchensink-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-benchmarking-pallet-pov = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-system-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-alliance = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-collective = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-identity = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-asset-conversion = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-assets = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-asset-rate = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-asset-tx-payment = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-authority-discovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-authority-discovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-bags-list = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-bounties = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-treasury = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-utility = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-root-testing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-child-bounties = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-contracts = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-contracts-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-contracts-proc-macro = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-proxy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-conviction-voting = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-scheduler = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-preimage = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-core-fellowship = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-democracy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-election-provider-multi-phase = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-election-provider-support-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-elections-phragmen = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-fast-unstake = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-staking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-staking-reward-curve = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-glutton = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-grandpa = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-offences = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-keyring = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-im-online = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-indices = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-lottery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support-test-pallet = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-membership = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-message-queue = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-mmr = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-mmr-primitives = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-multisig = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nft-fractionalization = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nfts = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nfts-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nis = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nomination-pools = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nomination-pools-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nomination-pools-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-offences-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-ranked-collective = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-recovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-referenda = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-remark = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-salary = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-session-benchmarking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-society = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-staking-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-state-trie-migration = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-remote-externalities = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-rpc-client = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-rpc-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-transaction-pool-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-state-trie-migration-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-statement = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-statement-store = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-sudo = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-tips = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-transaction-storage = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-transaction-storage-proof = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-uniques = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-vesting = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-whitelist = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-block-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-offchain = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-transaction-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-informant = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-keystore = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-bitswap = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-transactions = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-offchain = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-transaction-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-runtime-transaction-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-rpc-spec-v2 = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-storage-monitor = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-sysinfo = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-beefy-mmr = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -binary-merkle-tree = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-beefy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus-beefy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus-aura = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-client = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-runtime-interface-test-wasm = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-metadata-ir = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-benchmarking-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-template-runtime = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-aura = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-template = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-transaction-payment-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-basic-authorship = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-proposer-metrics = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-aura = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-slots = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-grandpa = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-gossip = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-statement-store = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-frame-rpc-system = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -try-runtime-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-cli-test-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-build-script-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-bench = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-testing = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-executor = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-inspect = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -mmr-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-babe = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-epochs = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-babe-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-grandpa-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-sync-state-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-authority-discovery = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-network-statement = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-service-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-frame-cli = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -chain-spec-builder = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -subkey = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-beefy = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-beefy-rpc = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-manual-seal = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sc-consensus-pow = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-consensus-pow = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -mmr-gadget = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-atomic-swap = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-bags-list-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-bags-list-remote-tests = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-election-provider-e2e-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-election-solution-type-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-examples = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-default-config-example = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-dev-mode = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-example-basic = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-example-kitchensink = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-example-offchain-worker = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nicks = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-node-authorization = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nomination-pools-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-nomination-pools-test-staking = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-scored-pool = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-staking-reward-fn = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -pallet-root-offences = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -frame-support-test-compile-pass = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-api-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-application-crypto-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-arithmetic-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-crypto-ec-utils = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-npos-elections-fuzzer = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-runtime-interface-test = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -sp-runtime-interface-test-wasm-deprecated = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-template-release = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-test-utils-test-crate = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -substrate-frame-rpc-support = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -generate-bags = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } -node-runtime-generate-bags = { git = "https://github.com/skunert/substrate.git" , branch = "skunert/wasmtime-9" } diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index a6e91cbf66c..a205aaf6676 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -34,8 +34,8 @@ url = "2.4.0" serde_json = "1.0.96" serde = "1.0.163" lru = "0.9.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "b8a4d432" } -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "b8a4d432", default_features = false } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "cf211107" , default_features = false, features = ["std"]} +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "cf211107", default_features = false, features = ["std"] } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" From 0c79ecef4917e25404c48dfd51b5e898c4d57735 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 19 Jun 2023 10:53:20 +0200 Subject: [PATCH 32/44] Update client/relay-chain-rpc-interface/src/rpc_client.rs Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> --- client/relay-chain-rpc-interface/src/rpc_client.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index 992d5e4f110..d52ebfe002f 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -95,7 +95,7 @@ pub async fn create_client_and_start_light_client_worker( task_manager .spawn_essential_handle() - .spawn("relay-chain-rpc-worker", None, worker.run()); + .spawn("relay-light-client-worker", None, worker.run()); let rpc_frontend = RpcFrontend::new(sender); From 4bba54eff92c0baab33867206191d7aa7d090cfa Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 19 Jun 2023 10:56:01 +0200 Subject: [PATCH 33/44] Reduce duplicate code --- client/relay-chain-minimal-node/src/lib.rs | 39 +++++++++---------- .../src/rpc_client.rs | 2 +- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index 3a4c2baf8b2..3a5052369e3 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -17,7 +17,7 @@ use collator_overseer::{CollatorOverseerGenArgs, NewMinimalNode}; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_rpc_interface::{RelayChainRpcInterface, Url}; +use cumulus_relay_chain_rpc_interface::{RelayChainRpcClient, RelayChainRpcInterface, Url}; use network::build_collator_network; use polkadot_network_bridge::{peer_sets_info, IsAuthority}; use polkadot_node_network_protocol::{ @@ -81,16 +81,11 @@ fn build_authority_discovery_service( service } -pub async fn build_minimal_relay_chain_node_with_rpc( +async fn build_interface( polkadot_config: Configuration, task_manager: &mut TaskManager, - relay_chain_url: Vec, + client: RelayChainRpcClient, ) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { - let client = cumulus_relay_chain_rpc_interface::create_client_and_start_worker( - relay_chain_url, - task_manager, - ) - .await?; let collator_pair = CollatorPair::generate().0; let collator_node = new_minimal_relay_chain( polkadot_config, @@ -105,6 +100,20 @@ pub async fn build_minimal_relay_chain_node_with_rpc( )) } +pub async fn build_minimal_relay_chain_node_with_rpc( + polkadot_config: Configuration, + task_manager: &mut TaskManager, + relay_chain_url: Vec, +) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { + let client = cumulus_relay_chain_rpc_interface::create_client_and_start_worker( + relay_chain_url, + task_manager, + ) + .await?; + + build_interface(polkadot_config, task_manager, client).await +} + pub async fn build_minimal_relay_chain_node_light_client( polkadot_config: Configuration, task_manager: &mut TaskManager, @@ -126,18 +135,8 @@ pub async fn build_minimal_relay_chain_node_light_client( task_manager, ) .await?; - let collator_pair = CollatorPair::generate().0; - let collator_node = new_minimal_relay_chain( - polkadot_config, - collator_pair.clone(), - Arc::new(BlockChainRpcClient::new(client.clone())), - ) - .await?; - task_manager.add_child(collator_node.task_manager); - Ok(( - Arc::new(RelayChainRpcInterface::new(client, collator_node.overseer_handle)), - Some(collator_pair), - )) + + build_interface(polkadot_config, task_manager, client).await } /// Builds a minimal relay chain node. Chain data is fetched /// via [`BlockChainRpcClient`] and fed into the overseer and its subsystems. diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index d52ebfe002f..614c85e0768 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -104,7 +104,7 @@ pub async fn create_client_and_start_light_client_worker( Ok(client) } -/// Messages for communication between [`ReconnectingWsClient`] and [`ReconnectingWebsocketWorker`]. +/// Messages for communication between [`RpcFrontend`] and the RPC workers. #[derive(Debug)] pub enum RpcDispatcherMessage { RegisterBestHeadListener(Sender), From b98a70f5bd5de2f9fb3bbb7038fb940c6648a80c Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 19 Jun 2023 11:27:00 +0200 Subject: [PATCH 34/44] Update smoldot --- Cargo.lock | 30 +++++++++---------- client/relay-chain-rpc-interface/Cargo.toml | 4 +-- .../src/tokio_platform.rs | 14 +++++---- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 332b9c401b2..7b7e6c8bdcc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -281,9 +281,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "asn1-rs" @@ -1038,7 +1038,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "constant_time_eq 0.2.4", ] @@ -1049,7 +1049,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "constant_time_eq 0.1.5", ] @@ -1060,7 +1060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if", "constant_time_eq 0.1.5", @@ -5562,7 +5562,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" dependencies = [ "anyhow", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "async-lock", "async-trait", "beef", @@ -6014,7 +6014,7 @@ version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "asynchronous-codec", "bytes", "either", @@ -7072,7 +7072,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b862ff8df690cf089058c98b183676a7ed0f974cc08b426800093227cbff3b" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "itoa 1.0.4", ] @@ -8806,7 +8806,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "bytes", @@ -12933,7 +12933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "curve25519-dalek-ng", "merlin 3.0.0", "rand_core 0.6.4", @@ -13402,10 +13402,10 @@ dependencies = [ [[package]] name = "smoldot" -version = "0.7.0" -source = "git+https://github.com/smol-dot/smoldot?rev=cf211107#cf21110789140f42f9f21880c1517ef086cc3e2e" +version = "0.8.0" +source = "git+https://github.com/smol-dot/smoldot?rev=10ca49209f475076a4c6190631699618e7380935#10ca49209f475076a4c6190631699618e7380935" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "async-lock", "atomic", "base64 0.21.2", @@ -13453,8 +13453,8 @@ dependencies = [ [[package]] name = "smoldot-light" -version = "0.5.0" -source = "git+https://github.com/smol-dot/smoldot?rev=cf211107#cf21110789140f42f9f21880c1517ef086cc3e2e" +version = "0.6.0" +source = "git+https://github.com/smol-dot/smoldot?rev=10ca49209f475076a4c6190631699618e7380935#10ca49209f475076a4c6190631699618e7380935" dependencies = [ "async-lock", "blake2-rfc", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 6e15eb48edf..f09f7a29d3f 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -34,8 +34,8 @@ url = "2.4.0" serde_json = "1.0.97" serde = "1.0.164" lru = "0.9.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "cf211107" , default_features = false, features = ["std"]} -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "cf211107", default_features = false, features = ["std"] } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "10ca49209f475076a4c6190631699618e7380935" , default_features = false, features = ["std"]} +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "10ca49209f475076a4c6190631699618e7380935", default_features = false, features = ["std"] } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index e03c8dad5cb..b69282a2974 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -50,11 +50,11 @@ impl PlatformRef for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; type Yield = future::Ready<()>; type Instant = std::time::Instant; - type Connection = std::convert::Infallible; + type MultiStream = std::convert::Infallible; type Stream = Stream; type ConnectFuture = future::BoxFuture< 'static, - Result, ConnectError>, + Result, ConnectError>, >; type StreamUpdateFuture<'a> = future::BoxFuture<'a, ()>; type NextSubstreamFuture<'a> = @@ -193,13 +193,13 @@ impl PlatformRef for TokioPlatform { }) } - fn open_out_substream(&self, c: &mut Self::Connection) { + fn open_out_substream(&self, c: &mut Self::MultiStream) { // This function can only be called with so-called "multi-stream" connections. We never // open such connection. match *c {} } - fn next_substream<'a>(&self, c: &'a mut Self::Connection) -> Self::NextSubstreamFuture<'a> { + fn next_substream<'a>(&self, c: &'a mut Self::MultiStream) -> Self::NextSubstreamFuture<'a> { // This function can only be called with so-called "multi-stream" connections. We never // open such connection. match *c {} @@ -364,7 +364,11 @@ impl PlatformRef for TokioPlatform { } } - fn spawn_task(&self, _: std::borrow::Cow, task: future::BoxFuture<'static, ()>) { + fn spawn_task( + &self, + _: std::borrow::Cow, + task: impl Future + Send + 'static, + ) { self.spawner.spawn("cumulus-internal-light-client-task", None, task) } From 3779ab1d43e6e1440eea8c88c6c65de3b5d21a1d Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 19 Jul 2023 14:15:01 +0200 Subject: [PATCH 35/44] Update smoldot --- Cargo.lock | 572 ++++++++++++++---- client/relay-chain-rpc-interface/Cargo.toml | 4 +- .../src/tokio_platform.rs | 6 - 3 files changed, 460 insertions(+), 122 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c320c9d7dc4..7e502cd8a25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -282,7 +282,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1" dependencies = [ "include_dir", - "itertools", + "itertools 0.10.3", "proc-macro-error", "proc-macro2", "quote", @@ -307,6 +307,15 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + [[package]] name = "arrayvec" version = "0.5.2" @@ -315,9 +324,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "asn1-rs" @@ -760,37 +769,94 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue 2.1.0", + "concurrent-queue", "event-listener", "futures-core", ] [[package]] -name = "async-io" +name = "async-executor" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +dependencies = [ + "async-lock", + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock", + "autocfg", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ - "concurrent-queue 1.2.2", + "async-lock", + "autocfg", + "cfg-if", + "concurrent-queue", "futures-lite", - "libc", "log", - "once_cell", "parking", "polling", + "rustix 0.37.19", "slab", "socket2", "waker-fn", - "winapi", ] [[package]] name = "async-lock" -version = "2.4.0" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-net" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" +checksum = "4051e67316bc7eff608fe723df5d32ed639946adcd69e07df41fd42a7b411f1f" dependencies = [ + "async-io", + "autocfg", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-process" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" +dependencies = [ + "async-io", + "async-lock", + "autocfg", + "blocking", + "cfg-if", "event-listener", + "futures-lite", + "rustix 0.37.19", + "signal-hook", + "windows-sys 0.48.0", ] [[package]] @@ -804,6 +870,12 @@ dependencies = [ "syn 2.0.26", ] +[[package]] +name = "async-task" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" + [[package]] name = "async-trait" version = "0.1.71" @@ -828,6 +900,12 @@ dependencies = [ "pin-project-lite 0.2.9", ] +[[package]] +name = "atomic-take" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" + [[package]] name = "atomic-waker" version = "1.0.0" @@ -892,9 +970,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1e31e207a6b8fb791a38ea3105e6cb541f55e4d029902d3039a4ad07cc4105" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64ct" @@ -950,6 +1028,21 @@ dependencies = [ "syn 2.0.26", ] +[[package]] +name = "bip39" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +dependencies = [ + "bitcoin_hashes", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" + [[package]] name = "bitflags" version = "1.3.2" @@ -974,7 +1067,17 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", +] + +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq 0.1.5", ] [[package]] @@ -984,7 +1087,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "constant_time_eq 0.2.4", ] @@ -995,7 +1098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "constant_time_eq 0.1.5", ] @@ -1006,11 +1109,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if", "constant_time_eq 0.1.5", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -1068,6 +1171,21 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +[[package]] +name = "blocking" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +dependencies = [ + "async-channel", + "async-lock", + "async-task", + "atomic-waker", + "fastrand", + "futures-lite", + "log", +] + [[package]] name = "bounded-collections" version = "0.1.8" @@ -1595,6 +1713,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "tinyvec", +] + [[package]] name = "bstr" version = "0.2.17" @@ -1672,12 +1799,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "cache-padded" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" - [[package]] name = "camino" version = "1.1.2" @@ -2107,15 +2228,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" -[[package]] -name = "concurrent-queue" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" -dependencies = [ - "cache-padded", -] - [[package]] name = "concurrent-queue" version = "2.1.0" @@ -2375,7 +2487,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools", + "itertools 0.10.3", "log", "smallvec", "wasmparser", @@ -2419,7 +2531,7 @@ dependencies = [ "criterion-plot", "futures", "is-terminal", - "itertools", + "itertools 0.10.3", "num-traits", "once_cell", "oorandom", @@ -2441,7 +2553,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.3", ] [[package]] @@ -2480,9 +2592,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" dependencies = [ "cfg-if", "crossbeam-utils", @@ -3177,24 +3289,33 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "either", + "event-listener", "futures", "futures-timer", "jsonrpsee", "lru 0.9.0", "parity-scale-codec", + "parking_lot 0.12.1", "polkadot-overseer", "sc-client-api", "sc-rpc-api", "sc-service", "serde", "serde_json", + "smoldot", + "smoldot-light", + "soketto", "sp-api", "sp-authority-discovery", "sp-consensus-babe", "sp-core", + "sp-runtime", "sp-state-machine", "sp-storage", + "thiserror", "tokio", + "tokio-util", "tracing", "url", ] @@ -3400,6 +3521,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + [[package]] name = "cxx" version = "1.0.80" @@ -3646,9 +3780,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.0", "const-oid", @@ -3804,7 +3938,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" dependencies = [ "der 0.7.7", - "digest 0.10.6", + "digest 0.10.7", "elliptic-curve 0.13.5", "rfc6979 0.4.0", "signature 2.1.0", @@ -3863,7 +3997,7 @@ dependencies = [ "base16ct 0.1.1", "crypto-bigint 0.4.9", "der 0.6.0", - "digest 0.10.6", + "digest 0.10.7", "ff 0.12.1", "generic-array 0.14.6", "group 0.12.1", @@ -3884,7 +4018,7 @@ checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ "base16ct 0.2.0", "crypto-bigint 0.5.2", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "generic-array 0.14.6", "group 0.13.0", @@ -4043,9 +4177,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.1" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "exit-future" @@ -4321,7 +4455,7 @@ dependencies = [ "frame-system", "gethostname", "handlebars", - "itertools", + "itertools 0.10.3", "lazy_static", "linked-hash-map", "log", @@ -4477,7 +4611,7 @@ dependencies = [ "derive-syn-parse", "expander 2.0.0", "frame-support-procedural-tools", - "itertools", + "itertools 0.10.3", "macro_magic", "proc-macro-warning", "proc-macro2", @@ -4652,9 +4786,9 @@ checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ "fastrand", "futures-core", @@ -4979,6 +5113,9 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "serde", +] [[package]] name = "heck" @@ -5073,7 +5210,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -5543,6 +5680,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -5616,7 +5762,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" dependencies = [ "anyhow", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "async-lock", "async-trait", "beef", @@ -5727,7 +5873,7 @@ dependencies = [ "ecdsa 0.16.7", "elliptic-curve 0.13.5", "once_cell", - "sha2 0.10.2", + "sha2 0.10.7", ] [[package]] @@ -6062,14 +6208,14 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" dependencies = [ - "bs58", + "bs58 0.4.0", "ed25519-dalek", "log", "multiaddr", "multihash", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.7", "thiserror", "zeroize", ] @@ -6080,7 +6226,7 @@ version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "asynchronous-codec", "bytes", "either", @@ -6094,7 +6240,7 @@ dependencies = [ "log", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.7", "smallvec", "thiserror", "uint", @@ -6152,7 +6298,7 @@ dependencies = [ "once_cell", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.7", "snow", "static_assertions", "thiserror", @@ -6376,9 +6522,9 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", "base64 0.13.0", @@ -6653,7 +6799,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b48670c893079d3c2ed79114e3644b7004df1c361a4e0ad52e2e6940d07c3d" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6728,6 +6874,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + [[package]] name = "mick-jaeger" version = "0.1.8" @@ -6877,9 +7035,9 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", - "sha2 0.10.2", + "sha2 0.10.7", "sha3", "unsigned-varint", ] @@ -7052,6 +7210,18 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "no-std-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -7060,13 +7230,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.0" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", - "version_check", ] [[package]] @@ -7101,7 +7270,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b862ff8df690cf089058c98b183676a7ed0f974cc08b426800093227cbff3b" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "itoa 1.0.4", ] @@ -7236,7 +7405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066" dependencies = [ "expander 0.0.6", - "itertools", + "itertools 0.10.3", "petgraph", "proc-macro-crate", "proc-macro2", @@ -7261,7 +7430,7 @@ checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ "ecdsa 0.14.8", "elliptic-curve 0.12.3", - "sha2 0.10.2", + "sha2 0.10.7", ] [[package]] @@ -7272,7 +7441,7 @@ checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ "ecdsa 0.14.8", "elliptic-curve 0.12.3", - "sha2 0.10.2", + "sha2 0.10.7", ] [[package]] @@ -8879,7 +9048,7 @@ version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "756d439303e94fae44f288ba881ad29670c65b0c4b0e05674ca81061bb65f2c5" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "bytes", @@ -9022,7 +9191,16 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", ] [[package]] @@ -9169,22 +9347,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.26", ] [[package]] @@ -9516,7 +9694,7 @@ dependencies = [ "futures-timer", "kvdb", "lru 0.9.0", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -9525,7 +9703,7 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sc-keystore", - "schnorrkel", + "schnorrkel 0.9.1", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -9848,7 +10026,7 @@ name = "polkadot-node-metrics" version = "0.9.43" source = "git+https://github.com/paritytech/polkadot?branch=master#a4936f1b7f846558340129a05bbb2a0f6b24f085" dependencies = [ - "bs58", + "bs58 0.4.0", "futures", "futures-timer", "log", @@ -9895,7 +10073,7 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", - "schnorrkel", + "schnorrkel 0.9.1", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -9969,7 +10147,7 @@ dependencies = [ "fatality", "futures", "futures-channel", - "itertools", + "itertools 0.10.3", "kvdb", "lru 0.9.0", "parity-db", @@ -10350,7 +10528,7 @@ name = "polkadot-runtime-metrics" version = "0.9.43" source = "git+https://github.com/paritytech/polkadot?branch=master#a4936f1b7f846558340129a05bbb2a0f6b24f085" dependencies = [ - "bs58", + "bs58 0.4.0", "parity-scale-codec", "polkadot-primitives", "sp-std", @@ -10780,7 +10958,7 @@ checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c" dependencies = [ "difflib", "float-cmp", - "itertools", + "itertools 0.10.3", "normalize-line-endings", "predicates-core", "regex", @@ -10794,7 +10972,7 @@ checksum = "1ba7d6ead3e3966038f68caa9fc1f860185d95a793180bbcfe0d0da47b3961ed" dependencies = [ "anstyle 0.3.4", "difflib", - "itertools", + "itertools 0.10.3", "predicates-core", ] @@ -10964,7 +11142,7 @@ checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb" dependencies = [ "bytes", "heck", - "itertools", + "itertools 0.10.3", "lazy_static", "log", "multimap", @@ -10983,7 +11161,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.3", "proc-macro2", "quote", "syn 1.0.109", @@ -11255,7 +11433,7 @@ checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" dependencies = [ "derive_more", "fs-err", - "itertools", + "itertools 0.10.3", "static_init 0.5.2", "thiserror", ] @@ -11744,6 +11922,17 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +[[package]] +name = "ruzstd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +dependencies = [ + "byteorder", + "thiserror-core", + "twox-hash", +] + [[package]] name = "rw-stream-sink" version = "0.3.0" @@ -12932,7 +13121,7 @@ dependencies = [ "arrayvec 0.5.2", "curve25519-dalek 2.1.3", "getrandom 0.1.16", - "merlin", + "merlin 2.0.1", "rand 0.7.3", "rand_core 0.5.1", "sha2 0.8.2", @@ -12940,6 +13129,22 @@ dependencies = [ "zeroize", ] +[[package]] +name = "schnorrkel" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "curve25519-dalek-ng", + "merlin 3.0.0", + "rand_core 0.6.4", + "sha2 0.9.8", + "subtle-ng", + "zeroize", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -13216,13 +13421,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -13231,7 +13436,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f935e31cf406e8c0e96c2815a5516181b7004ae8c5f296293221e9b1e356bd" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -13281,6 +13486,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -13296,7 +13511,7 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -13306,7 +13521,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -13331,9 +13546,12 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "slab" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] [[package]] name = "slice-group-by" @@ -13368,6 +13586,106 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-net", + "async-process", + "blocking", + "futures-lite", +] + +[[package]] +name = "smoldot" +version = "0.8.0" +source = "git+https://github.com/smol-dot/smoldot?rev=6aaf5182b96c1fc543c9efafbcf445219e240c21#6aaf5182b96c1fc543c9efafbcf445219e240c21" +dependencies = [ + "arrayvec 0.7.4", + "async-lock", + "atomic-take", + "base64 0.21.2", + "bip39", + "blake2-rfc", + "bs58 0.5.0", + "crossbeam-queue", + "derive_more", + "ed25519-zebra", + "either", + "event-listener", + "fnv", + "futures-channel", + "futures-lite", + "futures-util", + "hashbrown 0.14.0", + "hex", + "hmac 0.12.1", + "itertools 0.11.0", + "libsecp256k1", + "merlin 3.0.0", + "no-std-net", + "nom", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2 0.12.2", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd", + "schnorrkel 0.10.2", + "serde", + "serde_json", + "sha2 0.10.7", + "siphasher", + "slab", + "smallvec", + "smol", + "snow", + "soketto", + "tiny-keccak", + "twox-hash", + "wasmi", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.6.0" +source = "git+https://github.com/smol-dot/smoldot?rev=6aaf5182b96c1fc543c9efafbcf445219e240c21#6aaf5182b96c1fc543c9efafbcf445219e240c21" +dependencies = [ + "async-channel", + "async-lock", + "blake2-rfc", + "derive_more", + "either", + "event-listener", + "fnv", + "futures-channel", + "futures-lite", + "futures-util", + "hashbrown 0.14.0", + "hex", + "itertools 0.11.0", + "log", + "lru 0.10.0", + "parking_lot 0.12.1", + "rand 0.8.5", + "serde", + "serde_json", + "siphasher", + "slab", + "smol", + "smoldot", +] + [[package]] name = "snap" version = "1.0.5" @@ -13387,7 +13705,7 @@ dependencies = [ "rand_core 0.6.4", "ring", "rustc_version 0.4.0", - "sha2 0.10.2", + "sha2 0.10.7", "subtle", ] @@ -13631,7 +13949,7 @@ dependencies = [ "bitflags", "blake2", "bounded-collections", - "bs58", + "bs58 0.4.0", "dyn-clonable", "ed25519-zebra", "futures", @@ -13641,7 +13959,7 @@ dependencies = [ "lazy_static", "libsecp256k1", "log", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "parking_lot 0.12.1", "paste", @@ -13649,7 +13967,7 @@ dependencies = [ "rand 0.8.5", "regex", "scale-info", - "schnorrkel", + "schnorrkel 0.9.1", "secp256k1", "secrecy", "serde", @@ -13674,8 +13992,8 @@ source = "git+https://github.com/paritytech/substrate?branch=master#696d09b3d1da dependencies = [ "blake2b_simd", "byteorder", - "digest 0.10.6", - "sha2 0.10.2", + "digest 0.10.7", + "sha2 0.10.7", "sha3", "twox-hash", ] @@ -13978,7 +14296,7 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "scale-info", - "sha2 0.10.2", + "sha2 0.10.7", "sp-api", "sp-application-crypto", "sp-core", @@ -14314,7 +14632,7 @@ checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", - "schnorrkel", + "schnorrkel 0.9.1", "sha2 0.9.8", "zeroize", ] @@ -14465,6 +14783,12 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + [[package]] name = "syn" version = "1.0.109" @@ -14584,6 +14908,26 @@ dependencies = [ "thiserror-impl", ] +[[package]] +name = "thiserror-core" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497" +dependencies = [ + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "thiserror-impl" version = "1.0.43" @@ -14704,7 +15048,7 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "rustc-hash", - "sha2 0.10.2", + "sha2 0.10.7", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -14732,9 +15076,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -14822,9 +15166,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes", "futures-core", @@ -15173,7 +15517,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "digest 0.10.6", + "digest 0.10.7", "rand 0.8.5", "static_assertions", ] @@ -15620,14 +15964,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.21.1", + "base64 0.21.2", "bincode", "directories-next", "file-per-thread-logger", "log", "rustix 0.36.7", "serde", - "sha2 0.10.2", + "sha2 0.10.7", "toml 0.5.10", "windows-sys 0.45.0", "zstd 0.11.2+zstd.1.5.2", @@ -15833,7 +16177,7 @@ dependencies = [ "sdp", "serde", "serde_json", - "sha2 0.10.2", + "sha2 0.10.7", "stun", "thiserror", "time 0.3.17", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index a78e8002b23..4d90193a76e 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -35,8 +35,8 @@ url = "2.4.0" serde_json = "1.0.103" serde = "1.0.171" lru = "0.9.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "10ca49209f475076a4c6190631699618e7380935" , default_features = false, features = ["std"]} -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "10ca49209f475076a4c6190631699618e7380935", default_features = false, features = ["std"] } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "6aaf5182b96c1fc543c9efafbcf445219e240c21" , default_features = false, features = ["std"]} +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "6aaf5182b96c1fc543c9efafbcf445219e240c21", default_features = false, features = ["std"] } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index b69282a2974..cd6952120cb 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -48,7 +48,6 @@ impl TokioPlatform { impl PlatformRef for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; - type Yield = future::Ready<()>; type Instant = std::time::Instant; type MultiStream = std::convert::Infallible; type Stream = Stream; @@ -78,11 +77,6 @@ impl PlatformRef for TokioPlatform { self.sleep(duration) } - fn yield_after_cpu_intensive(&self) -> Self::Yield { - // No-op. - future::ready(()) - } - fn connect(&self, multiaddr: &str) -> Self::ConnectFuture { // We simply copy the address to own it. We could be more zero-cost here, but doing so // would considerably complicate the implementation. From 145f396dc3401c50fd074fc3366347f4edbcc033 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 21 Aug 2023 18:28:57 +0200 Subject: [PATCH 36/44] Fix build --- test/service/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index d52985fdacb..7dcab7c5076 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -255,9 +255,9 @@ async fn build_relay_chain_interface( cumulus_client_cli::RelayChainMode::Embedded => polkadot_test_service::new_full( relay_chain_config, if let Some(ref key) = collator_key { - polkadot_service::IsCollator::Yes(key.clone()) + polkadot_service::IsParachainNode::Collator(key.clone()) } else { - polkadot_service::IsCollator::Yes(CollatorPair::generate().0) + polkadot_service::IsParachainNode::Collator(CollatorPair::generate().0) }, None, ) From 59c275df76c3fd38559a110e9ba34b1f91db35d4 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Mon, 21 Aug 2023 18:32:05 +0200 Subject: [PATCH 37/44] Update smoldot --- Cargo.lock | 2 +- client/relay-chain-rpc-interface/Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d5e110354a8..573f78d23ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15878,7 +15878,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand 0.7.3", "static_assertions", ] diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 8a713b24f84..4f5018e8d3d 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -35,8 +35,8 @@ url = "2.4.0" serde_json = "1.0.105" serde = "1.0.183" lru = "0.11.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "6aaf5182b96c1fc543c9efafbcf445219e240c21" , default_features = false, features = ["std"]} -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "6aaf5182b96c1fc543c9efafbcf445219e240c21", default_features = false, features = ["std"] } +smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "8c577b4a753fe96190f813070564ecc742b91a1" , default_features = false, features = ["std"]} +smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "8c577b4a753fe96190f813070564ecc742b91a1", default_features = false, features = ["std"] } parking_lot = "0.12.1" either = "1.8.1" event-listener = "2.5.3" From 74c54b5577126813b82f00c32f9c16da09c6b7b1 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 09:38:13 +0200 Subject: [PATCH 38/44] Make platform compile --- Cargo.lock | 1364 +++++++++-------- client/relay-chain-rpc-interface/Cargo.toml | 4 + .../src/tokio_platform.rs | 368 ++--- 3 files changed, 804 insertions(+), 932 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 573f78d23ff..37c9f69c504 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -583,7 +583,7 @@ dependencies = [ "pallet-balances", "pallet-xcm", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime", @@ -643,7 +643,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -682,7 +682,7 @@ dependencies = [ "pallet-balances", "pallet-xcm", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime", @@ -738,7 +738,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -780,7 +780,7 @@ dependencies = [ "pallet-balances", "pallet-xcm", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime", @@ -838,7 +838,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -885,7 +885,7 @@ dependencies = [ "parachain-info", "parachains-common", "parachains-runtimes-test-utils", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "sp-consensus-aura", "sp-core", @@ -909,7 +909,7 @@ dependencies = [ "pallet-asset-tx-payment", "pallet-xcm", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-runtime", @@ -922,9 +922,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ "concurrent-queue", "event-listener", @@ -1170,7 +1170,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "hash-db", "log", @@ -1233,28 +1233,16 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" -[[package]] -name = "bitvec" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty 1.1.0", - "radium 0.6.2", - "tap", - "wyz 0.2.0", -] - [[package]] name = "bitvec" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "funty 2.0.0", - "radium 0.7.0", + "funty", + "radium", "tap", - "wyz 0.5.0", + "wyz", ] [[package]] @@ -1389,7 +1377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb5b05133427c07c4776906f673ccf36c21b102c9829c641a5b56bd151d44fd6" dependencies = [ "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", ] @@ -1451,7 +1439,7 @@ dependencies = [ "frame-support", "hex", "hex-literal", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-consensus-grandpa", @@ -1469,7 +1457,7 @@ dependencies = [ "frame-support", "hex", "hex-literal", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -1485,7 +1473,7 @@ dependencies = [ "bp-runtime", "frame-support", "impl-trait-for-tuples", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", @@ -1501,7 +1489,7 @@ dependencies = [ "frame-support", "frame-system", "hex", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parity-util-mem", "scale-info", "serde", @@ -1519,7 +1507,7 @@ dependencies = [ "frame-support", "hex", "hex-literal", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -1547,7 +1535,7 @@ dependencies = [ "hex-literal", "impl-trait-for-tuples", "num-traits", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -1567,9 +1555,9 @@ dependencies = [ "bp-parachains", "bp-polkadot-core", "bp-runtime", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "finality-grandpa", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-application-crypto", "sp-consensus-grandpa", "sp-core", @@ -1595,7 +1583,7 @@ dependencies = [ name = "bp-xcm-bridge-hub-router" version = "0.1.0" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", @@ -1638,7 +1626,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -1699,7 +1687,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -1740,7 +1728,7 @@ dependencies = [ "pallet-bridge-messages", "pallet-xcm", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime", @@ -1804,7 +1792,7 @@ dependencies = [ "pallet-xcm-benchmarks", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -1869,7 +1857,7 @@ dependencies = [ "parachain-info", "parachains-common", "parachains-runtimes-test-utils", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-core", "sp-io", "sp-keyring", @@ -1902,7 +1890,7 @@ dependencies = [ "pallet-bridge-relayers", "pallet-transaction-payment", "pallet-utility", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-core", @@ -2107,6 +2095,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + [[package]] name = "chacha20poly1305" version = "0.9.1" @@ -2114,9 +2113,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ "aead 0.4.3", - "chacha20", + "chacha20 0.8.2", "cipher 0.3.0", - "poly1305", + "poly1305 0.7.2", "zeroize", ] @@ -2301,7 +2300,7 @@ dependencies = [ "pallet-salary", "pallet-xcm", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime", @@ -2357,7 +2356,7 @@ dependencies = [ "pallet-xcm", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -2542,7 +2541,7 @@ dependencies = [ "pallet-xcm", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", @@ -2617,9 +2616,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.1" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -2921,7 +2920,7 @@ name = "cumulus-client-cli" version = "0.1.0" dependencies = [ "clap", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-chain-spec", "sc-cli", "sc-client-api", @@ -2943,7 +2942,7 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "cumulus-test-runtime", "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -2975,7 +2974,7 @@ dependencies = [ "cumulus-relay-chain-interface", "futures", "lru 0.10.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -3016,7 +3015,7 @@ dependencies = [ "futures", "futures-timer", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "sc-client-api", "sc-consensus", @@ -3081,7 +3080,7 @@ dependencies = [ "cumulus-test-service", "futures", "futures-timer", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-parachain", @@ -3113,7 +3112,7 @@ dependencies = [ "cumulus-test-service", "futures", "futures-timer", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -3174,7 +3173,7 @@ dependencies = [ "frame-system", "pallet-aura", "pallet-timestamp", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-application-crypto", "sp-consensus-aura", @@ -3190,7 +3189,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -3218,7 +3217,7 @@ dependencies = [ "impl-trait-for-tuples", "lazy_static", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "sc-client-api", "scale-info", @@ -3255,7 +3254,7 @@ dependencies = [ "frame-support", "frame-system", "pallet-session", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-runtime", "sp-std", ] @@ -3268,7 +3267,7 @@ dependencies = [ "frame-support", "frame-system", "pallet-sudo", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "scale-info", "sp-runtime", @@ -3282,7 +3281,7 @@ dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -3301,7 +3300,7 @@ dependencies = [ "frame-system", "log", "pallet-balances", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-runtime-common", "rand_chacha 0.3.1", "scale-info", @@ -3322,7 +3321,7 @@ dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -3333,7 +3332,7 @@ dependencies = [ name = "cumulus-primitives-aura" version = "0.1.0" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-primitives", "sp-api", @@ -3346,7 +3345,7 @@ dependencies = [ name = "cumulus-primitives-core" version = "0.1.0" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", @@ -3366,7 +3365,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-test-relay-sproof-builder", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "scale-info", "sp-api", @@ -3386,7 +3385,7 @@ version = "0.1.0" dependencies = [ "cumulus-primitives-core", "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-inherents", "sp-std", "sp-timestamp", @@ -3399,7 +3398,7 @@ dependencies = [ "cumulus-primitives-core", "frame-support", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-runtime-common", "sp-io", "sp-runtime", @@ -3445,7 +3444,7 @@ dependencies = [ "cumulus-primitives-core", "futures", "jsonrpsee-core", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-overseer", "sc-client-api", "sp-api", @@ -3498,15 +3497,19 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "derive_more", "either", "event-listener", "futures", "futures-timer", + "futures-util", "jsonrpsee", "lru 0.11.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", + "pin-project", "polkadot-overseer", + "rand 0.8.5", "sc-client-api", "sc-rpc-api", "sc-service", @@ -3541,7 +3544,7 @@ dependencies = [ "frame-system", "pallet-balances", "pallet-transaction-payment", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "sc-block-builder", @@ -3565,7 +3568,7 @@ name = "cumulus-test-relay-sproof-builder" version = "0.1.0" dependencies = [ "cumulus-primitives-core", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "sp-runtime", "sp-state-machine", @@ -3596,7 +3599,7 @@ dependencies = [ "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-block-builder", @@ -3642,7 +3645,7 @@ dependencies = [ "pallet-timestamp", "pallet-transaction-payment", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-cli", "polkadot-node-subsystem", "polkadot-overseer", @@ -3717,18 +3720,32 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.1" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" +checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" dependencies = [ "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", "fiat-crypto", - "packed_simd_2", "platforms", + "rustc_version 0.4.0", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.28", +] + [[package]] name = "curve25519-dalek-ng" version = "4.1.1" @@ -4185,6 +4202,16 @@ dependencies = [ "signature 1.6.4", ] +[[package]] +name = "ed25519" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +dependencies = [ + "pkcs8 0.10.2", + "signature 2.1.0", +] + [[package]] name = "ed25519-dalek" version = "1.0.1" @@ -4192,13 +4219,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ "curve25519-dalek 3.2.0", - "ed25519", + "ed25519 1.5.3", "rand 0.7.3", "serde", "sha2 0.9.8", "zeroize", ] +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek 4.0.0", + "ed25519 2.2.2", + "serde", + "sha2 0.10.7", + "zeroize", +] + [[package]] name = "ed25519-zebra" version = "3.1.0" @@ -4213,6 +4253,21 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-zebra" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e83e509bcd060ca4b54b72bde5bb306cb2088cb01e14797ebae90a24f70f5f7" +dependencies = [ + "curve25519-dalek 4.0.0", + "ed25519 2.2.2", + "hashbrown 0.14.0", + "hex", + "rand_core 0.6.4", + "sha2 0.10.7", + "zeroize", +] + [[package]] name = "either" version = "1.9.0" @@ -4591,7 +4646,7 @@ dependencies = [ "futures-timer", "log", "num-traits", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "scale-info", ] @@ -4645,9 +4700,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", ] [[package]] @@ -4668,14 +4723,14 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-support-procedural", "frame-system", "linregress", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "paste", "scale-info", "serde", @@ -4693,7 +4748,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "Inflector", "array-bytes", @@ -4709,7 +4764,7 @@ dependencies = [ "lazy_static", "linked-hash-map", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand 0.8.5", "rand_pcg", "sc-block-builder", @@ -4741,7 +4796,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4752,12 +4807,12 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-election-provider-solution-type", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -4769,12 +4824,12 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "frame-try-runtime", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -4790,7 +4845,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" dependencies = [ "cfg-if", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", ] @@ -4798,14 +4853,14 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-recursion", "futures", "indicatif", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "serde", "sp-core", "sp-io", @@ -4820,7 +4875,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "aquamarine", "bitflags 1.3.2", @@ -4832,7 +4887,7 @@ dependencies = [ "k256", "log", "macro_magic", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "paste", "scale-info", "serde", @@ -4858,7 +4913,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "Inflector", "cfg-expr", @@ -4876,7 +4931,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -4888,7 +4943,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro2", "quote", @@ -4898,12 +4953,12 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "cfg-if", "frame-support", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -4917,12 +4972,12 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", @@ -4932,19 +4987,19 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", ] [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", "sp-runtime", "sp-std", @@ -4983,12 +5038,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" -[[package]] -name = "funty" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" - [[package]] name = "funty" version = "2.0.0" @@ -5246,7 +5295,7 @@ dependencies = [ "pallet-sudo", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-block-builder", @@ -5643,7 +5692,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", ] [[package]] @@ -5809,7 +5858,7 @@ dependencies = [ "pallet-xcm", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "paste", "penpal-runtime", "polkadot-core-primitives", @@ -6129,16 +6178,19 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] [[package]] name = "kusama-runtime" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "frame-benchmarking", "frame-election-provider-support", "frame-executive", @@ -6199,7 +6251,7 @@ dependencies = [ "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -6236,7 +6288,7 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-support", "polkadot-primitives", @@ -6319,12 +6371,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "libm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - [[package]] name = "libm" version = "0.2.1" @@ -6460,7 +6506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" dependencies = [ "bs58 0.4.0", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "log", "multiaddr", "multihash", @@ -7193,11 +7239,11 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sc-offchain", "sp-api", @@ -7212,11 +7258,11 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "anyhow", "jsonrpsee", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "serde", "sp-api", "sp-blockchain", @@ -7701,20 +7747,10 @@ dependencies = [ "sha2 0.10.7", ] -[[package]] -name = "packed_simd_2" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" -dependencies = [ - "cfg-if", - "libm 0.1.4", -] - [[package]] name = "pallet-alliance" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "frame-benchmarking", @@ -7723,7 +7759,7 @@ dependencies = [ "log", "pallet-collective", "pallet-identity", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-core-hashing", @@ -7735,12 +7771,12 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-arithmetic", @@ -7753,13 +7789,13 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-tx-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "pallet-asset-conversion", "pallet-transaction-payment", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -7768,13 +7804,13 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-transaction-payment", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -7786,12 +7822,12 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", @@ -7801,12 +7837,12 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "pallet-timestamp", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-application-crypto", "sp-consensus-aura", @@ -7817,12 +7853,12 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "pallet-session", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-application-crypto", "sp-authority-discovery", @@ -7833,12 +7869,12 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -7847,7 +7883,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", @@ -7856,7 +7892,7 @@ dependencies = [ "pallet-authorship", "pallet-session", "pallet-timestamp", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-application-crypto", "sp-consensus-babe", @@ -7871,7 +7907,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "aquamarine", "docify", @@ -7881,7 +7917,7 @@ dependencies = [ "frame-system", "log", "pallet-balances", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -7893,13 +7929,13 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -7908,13 +7944,13 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "pallet-authorship", "pallet-session", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-consensus-beefy", @@ -7927,7 +7963,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "binary-merkle-tree", @@ -7937,7 +7973,7 @@ dependencies = [ "pallet-beefy", "pallet-mmr", "pallet-session", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-api", @@ -7951,14 +7987,14 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "pallet-treasury", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -7978,7 +8014,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-consensus-grandpa", "sp-core", @@ -8001,7 +8037,7 @@ dependencies = [ "log", "num-traits", "pallet-balances", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8023,7 +8059,7 @@ dependencies = [ "frame-system", "log", "pallet-bridge-grandpa", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8045,7 +8081,7 @@ dependencies = [ "log", "pallet-balances", "pallet-bridge-messages", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -8057,7 +8093,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", @@ -8065,7 +8101,7 @@ dependencies = [ "log", "pallet-bounties", "pallet-treasury", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8086,7 +8122,7 @@ dependencies = [ "pallet-balances", "pallet-session", "pallet-timestamp", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand 0.8.5", "scale-info", "sp-consensus-aura", @@ -8101,13 +8137,13 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8118,7 +8154,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "bitflags 1.3.2", "environmental", @@ -8130,7 +8166,7 @@ dependencies = [ "pallet-balances", "pallet-contracts-primitives", "pallet-contracts-proc-macro", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand 0.8.5", "rand_pcg", "scale-info", @@ -8142,16 +8178,16 @@ dependencies = [ "sp-runtime", "sp-std", "wasm-instrument 0.4.0", - "wasmi", + "wasmi 0.30.0", ] [[package]] name = "pallet-contracts-primitives" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "bitflags 1.3.2", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -8161,7 +8197,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro2", "quote", @@ -8171,13 +8207,13 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "assert_matches", "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-io", @@ -8188,13 +8224,13 @@ dependencies = [ [[package]] name = "pallet-core-fellowship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -8206,13 +8242,13 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -8224,7 +8260,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8232,7 +8268,7 @@ dependencies = [ "frame-system", "log", "pallet-election-provider-support-benchmarking", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -8247,12 +8283,12 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-npos-elections", "sp-runtime", ] @@ -8260,13 +8296,13 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8279,7 +8315,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "docify", "frame-benchmarking", @@ -8287,7 +8323,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8298,14 +8334,14 @@ dependencies = [ [[package]] name = "pallet-glutton" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "blake2", "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8316,7 +8352,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", @@ -8324,7 +8360,7 @@ dependencies = [ "log", "pallet-authorship", "pallet-session", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-application-crypto", "sp-consensus-grandpa", @@ -8339,13 +8375,13 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8355,14 +8391,14 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "pallet-authorship", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-application-crypto", "sp-core", @@ -8375,12 +8411,12 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8392,11 +8428,11 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "safe-mix", "scale-info", "sp-runtime", @@ -8406,13 +8442,13 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8423,13 +8459,13 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "7.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -8442,12 +8478,12 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8459,13 +8495,13 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8475,7 +8511,7 @@ dependencies = [ [[package]] name = "pallet-nft-fractionalization" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", @@ -8483,7 +8519,7 @@ dependencies = [ "log", "pallet-assets", "pallet-nfts", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -8492,14 +8528,14 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8510,23 +8546,23 @@ dependencies = [ [[package]] name = "pallet-nfts-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "pallet-nfts", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", ] [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -8537,13 +8573,13 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "log", "pallet-balances", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8556,7 +8592,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8565,7 +8601,7 @@ dependencies = [ "pallet-bags-list", "pallet-nomination-pools", "pallet-staking", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-runtime-interface", @@ -8576,10 +8612,10 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "pallet-nomination-pools", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", "sp-std", ] @@ -8587,13 +8623,13 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "log", "pallet-balances", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-runtime", @@ -8604,7 +8640,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8618,7 +8654,7 @@ dependencies = [ "pallet-offences", "pallet-session", "pallet-staking", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-staking", @@ -8632,7 +8668,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -8643,13 +8679,13 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8660,12 +8696,12 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8675,13 +8711,13 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -8693,12 +8729,12 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8708,14 +8744,14 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "assert_matches", "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-arithmetic", @@ -8727,13 +8763,13 @@ dependencies = [ [[package]] name = "pallet-salary" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-core", @@ -8745,14 +8781,14 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "docify", "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8763,14 +8799,14 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "log", "pallet-timestamp", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8784,7 +8820,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", @@ -8800,13 +8836,13 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", "sp-arithmetic", @@ -8818,7 +8854,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8827,7 +8863,7 @@ dependencies = [ "log", "pallet-authorship", "pallet-session", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", "serde", @@ -8841,7 +8877,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8852,7 +8888,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "log", "sp-arithmetic", @@ -8861,22 +8897,22 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", ] [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -8887,12 +8923,12 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -8902,13 +8938,13 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-inherents", "sp-io", @@ -8920,14 +8956,14 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "pallet-treasury", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -8939,11 +8975,11 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -8955,11 +8991,11 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", "sp-blockchain", "sp-core", @@ -8971,10 +9007,10 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "pallet-transaction-payment", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-api", "sp-runtime", "sp-weights", @@ -8983,14 +9019,14 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", "pallet-balances", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-runtime", @@ -9000,13 +9036,13 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -9015,12 +9051,12 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-io", @@ -9031,13 +9067,13 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -9046,12 +9082,12 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-runtime", @@ -9061,14 +9097,14 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bounded-collections", "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -9082,13 +9118,13 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", @@ -9105,7 +9141,7 @@ dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -9133,7 +9169,7 @@ dependencies = [ "log", "pallet-transaction-payment-rpc", "parachain-template-runtime", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-cli", "polkadot-primitives", "sc-basic-authorship", @@ -9202,7 +9238,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-xcm", "parachain-info", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-runtime-common", "scale-info", @@ -9238,7 +9274,7 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-collator-selection", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "scale-info", "sp-consensus-aura", @@ -9273,7 +9309,7 @@ dependencies = [ "pallet-xcm", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "sp-consensus-aura", "sp-core", @@ -9305,19 +9341,6 @@ dependencies = [ "snap", ] -[[package]] -name = "parity-scale-codec" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" -dependencies = [ - "arrayvec 0.7.4", - "bitvec 0.20.4", - "byte-slice-cast", - "impl-trait-for-tuples", - "serde", -] - [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -9325,7 +9348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd8e946cc0cc711189c0b0249fb8b599cbeeab9784d83c415719368bb8d4ac64" dependencies = [ "arrayvec 0.7.4", - "bitvec 1.0.1", + "bitvec", "byte-slice-cast", "bytes", "impl-trait-for-tuples", @@ -9538,7 +9561,7 @@ dependencies = [ "pallet-xcm", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", @@ -9622,18 +9645,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", @@ -9721,7 +9744,7 @@ dependencies = [ [[package]] name = "polkadot-approval-distribution" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "futures-timer", @@ -9739,7 +9762,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "always-assert", "futures", @@ -9755,13 +9778,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "derive_more", "fatality", "futures", "lru 0.11.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -9778,12 +9801,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "fatality", "futures", "lru 0.11.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -9799,7 +9822,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "clap", "frame-benchmarking-cli", @@ -9826,9 +9849,9 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "fatality", "futures", "futures-timer", @@ -9848,9 +9871,9 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", @@ -9860,7 +9883,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "derive_more", "fatality", @@ -9868,7 +9891,7 @@ dependencies = [ "futures-timer", "indexmap 1.9.1", "lru 0.11.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -9885,9 +9908,9 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", @@ -9899,7 +9922,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "futures-timer", @@ -9920,14 +9943,14 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "always-assert", "async-trait", "bytes", "fatality", "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -9943,10 +9966,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -9961,16 +9984,16 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "derive_more", "futures", "futures-timer", "kvdb", "lru 0.11.0", "merlin 2.0.1", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -9990,13 +10013,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "futures", "futures-timer", "kvdb", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -10012,9 +10035,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "fatality", "futures", "polkadot-erasure-coding", @@ -10031,7 +10054,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "polkadot-node-subsystem", @@ -10046,12 +10069,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "futures", "futures-timer", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-metrics", "polkadot-node-primitives", @@ -10067,7 +10090,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "polkadot-node-metrics", @@ -10082,12 +10105,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "futures-timer", "kvdb", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -10099,13 +10122,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "fatality", "futures", "kvdb", "lru 0.11.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -10118,7 +10141,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "futures", @@ -10134,13 +10157,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "fatality", "futures", - "parity-scale-codec 2.3.1", + "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -10152,9 +10175,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "fatality", "futures", "futures-timer", @@ -10169,13 +10192,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "always-assert", "futures", "futures-timer", "libc", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "pin-project", "polkadot-core-primitives", "polkadot-node-core-pvf-common", @@ -10200,7 +10223,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "polkadot-node-primitives", @@ -10216,13 +10239,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "cpu-time", "futures", "landlock", "libc", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "sc-executor", @@ -10238,11 +10261,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-execute-worker" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "cpu-time", "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-core-pvf-common", "polkadot-parachain", "polkadot-primitives", @@ -10258,11 +10281,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-prepare-worker" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "libc", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-core-pvf-common", "polkadot-parachain", "polkadot-primitives", @@ -10281,7 +10304,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "futures", "lru 0.11.0", @@ -10296,12 +10319,12 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "lazy_static", "log", "mick-jaeger", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-primitives", @@ -10314,13 +10337,13 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bs58 0.4.0", "futures", "futures-timer", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "prioritized-metered-channel", "sc-cli", @@ -10333,16 +10356,16 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-channel", "async-trait", - "bitvec 1.0.1", + "bitvec", "derive_more", "fatality", "futures", "hex", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", @@ -10357,11 +10380,11 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bounded-vec", "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "schnorrkel 0.9.1", @@ -10379,7 +10402,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -10389,7 +10412,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-test-helpers" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "futures", @@ -10407,7 +10430,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "derive_more", @@ -10431,7 +10454,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "derive_more", @@ -10442,7 +10465,7 @@ dependencies = [ "kvdb", "lru 0.11.0", "parity-db", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.11.2", "pin-project", "polkadot-node-jaeger", @@ -10464,7 +10487,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "futures", @@ -10487,12 +10510,12 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bounded-collections", "derive_more", "frame-support", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "scale-info", "serde", @@ -10537,7 +10560,7 @@ dependencies = [ "nix 0.26.2", "pallet-transaction-payment-rpc", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "penpal-runtime", "polkadot-cli", "polkadot-primitives", @@ -10588,7 +10611,7 @@ dependencies = [ [[package]] name = "polkadot-performance-test" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "env_logger 0.9.0", "kusama-runtime", @@ -10606,11 +10629,11 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "hex-literal", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "scale-info", @@ -10632,7 +10655,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -10664,9 +10687,9 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "frame-benchmarking", "frame-election-provider-support", "frame-executive", @@ -10722,7 +10745,7 @@ dependencies = [ "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-constants", @@ -10760,9 +10783,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -10782,7 +10805,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-parachains", "rustc-hex", @@ -10806,7 +10829,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-support", "polkadot-primitives", @@ -10820,10 +10843,10 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bs58 0.4.0", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "sp-std", "sp-tracing", @@ -10832,10 +10855,10 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bitflags 1.3.2", - "bitvec 1.0.1", + "bitvec", "derive_more", "frame-benchmarking", "frame-support", @@ -10850,7 +10873,7 @@ dependencies = [ "pallet-staking", "pallet-timestamp", "pallet-vesting", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-metrics", @@ -10877,7 +10900,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "async-trait", "frame-benchmarking", @@ -10900,7 +10923,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-db", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -10997,15 +11020,15 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "arrayvec 0.5.2", - "bitvec 1.0.1", + "arrayvec 0.7.4", + "bitvec", "fatality", "futures", "futures-timer", "indexmap 1.9.1", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -11020,9 +11043,9 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-primitives", "sp-core", ] @@ -11030,10 +11053,10 @@ dependencies = [ [[package]] name = "polkadot-test-client" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-benchmarking", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-node-subsystem", "polkadot-primitives", "polkadot-test-runtime", @@ -11058,9 +11081,9 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "frame-election-provider-support", "frame-executive", "frame-support", @@ -11083,7 +11106,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-vesting", "pallet-xcm", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", @@ -11119,7 +11142,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-system", "futures", @@ -11191,6 +11214,17 @@ dependencies = [ "universal-hash 0.4.1", ] +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash 0.5.1", +] + [[package]] name = "polyval" version = "0.5.3" @@ -11550,12 +11584,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" - [[package]] name = "radium" version = "0.7.0" @@ -11902,7 +11930,7 @@ dependencies = [ "pallet-xcm", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "scale-info", "sp-api", @@ -11925,7 +11953,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -11976,7 +12004,7 @@ dependencies = [ "pallet-vesting", "pallet-xcm", "pallet-xcm-benchmarks", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", @@ -12012,7 +12040,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-support", "polkadot-primitives", @@ -12305,7 +12333,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "log", "sp-core", @@ -12316,7 +12344,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", @@ -12325,7 +12353,7 @@ dependencies = [ "libp2p", "log", "multihash", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "prost", "prost-build", "rand 0.8.5", @@ -12344,12 +12372,12 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "futures-timer", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-block-builder", "sc-client-api", "sc-proposer-metrics", @@ -12367,9 +12395,9 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sp-api", "sp-block-builder", @@ -12382,7 +12410,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -12401,7 +12429,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -12412,7 +12440,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "chrono", @@ -12422,7 +12450,7 @@ dependencies = [ "libp2p-identity", "log", "names", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand 0.8.5", "regex", "rpassword", @@ -12451,12 +12479,12 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "fnv", "futures", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-executor", "sc-transaction-pool-api", @@ -12477,7 +12505,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "hash-db", "kvdb", @@ -12486,7 +12514,7 @@ dependencies = [ "linked-hash-map", "log", "parity-db", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", "sc-state-db", @@ -12503,7 +12531,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", @@ -12528,12 +12556,12 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -12557,7 +12585,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "fork-tree", @@ -12566,7 +12594,7 @@ dependencies = [ "num-bigint", "num-rational", "num-traits", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", "sc-consensus", @@ -12593,7 +12621,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "jsonrpsee", @@ -12615,7 +12643,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "async-channel", @@ -12623,7 +12651,7 @@ dependencies = [ "fnv", "futures", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", "sc-consensus", @@ -12649,12 +12677,12 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-consensus-beefy", "sc-rpc", @@ -12668,10 +12696,10 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "fork-tree", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", @@ -12681,7 +12709,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ahash 0.8.2", "array-bytes", @@ -12692,7 +12720,7 @@ dependencies = [ "futures", "futures-timer", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", "sc-block-builder", @@ -12722,13 +12750,13 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "finality-grandpa", "futures", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sc-consensus-grandpa", "sc-rpc", @@ -12742,13 +12770,13 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", "futures-timer", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sc-consensus", "sc-telemetry", @@ -12765,9 +12793,9 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", "sc-executor-wasmtime", @@ -12787,7 +12815,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -12799,7 +12827,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "anyhow", "cfg-if", @@ -12816,7 +12844,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ansi_term", "futures", @@ -12832,7 +12860,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "parking_lot 0.12.1", @@ -12846,7 +12874,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "async-channel", @@ -12862,7 +12890,7 @@ dependencies = [ "linked_hash_set", "log", "mockall", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "partial_sort", "pin-project", @@ -12887,7 +12915,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-channel", "cid", @@ -12907,13 +12935,13 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "bitflags 1.3.2", "futures", "libp2p-identity", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "prost-build", "sc-consensus", "sp-consensus", @@ -12924,7 +12952,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ahash 0.8.2", "futures", @@ -12942,14 +12970,14 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "async-channel", "futures", "libp2p-identity", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "prost", "prost-build", "sc-client-api", @@ -12963,7 +12991,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "async-channel", @@ -12974,7 +13002,7 @@ dependencies = [ "libp2p", "log", "mockall", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "prost", "prost-build", "sc-client-api", @@ -12997,13 +13025,13 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "futures", "libp2p", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-network", "sc-network-common", "sc-utils", @@ -13015,7 +13043,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "bytes", @@ -13028,7 +13056,7 @@ dependencies = [ "log", "num_cpus", "once_cell", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", "sc-client-api", @@ -13049,7 +13077,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -13058,12 +13086,12 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-block-builder", "sc-chain-spec", @@ -13089,10 +13117,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "jsonrpsee", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-chain-spec", "sc-transaction-pool-api", "scale-info", @@ -13108,7 +13136,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "http", "jsonrpsee", @@ -13123,7 +13151,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "futures", @@ -13131,7 +13159,7 @@ dependencies = [ "hex", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-chain-spec", "sc-client-api", @@ -13151,7 +13179,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "directories", @@ -13160,7 +13188,7 @@ dependencies = [ "futures-timer", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "pin-project", "rand 0.8.5", @@ -13215,10 +13243,10 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sp-core", ] @@ -13226,7 +13254,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "clap", "fs4", @@ -13240,10 +13268,10 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "jsonrpsee", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-chain-spec", "sc-client-api", "sc-consensus-babe", @@ -13259,7 +13287,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "libc", @@ -13278,7 +13306,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "chrono", "futures", @@ -13297,7 +13325,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ansi_term", "atty", @@ -13326,7 +13354,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -13337,14 +13365,14 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", "futures-timer", "linked-hash-map", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", "sc-transaction-pool-api", @@ -13363,12 +13391,12 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "serde", "sp-blockchain", "sp-core", @@ -13379,7 +13407,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-channel", "futures", @@ -13397,10 +13425,10 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" dependencies = [ - "bitvec 1.0.1", + "bitvec", "cfg-if", "derive_more", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info-derive", "serde", ] @@ -13608,7 +13636,7 @@ dependencies = [ "pallet-sudo", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-block-builder", @@ -13770,9 +13798,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", "keccak", @@ -13800,7 +13828,7 @@ dependencies = [ "frame-try-runtime", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-block-builder", @@ -13900,10 +13928,10 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "enumn", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "paste", "sp-runtime", "sp-std", @@ -13943,8 +13971,8 @@ dependencies = [ [[package]] name = "smoldot" -version = "0.8.0" -source = "git+https://github.com/smol-dot/smoldot?rev=6aaf5182b96c1fc543c9efafbcf445219e240c21#6aaf5182b96c1fc543c9efafbcf445219e240c21" +version = "0.11.0" +source = "git+https://github.com/smol-dot/smoldot?rev=8c577b4a753fe96190f813070564ecc742b91a1#8c577b4a753fe96190f813070564ecc742b91a16" dependencies = [ "arrayvec 0.7.4", "async-lock", @@ -13953,13 +13981,13 @@ dependencies = [ "bip39", "blake2-rfc", "bs58 0.5.0", + "chacha20 0.9.1", "crossbeam-queue", "derive_more", - "ed25519-zebra", + "ed25519-zebra 4.0.2", "either", "event-listener", "fnv", - "futures-channel", "futures-lite", "futures-util", "hashbrown 0.14.0", @@ -13975,6 +14003,7 @@ dependencies = [ "num-traits", "pbkdf2 0.12.2", "pin-project", + "poly1305 0.8.0", "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd", @@ -13982,25 +14011,25 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.7", + "sha3", "siphasher", "slab", "smallvec", - "smol", - "snow", "soketto", - "tiny-keccak", "twox-hash", - "wasmi", + "wasmi 0.31.0", + "x25519-dalek 2.0.0", "zeroize", ] [[package]] name = "smoldot-light" -version = "0.6.0" -source = "git+https://github.com/smol-dot/smoldot?rev=6aaf5182b96c1fc543c9efafbcf445219e240c21#6aaf5182b96c1fc543c9efafbcf445219e240c21" +version = "0.9.0" +source = "git+https://github.com/smol-dot/smoldot?rev=8c577b4a753fe96190f813070564ecc742b91a1#8c577b4a753fe96190f813070564ecc742b91a16" dependencies = [ "async-channel", "async-lock", + "base64 0.21.2", "blake2-rfc", "derive_more", "either", @@ -14013,15 +14042,19 @@ dependencies = [ "hex", "itertools 0.11.0", "log", - "lru 0.10.0", + "lru 0.11.0", + "no-std-net", "parking_lot 0.12.1", + "pin-project", "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "serde_json", "siphasher", "slab", "smol", "smoldot", + "zeroize", ] [[package]] @@ -14032,14 +14065,14 @@ checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" [[package]] name = "snow" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" +checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-rc.1", + "curve25519-dalek 4.0.0", "rand_core 0.6.4", "ring 0.16.20", "rustc_version 0.4.0", @@ -14087,11 +14120,11 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "hash-db", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api-proc-macro", "sp-core", @@ -14108,7 +14141,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "Inflector", "blake2", @@ -14122,9 +14155,9 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -14135,11 +14168,11 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "16.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "integer-sqrt", "num-traits", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-std", @@ -14149,9 +14182,9 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", @@ -14162,7 +14195,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "sp-api", "sp-inherents", @@ -14173,11 +14206,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "schnellru", "sp-api", @@ -14191,7 +14224,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "futures", @@ -14206,10 +14239,10 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", @@ -14223,10 +14256,10 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-api", @@ -14242,10 +14275,10 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "lazy_static", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-api", @@ -14261,11 +14294,11 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "finality-grandpa", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-api", @@ -14279,9 +14312,9 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-std", @@ -14291,7 +14324,7 @@ dependencies = [ [[package]] name = "sp-core" version = "21.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "arrayvec 0.7.4", @@ -14301,7 +14334,7 @@ dependencies = [ "bounded-collections", "bs58 0.4.0", "dyn-clonable", - "ed25519-zebra", + "ed25519-zebra 3.1.0", "futures", "hash-db", "hash256-std-hasher", @@ -14310,7 +14343,7 @@ dependencies = [ "libsecp256k1", "log", "merlin 2.0.1", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "paste", "primitive-types", @@ -14338,7 +14371,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "blake2b_simd", "byteorder", @@ -14351,7 +14384,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "9.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "quote", "sp-core-hashing", @@ -14361,7 +14394,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -14370,7 +14403,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro2", "quote", @@ -14380,10 +14413,10 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.19.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "environmental", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-std", "sp-storage", ] @@ -14391,7 +14424,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "serde_json", "sp-api", @@ -14402,11 +14435,11 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "impl-trait-for-tuples", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-runtime", "sp-std", @@ -14416,14 +14449,13 @@ dependencies = [ [[package]] name = "sp-io" version = "23.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "bytes", - "ed25519", - "ed25519-dalek", + "ed25519-dalek 2.0.0", "libsecp256k1", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rustversion", "secp256k1", "sp-core", @@ -14441,7 +14473,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "lazy_static", "sp-core", @@ -14452,9 +14484,9 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.27.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "sp-core", "sp-externalities", @@ -14464,7 +14496,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -14473,10 +14505,10 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-metadata", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-std", ] @@ -14484,11 +14516,11 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ckb-merkle-mountain-range", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-api", @@ -14502,9 +14534,9 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-arithmetic", @@ -14516,7 +14548,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "sp-api", "sp-core", @@ -14526,7 +14558,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "backtrace", "lazy_static", @@ -14536,7 +14568,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "rustc-hash", "serde", @@ -14546,13 +14578,13 @@ dependencies = [ [[package]] name = "sp-runtime" version = "24.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "paste", "rand 0.8.5", "scale-info", @@ -14568,11 +14600,11 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "17.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "bytes", "impl-trait-for-tuples", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", @@ -14586,7 +14618,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "Inflector", "proc-macro-crate", @@ -14598,9 +14630,9 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-api", "sp-core", @@ -14613,10 +14645,10 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "impl-trait-for-tuples", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-core", @@ -14627,11 +14659,11 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.28.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "hash-db", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", "smallvec", @@ -14648,13 +14680,13 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "aes-gcm 0.10.2", - "curve25519-dalek 3.2.0", - "ed25519-dalek", + "curve25519-dalek 4.0.0", + "ed25519-dalek 2.0.0", "hkdf", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "rand 0.8.5", "scale-info", "sha2 0.10.7", @@ -14666,21 +14698,21 @@ dependencies = [ "sp-runtime-interface", "sp-std", "thiserror", - "x25519-dalek 2.0.0-pre.1", + "x25519-dalek 2.0.0", ] [[package]] name = "sp-std" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" [[package]] name = "sp-storage" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "impl-serde", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive", @@ -14690,10 +14722,10 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-inherents", "sp-runtime", "sp-std", @@ -14703,9 +14735,9 @@ dependencies = [ [[package]] name = "sp-tracing" version = "10.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-std", "tracing", "tracing-core", @@ -14715,7 +14747,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "sp-api", "sp-runtime", @@ -14724,10 +14756,10 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "sp-core", "sp-inherents", @@ -14739,7 +14771,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ahash 0.8.2", "hash-db", @@ -14747,7 +14779,7 @@ dependencies = [ "lazy_static", "memory-db", "nohash-hasher", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parking_lot 0.12.1", "scale-info", "schnellru", @@ -14762,10 +14794,10 @@ dependencies = [ [[package]] name = "sp-version" version = "22.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "impl-serde", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "parity-wasm", "scale-info", "serde", @@ -14779,9 +14811,9 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "8.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "proc-macro2", "quote", "syn 2.0.28", @@ -14790,12 +14822,12 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "14.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-std", "wasmtime", ] @@ -14803,9 +14835,9 @@ dependencies = [ [[package]] name = "sp-weights" version = "20.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "smallvec", @@ -15001,18 +15033,18 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "frame-system-rpc-runtime-api", "futures", "jsonrpsee", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-rpc-api", "sc-transaction-pool-api", "sp-api", @@ -15025,7 +15057,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "hyper", "log", @@ -15037,7 +15069,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "jsonrpsee", @@ -15050,10 +15082,10 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "jsonrpsee", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", @@ -15067,12 +15099,12 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "array-bytes", "async-trait", "futures", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-client-api", "sc-client-db", "sc-consensus", @@ -15093,7 +15125,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "futures", "substrate-test-utils-derive", @@ -15103,7 +15135,7 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -15114,7 +15146,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "ansi_term", "build-helper", @@ -15248,7 +15280,7 @@ checksum = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16" [[package]] name = "test-runtime-constants" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-support", "polkadot-primitives", @@ -15670,7 +15702,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "coarsetime", "polkadot-node-jaeger", @@ -15682,7 +15714,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "expander 2.0.0", "proc-macro-crate", @@ -15812,7 +15844,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=master#94be94be6d26becd2395b58ae09ca31f596afe7d" +source = "git+https://github.com/paritytech/substrate?branch=master#51695bb7009ea2e0996eb94ab4dfdc643a076702" dependencies = [ "async-trait", "clap", @@ -15820,7 +15852,7 @@ dependencies = [ "frame-try-runtime", "hex", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sc-cli", "sc-executor", "serde", @@ -15878,7 +15910,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.7.3", + "rand 0.8.5", "static_assertions", ] @@ -16239,7 +16271,20 @@ dependencies = [ "smallvec", "spin 0.9.4", "wasmi_arena", - "wasmi_core", + "wasmi_core 0.12.0", + "wasmparser-nostd", +] + +[[package]] +name = "wasmi" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945" +dependencies = [ + "smallvec", + "spin 0.9.4", + "wasmi_arena", + "wasmi_core 0.13.0", "wasmparser-nostd", ] @@ -16256,7 +16301,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624e6333e861ef49095d2d678b76ebf30b06bf37effca845be7e5b87c90071b7" dependencies = [ "downcast-rs", - "libm 0.2.1", + "libm", + "num-traits", + "paste", +] + +[[package]] +name = "wasmi_core" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" +dependencies = [ + "downcast-rs", + "libm", "num-traits", "paste", ] @@ -16607,7 +16664,7 @@ dependencies = [ "tokio", "webpki 0.21.4", "webrtc-util", - "x25519-dalek 2.0.0-pre.1", + "x25519-dalek 2.0.0", "x509-parser 0.13.2", ] @@ -16735,9 +16792,9 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ - "bitvec 1.0.1", + "bitvec", "frame-benchmarking", "frame-election-provider-support", "frame-executive", @@ -16791,7 +16848,7 @@ dependencies = [ "pallet-vesting", "pallet-xcm", "pallet-xcm-benchmarks", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", @@ -16828,7 +16885,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-support", "polkadot-primitives", @@ -17148,12 +17205,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - [[package]] name = "wyz" version = "0.5.0" @@ -17176,12 +17227,13 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-pre.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 4.0.0", "rand_core 0.6.4", + "serde", "zeroize", ] @@ -17225,13 +17277,13 @@ dependencies = [ [[package]] name = "xcm" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "bounded-collections", "derivative", "impl-trait-for-tuples", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "scale-info", "serde", "sp-weights", @@ -17241,14 +17293,14 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "log", "pallet-transaction-payment", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "polkadot-parachain", "scale-info", "sp-arithmetic", @@ -17279,7 +17331,7 @@ dependencies = [ "pallet-message-queue", "parachain-info", "parachains-common", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "paste", "polkadot-primitives", "polkadot-runtime-parachains", @@ -17296,14 +17348,14 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "environmental", "frame-benchmarking", "frame-support", "impl-trait-for-tuples", "log", - "parity-scale-codec 3.6.4", + "parity-scale-codec", "sp-arithmetic", "sp-core", "sp-io", @@ -17316,7 +17368,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.9.43" -source = "git+https://github.com/paritytech/polkadot?branch=master#4b7822adeb666ad33539c7ecf1e4518d04b3a90c" +source = "git+https://github.com/paritytech/polkadot?branch=master#ea027a8e3722346b5e29587c2b5370f455c34b90" dependencies = [ "Inflector", "proc-macro2", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 4f5018e8d3d..da2298ec829 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -42,3 +42,7 @@ either = "1.8.1" event-listener = "2.5.3" thiserror = "1.0.38" soketto = "0.7.1" +rand = "0.8.5" +derive_more = "0.99.17" +futures-util = "0.3.28" +pin-project = "1.1.3" diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index cd6952120cb..c623772d72f 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -15,26 +15,22 @@ // along with Cumulus. If not, see . use core::time::Duration; -use futures::{prelude::*, task::Poll}; +use futures::prelude::*; use sc_service::SpawnTaskHandle; -use smoldot::libp2p::{multiaddr::ProtocolRef, websocket, Multiaddr}; +use smoldot::libp2p::{websocket, with_buffers}; use smoldot_light::platform::{ - ConnectError, PlatformConnection, PlatformRef, PlatformSubstreamDirection, ReadBuffer, -}; -use std::{ - collections::VecDeque, - io::IoSlice, - net::{IpAddr, SocketAddr}, - pin::Pin, + Address, ConnectError, ConnectionType, IpAddr, MultiStreamWebRtcConnection, PlatformRef, + SubstreamDirection, }; +use std::{net::SocketAddr, pin::Pin, time::Instant}; use tokio::net::TcpStream; use tokio_util::compat::{Compat, TokioAsyncReadCompatExt}; type CompatTcpStream = Compat; /// Platform implementation for tokio -/// This implementation is a conversion of the implementation for async-std: -/// https://github.com/smol-dot/smoldot/blob/54d88891b1da202b4bf612a150df7b4dbfa03a55/light-base/src/platform/async_std.rs#L40 +/// This implementation is a conversion of the implementation for smol: +/// https://github.com/smol-dot/smoldot/blob/8c577b4a753fe96190f813070564ecc742b91a16/light-base/src/platform/default.rs #[derive(Clone)] pub struct TokioPlatform { spawner: SpawnTaskHandle, @@ -48,16 +44,18 @@ impl TokioPlatform { impl PlatformRef for TokioPlatform { type Delay = future::BoxFuture<'static, ()>; - type Instant = std::time::Instant; + type Instant = Instant; type MultiStream = std::convert::Infallible; type Stream = Stream; - type ConnectFuture = future::BoxFuture< + type StreamConnectFuture = future::BoxFuture<'static, Result>; + type MultiStreamConnectFuture = future::BoxFuture< 'static, - Result, ConnectError>, + Result, ConnectError>, >; + type ReadWriteAccess<'a> = with_buffers::ReadWriteAccess<'a>; type StreamUpdateFuture<'a> = future::BoxFuture<'a, ()>; - type NextSubstreamFuture<'a> = - future::Pending>; + type StreamErrorRef<'a> = &'a std::io::Error; + type NextSubstreamFuture<'a> = future::Pending>; fn now_from_unix_epoch(&self) -> Duration { // Intentionally panic if the time is configured earlier than the UNIX EPOCH. @@ -65,7 +63,11 @@ impl PlatformRef for TokioPlatform { } fn now(&self) -> Self::Instant { - std::time::Instant::now() + Instant::now() + } + + fn fill_random_bytes(&self, buffer: &mut [u8]) { + rand::RngCore::fill_bytes(&mut rand::thread_rng(), buffer); } fn sleep(&self, duration: Duration) -> Self::Delay { @@ -73,79 +75,55 @@ impl PlatformRef for TokioPlatform { } fn sleep_until(&self, when: Self::Instant) -> Self::Delay { - let duration = when.saturating_duration_since(std::time::Instant::now()); + let duration = when.saturating_duration_since(Instant::now()); self.sleep(duration) } - fn connect(&self, multiaddr: &str) -> Self::ConnectFuture { - // We simply copy the address to own it. We could be more zero-cost here, but doing so - // would considerably complicate the implementation. - let multiaddr = multiaddr.to_owned(); - - Box::pin(async move { - let addr = multiaddr.parse::().map_err(|_| ConnectError { - is_bad_addr: true, - message: "Failed to parse address".to_string(), - })?; - - let mut iter = addr.iter().fuse(); - let proto1 = iter.next().ok_or(ConnectError { - is_bad_addr: true, - message: "Unknown protocols combination".to_string(), - })?; - let proto2 = iter.next().ok_or(ConnectError { - is_bad_addr: true, - message: "Unknown protocols combination".to_string(), - })?; - let proto3 = iter.next(); - - if iter.next().is_some() { - return Err(ConnectError { - is_bad_addr: true, - message: "Unknown protocols combination".to_string(), - }) - } - - // TODO: doesn't support WebSocket secure connections - - // Ensure ahead of time that the multiaddress is supported. - let (addr, host_if_websocket) = match (&proto1, &proto2, &proto3) { - (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), None) => - (either::Left(SocketAddr::new(IpAddr::V4((*ip).into()), *port)), None), - (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), None) => - (either::Left(SocketAddr::new(IpAddr::V6((*ip).into()), *port)), None), - (ProtocolRef::Ip4(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { - let addr = SocketAddr::new(IpAddr::V4((*ip).into()), *port); - (either::Left(addr), Some(addr.to_string())) - }, - (ProtocolRef::Ip6(ip), ProtocolRef::Tcp(port), Some(ProtocolRef::Ws)) => { - let addr = SocketAddr::new(IpAddr::V6((*ip).into()), *port); - (either::Left(addr), Some(addr.to_string())) - }, - - // TODO: we don't care about the differences between Dns, Dns4, and Dns6 - ( - ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), - ProtocolRef::Tcp(port), - None, - ) => (either::Right((addr.to_string(), *port)), None), - ( - ProtocolRef::Dns(addr) | ProtocolRef::Dns4(addr) | ProtocolRef::Dns6(addr), - ProtocolRef::Tcp(port), - Some(ProtocolRef::Ws), - ) => (either::Right((addr.to_string(), *port)), Some(format!("{}:{}", addr, *port))), + fn supports_connection_type(&self, connection_type: ConnectionType) -> bool { + matches!( + connection_type, + ConnectionType::TcpIpv4 | + ConnectionType::TcpIpv6 | + ConnectionType::TcpDns | + ConnectionType::WebSocketIpv4 { .. } | + ConnectionType::WebSocketIpv6 { .. } | + ConnectionType::WebSocketDns { secure: false, .. } + ) + } + + fn connect_stream(&self, multiaddr: Address) -> Self::StreamConnectFuture { + let (tcp_socket_addr, host_if_websocket): ( + either::Either, + Option, + ) = match multiaddr { + Address::TcpDns { hostname, port } => + (either::Right((hostname.to_string(), port)), None), + Address::TcpIp { ip: IpAddr::V4(ip), port } => + (either::Left(SocketAddr::from((ip, port))), None), + Address::TcpIp { ip: IpAddr::V6(ip), port } => + (either::Left(SocketAddr::from((ip, port))), None), + Address::WebSocketDns { hostname, port, secure: false } => ( + either::Right((hostname.to_string(), port)), + Some(format!("{}:{}", hostname, port)), + ), + Address::WebSocketIp { ip: IpAddr::V4(ip), port } => { + let addr = SocketAddr::from((ip, port)); + (either::Left(addr), Some(addr.to_string())) + }, + Address::WebSocketIp { ip: IpAddr::V6(ip), port } => { + let addr = SocketAddr::from((ip, port)); + (either::Left(addr), Some(addr.to_string())) + }, - _ => - return Err(ConnectError { - is_bad_addr: true, - message: "Unknown protocols combination".to_string(), - }), - }; + // The API user of the `PlatformRef` trait is never supposed to open connections of + // a type that isn't supported. + _ => unreachable!(), + }; - let tcp_socket = match addr { - either::Left(socket_addr) => tokio::net::TcpStream::connect(socket_addr).await, - either::Right((dns, port)) => - tokio::net::TcpStream::connect((&dns[..], port)).await, + Box::pin(async move { + let tcp_socket = match tcp_socket_addr { + either::Left(socket_addr) => TcpStream::connect(socket_addr).await, + either::Right((dns, port)) => TcpStream::connect((&dns[..], port)).await, }; if let Ok(tcp_socket) = &tcp_socket { @@ -162,35 +140,20 @@ impl PlatformRef for TokioPlatform { .await .map_err(|err| ConnectError { message: format!("Failed to negotiate WebSocket: {err}"), - is_bad_addr: false, })?, ), (Ok(tcp_socket), None) => future::Either::Left(tcp_socket.compat()), (Err(err), _) => - return Err(ConnectError { - is_bad_addr: false, - message: format!("Failed to reach peer: {err}"), - }), + return Err(ConnectError { message: format!("Failed to reach peer: {err}") }), }; - Ok(PlatformConnection::SingleStreamMultistreamSelectNoiseYamux(Stream { - socket, - buffers: Some(( - StreamReadBuffer::Open { buffer: vec![0; 16384], cursor: 0..0 }, - StreamWriteBuffer::Open { - buffer: VecDeque::with_capacity(16384), - must_close: false, - must_flush: false, - }, - )), - })) + Ok(Stream(with_buffers::WithBuffers::new(socket))) }) } - fn open_out_substream(&self, c: &mut Self::MultiStream) { + fn open_out_substream(&self, _c: &mut Self::MultiStream) { // This function can only be called with so-called "multi-stream" connections. We never // open such connection. - match *c {} } fn next_substream<'a>(&self, c: &'a mut Self::MultiStream) -> Self::NextSubstreamFuture<'a> { @@ -199,165 +162,6 @@ impl PlatformRef for TokioPlatform { match *c {} } - fn update_stream<'a>(&self, stream: &'a mut Self::Stream) -> Self::StreamUpdateFuture<'a> { - Box::pin(future::poll_fn(|cx| { - let Some((read_buffer, write_buffer)) = stream.buffers.as_mut() else { return Poll::Pending }; - - // Whether the future returned by `update_stream` should return `Ready` or `Pending`. - let mut update_stream_future_ready = false; - - if let StreamReadBuffer::Open { buffer: ref mut buf, ref mut cursor } = read_buffer { - // When reading data from the socket, `poll_read` might return "EOF". In that - // situation, we transition to the `Closed` state, which would discard the data - // currently in the buffer. For this reason, we only try to read if there is no - // data left in the buffer. - if cursor.start == cursor.end { - if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_read(cx, buf) { - update_stream_future_ready = true; - match result { - Err(_) => { - // End the stream. - stream.buffers = None; - return Poll::Ready(()) - }, - Ok(0) => { - // EOF. - *read_buffer = StreamReadBuffer::Closed; - }, - Ok(bytes) => { - *cursor = 0..bytes; - }, - } - } - } - } - - if let StreamWriteBuffer::Open { buffer: ref mut buf, must_flush, must_close } = - write_buffer - { - while !buf.is_empty() { - let write_queue_slices = buf.as_slices(); - if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_write_vectored( - cx, - &[IoSlice::new(write_queue_slices.0), IoSlice::new(write_queue_slices.1)], - ) { - if !*must_close { - // In the situation where the API user wants to close the writing - // side, simply sending the buffered data isn't enough to justify - // making the future ready. - update_stream_future_ready = true; - } - - match result { - Err(_) => { - // End the stream. - stream.buffers = None; - return Poll::Ready(()) - }, - Ok(bytes) => { - *must_flush = true; - for _ in 0..bytes { - buf.pop_front(); - } - }, - } - } else { - break - } - } - - if buf.is_empty() && *must_close { - if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_close(cx) { - update_stream_future_ready = true; - match result { - Err(_) => { - // End the stream. - stream.buffers = None; - return Poll::Ready(()) - }, - Ok(()) => { - *write_buffer = StreamWriteBuffer::Closed; - }, - } - } - } else if *must_flush { - if let Poll::Ready(result) = Pin::new(&mut stream.socket).poll_flush(cx) { - update_stream_future_ready = true; - match result { - Err(_) => { - // End the stream. - stream.buffers = None; - return Poll::Ready(()) - }, - Ok(()) => { - *must_flush = false; - }, - } - } - } - } - - if update_stream_future_ready { - Poll::Ready(()) - } else { - Poll::Pending - } - })) - } - - fn read_buffer<'a>(&self, stream: &'a mut Self::Stream) -> ReadBuffer<'a> { - match stream.buffers.as_ref().map(|(r, _)| r) { - None => ReadBuffer::Reset, - Some(StreamReadBuffer::Closed) => ReadBuffer::Closed, - Some(StreamReadBuffer::Open { buffer, cursor }) => - ReadBuffer::Open(&buffer[cursor.clone()]), - } - } - - fn advance_read_cursor(&self, stream: &mut Self::Stream, extra_bytes: usize) { - let Some(StreamReadBuffer::Open { ref mut cursor, .. }) = - stream.buffers.as_mut().map(|(r, _)| r) - else { - assert_eq!(extra_bytes, 0); - return - }; - - assert!(cursor.start + extra_bytes <= cursor.end); - cursor.start += extra_bytes; - } - - fn writable_bytes(&self, stream: &mut Self::Stream) -> usize { - let Some(StreamWriteBuffer::Open { ref mut buffer, must_close: false, ..}) = - stream.buffers.as_mut().map(|(_, w)| w) else { return 0 }; - buffer.capacity() - buffer.len() - } - - fn send(&self, stream: &mut Self::Stream, data: &[u8]) { - debug_assert!(!data.is_empty()); - - // Because `writable_bytes` returns 0 if the writing side is closed, and because `data` - // must always have a size inferior or equal to `writable_bytes`, we know for sure that - // the writing side isn't closed. - let Some(StreamWriteBuffer::Open { ref mut buffer, .. } )= - stream.buffers.as_mut().map(|(_, w)| w) else { panic!() }; - buffer.reserve(data.len()); - buffer.extend(data.iter().copied()); - } - - fn close_send(&self, stream: &mut Self::Stream) { - // It is not illegal to call this on an already-reset stream. - let Some((_, write_buffer)) = stream.buffers.as_mut() else { return }; - - match write_buffer { - StreamWriteBuffer::Open { must_close: must_close @ false, .. } => *must_close = true, - _ => { - // However, it is illegal to call this on a stream that was already close - // attempted. - panic!() - }, - } - } - fn spawn_task( &self, _: std::borrow::Cow, @@ -373,23 +177,35 @@ impl PlatformRef for TokioPlatform { fn client_version(&self) -> std::borrow::Cow { env!("CARGO_PKG_VERSION").into() } -} -/// Implementation detail of [`AsyncStdTcpWebSocket`]. -pub struct Stream { - socket: TcpOrWs, - /// Read and write buffers of the connection, or `None` if the socket has been reset. - buffers: Option<(StreamReadBuffer, StreamWriteBuffer)>, -} + fn connect_multistream( + &self, + _address: smoldot_light::platform::MultiStreamAddress, + ) -> Self::MultiStreamConnectFuture { + unimplemented!("Multistream not supported!") + } -enum StreamReadBuffer { - Open { buffer: Vec, cursor: std::ops::Range }, - Closed, -} + fn read_write_access<'a>( + &self, + stream: Pin<&'a mut Self::Stream>, + ) -> Result, &'a std::io::Error> { + let stream = stream.project(); + stream.0.read_write_access(Instant::now()) + } -enum StreamWriteBuffer { - Open { buffer: VecDeque, must_flush: bool, must_close: bool }, - Closed, + fn wait_read_write_again<'a>( + &self, + stream: Pin<&'a mut Self::Stream>, + ) -> Self::StreamUpdateFuture<'a> { + let stream = stream.project(); + Box::pin(stream.0.wait_read_write_again(|when| async move { + tokio::time::sleep_until(when.into()).await; + })) + } } type TcpOrWs = future::Either>; + +/// Implementation detail of [`TokioPlatform`]. +#[pin_project::pin_project] +pub struct Stream(#[pin] with_buffers::WithBuffers); From 145d2c54223f8aa6da2b457edfe275301db64673 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 10:08:46 +0200 Subject: [PATCH 39/44] Clean up dependencies --- Cargo.lock | 8 -------- client/relay-chain-minimal-node/Cargo.toml | 3 --- client/relay-chain-rpc-interface/Cargo.toml | 5 ----- 3 files changed, 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 37c9f69c504..a3b404582b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3475,18 +3475,15 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sc-authority-discovery", - "sc-client-api", "sc-network", "sc-network-common", "sc-service", "sc-tracing", "sc-utils", "sp-api", - "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-runtime", - "tokio", "tracing", ] @@ -3497,16 +3494,12 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "derive_more", "either", - "event-listener", "futures", "futures-timer", - "futures-util", "jsonrpsee", "lru 0.11.0", "parity-scale-codec", - "parking_lot 0.12.1", "pin-project", "polkadot-overseer", "rand 0.8.5", @@ -3517,7 +3510,6 @@ dependencies = [ "serde_json", "smoldot", "smoldot-light", - "soketto", "sp-api", "sp-authority-discovery", "sp-consensus-babe", diff --git a/client/relay-chain-minimal-node/Cargo.toml b/client/relay-chain-minimal-node/Cargo.toml index 897a464137b..83b8832dee7 100644 --- a/client/relay-chain-minimal-node/Cargo.toml +++ b/client/relay-chain-minimal-node/Cargo.toml @@ -20,14 +20,12 @@ polkadot-node-core-runtime-api = { git = "https://github.com/paritytech/polkadot # substrate deps sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "master" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "master" } sc-utils = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-api = { git = "https://github.com/paritytech/substrate", branch = "master" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "master" } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" } @@ -42,7 +40,6 @@ lru = "0.11.0" tracing = "0.1.37" async-trait = "0.1.73" futures = "0.3.28" -tokio = { version = "1.32.0", features = ["macros"] } [features] network-protocol-staging = ["polkadot-node-network-protocol/network-protocol-staging"] diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index da2298ec829..be096cd8869 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -37,12 +37,7 @@ serde = "1.0.183" lru = "0.11.0" smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "8c577b4a753fe96190f813070564ecc742b91a1" , default_features = false, features = ["std"]} smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "8c577b4a753fe96190f813070564ecc742b91a1", default_features = false, features = ["std"] } -parking_lot = "0.12.1" either = "1.8.1" -event-listener = "2.5.3" thiserror = "1.0.38" -soketto = "0.7.1" rand = "0.8.5" -derive_more = "0.99.17" -futures-util = "0.3.28" pin-project = "1.1.3" From 4be2a3eea0e724810f147387babca762e6f9f486 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 10:41:28 +0200 Subject: [PATCH 40/44] Use crates.io instead of github for smoldot --- Cargo.lock | 6 ++++-- client/relay-chain-rpc-interface/Cargo.toml | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a3b404582b1..1b145c35b3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13964,7 +13964,8 @@ dependencies = [ [[package]] name = "smoldot" version = "0.11.0" -source = "git+https://github.com/smol-dot/smoldot?rev=8c577b4a753fe96190f813070564ecc742b91a1#8c577b4a753fe96190f813070564ecc742b91a16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" dependencies = [ "arrayvec 0.7.4", "async-lock", @@ -14017,7 +14018,8 @@ dependencies = [ [[package]] name = "smoldot-light" version = "0.9.0" -source = "git+https://github.com/smol-dot/smoldot?rev=8c577b4a753fe96190f813070564ecc742b91a1#8c577b4a753fe96190f813070564ecc742b91a16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" dependencies = [ "async-channel", "async-lock", diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index be096cd8869..9db12a35ac9 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -35,8 +35,8 @@ url = "2.4.0" serde_json = "1.0.105" serde = "1.0.183" lru = "0.11.0" -smoldot = { git = "https://github.com/smol-dot/smoldot", rev = "8c577b4a753fe96190f813070564ecc742b91a1" , default_features = false, features = ["std"]} -smoldot-light = { git = "https://github.com/smol-dot/smoldot", rev = "8c577b4a753fe96190f813070564ecc742b91a1", default_features = false, features = ["std"] } +smoldot = { version = "0.11.0", default_features = false, features = ["std"]} +smoldot-light = { version = "0.9.0", default_features = false, features = ["std"] } either = "1.8.1" thiserror = "1.0.38" rand = "0.8.5" From 0708c6322025351c951874a4cd88bb9fc45c250d Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 13:54:12 +0200 Subject: [PATCH 41/44] Apply suggestions from code review Co-authored-by: Davide Galassi --- README.md | 3 ++- .../relay-chain-rpc-interface/src/reconnecting_ws_client.rs | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8a81c54ba2e..8b38900238a 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,8 @@ polkadot-parachain \ ``` #### Relay Chain Light Client -An internal relay chain light client provides a fast and lightweight approach for connecting to the relay chain network. It provides relay chain notifications and facilitates runtime calls. +An internal relay chain light client provides a fast and lightweight approach for connecting to the relay chain network. +It provides relay chain notifications and facilitates runtime calls. To specify which chain the light client should connect to, users need to supply a relay chain chain-spec as part of the relay chain arguments. diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index 3a6bad03999..5add8a96ef1 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -44,7 +44,9 @@ use crate::rpc_client::{distribute_header, RpcDispatcherMessage}; const LOG_TARGET: &str = "reconnecting-websocket-client"; -/// Worker that should be used in combination with [`RelayChainRpcClient`]. Must be polled to distribute header notifications to listeners. +/// Worker that should be used in combination with [`RelayChainRpcClient`]. +/// +/// Must be polled to distribute header notifications to listeners. pub struct ReconnectingWebsocketWorker { ws_urls: Vec, /// Communication channel with the RPC client From e58e322eb2f82f5ca85beead359cd2ebd1de5a28 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 13:55:58 +0200 Subject: [PATCH 42/44] Docs --- README.md | 4 ++-- client/relay-chain-rpc-interface/src/tokio_platform.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8b38900238a..4ceb9ff0910 100644 --- a/README.md +++ b/README.md @@ -43,10 +43,10 @@ You may run `polkadot-parachain` locally after building it or using one of the c ### Relay Chain Interaction To operate a parachain node, a connection to the corresponding relay chain is necessary. This can be -achieved in one of two ways: +achieved in one of three ways: 1. Run a full relay chain node within the parachain node (default) 2. Connect to an external relay chain node via WebSocket RPC -2. Run a light client for the relay chain +3. Run a light client for the relay chain #### In-process Relay Chain Node If an external relay chain node is not specified (default behavior), then a full relay chain node is diff --git a/client/relay-chain-rpc-interface/src/tokio_platform.rs b/client/relay-chain-rpc-interface/src/tokio_platform.rs index c623772d72f..7b8c69645b6 100644 --- a/client/relay-chain-rpc-interface/src/tokio_platform.rs +++ b/client/relay-chain-rpc-interface/src/tokio_platform.rs @@ -29,7 +29,7 @@ use tokio_util::compat::{Compat, TokioAsyncReadCompatExt}; type CompatTcpStream = Compat; /// Platform implementation for tokio -/// This implementation is a conversion of the implementation for smol: +/// This implementation is a port of the implementation for smol: /// https://github.com/smol-dot/smoldot/blob/8c577b4a753fe96190f813070564ecc742b91a16/light-base/src/platform/default.rs #[derive(Clone)] pub struct TokioPlatform { From 0bbc284c1757ce4dce47a5b506fe298ff996aa02 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 14:24:04 +0200 Subject: [PATCH 43/44] Improve docs --- .../src/light_client_worker.rs | 34 ++++++++++++------- .../src/rpc_client.rs | 14 ++++++++ zombienet/tests/0002-pov_recovery.toml | 14 ++++---- zombienet/tests/0007-full_node_warp_sync.toml | 10 ++++++ 4 files changed, 52 insertions(+), 20 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/light_client_worker.rs b/client/relay-chain-rpc-interface/src/light_client_worker.rs index f3bd58d1571..b6773870512 100644 --- a/client/relay-chain-rpc-interface/src/light_client_worker.rs +++ b/client/relay-chain-rpc-interface/src/light_client_worker.rs @@ -95,7 +95,7 @@ pub async fn build_smoldot_client( chain_spec: &str, ) -> RelayChainResult<(SmoldotClient, ChainId, JsonRpcResponses)> { let platform = TokioPlatform::new(spawner); - let mut client: SmoldotClient = SmoldotClient::new(platform); + let mut client = SmoldotClient::new(platform); // Ask the client to connect to a chain. let smoldot_light::AddChainSuccess { chain_id, json_rpc_responses } = client @@ -148,6 +148,7 @@ fn handle_notification( impl LightClientRpcWorker { /// Create new light-client worker. + /// /// Returns the worker itself and a channel to send messages. pub fn new( smoldot_client: smoldot_light::Client, @@ -174,7 +175,9 @@ impl LightClientRpcWorker { (worker, tx) } - // Main worker loop. Does the following: + // Main worker loop. + // + // Does the following: // 1. Initialize notification streams // 2. Enter main loop // a. On listening request, register listener for respective notification stream @@ -190,26 +193,29 @@ impl LightClientRpcWorker { RelayHeader, SignedBlock, >>::subscribe_new_heads(&self.smoldot_client) - .await else { + .await + else { tracing::error!( target: LOG_TARGET, "Unable to initialize new heads subscription" ); - return; + return }; - let Ok(mut finalized_head_subscription) = , - >>::subscribe_finalized_heads(&self.smoldot_client) - .await else { + let Ok(mut finalized_head_subscription) = + , + >>::subscribe_finalized_heads(&self.smoldot_client) + .await + else { tracing::error!( target: LOG_TARGET, "Unable to initialize finalized heads subscription" ); - return; + return }; let Ok(mut all_head_subscription) = , - >>::subscribe_all_heads(&self.smoldot_client).await else { + >>::subscribe_all_heads(&self.smoldot_client) + .await + else { tracing::error!( target: LOG_TARGET, "Unable to initialize all heads subscription" diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index 52c56427ee6..f297d2f3044 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -109,9 +109,23 @@ pub async fn create_client_and_start_light_client_worker( /// Messages for communication between [`RpcFrontend`] and the RPC workers. #[derive(Debug)] pub enum RpcDispatcherMessage { + /// Register new listener for the best headers stream. Contains a sender which will be used + /// to send incoming headers. RegisterBestHeadListener(Sender), + + /// Register new listener for the import headers stream. Contains a sender which will be used + /// to send incoming headers. RegisterImportListener(Sender), + + /// Register new listener for the finalized headers stream. Contains a sender which will be + /// used to send incoming headers. RegisterFinalizationListener(Sender), + + /// Register new listener for the finalized headers stream. + /// Contains the following: + /// - [`String`] representing the RPC method to be called + /// - [`ArrayParams`] for the parameters to the RPC call + /// - [`OneshotSender`] for the return value of the request Request(String, ArrayParams, OneshotSender>), } diff --git a/zombienet/tests/0002-pov_recovery.toml b/zombienet/tests/0002-pov_recovery.toml index 4128086b73c..7c74a74a750 100644 --- a/zombienet/tests/0002-pov_recovery.toml +++ b/zombienet/tests/0002-pov_recovery.toml @@ -33,8 +33,8 @@ add_to_genesis = false command = "test-parachain" args = ["--disable-block-announcements"] - # run alice as a parachain collator who does not produce blocks - # alice is a bootnode for bob and charlie + # run 'alice' as a parachain collator who does not produce blocks + # 'alice' is a bootnode for 'bob' and 'charlie' [[parachains.collators]] name = "alice" validator = true # collator @@ -42,7 +42,7 @@ add_to_genesis = false command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] - # run eve as a parachain full node + # run 'charlie' as a parachain full node [[parachains.collators]] name = "charlie" validator = false # full node @@ -50,7 +50,7 @@ add_to_genesis = false command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}","--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] - # we fail recovery for eve from time to time to test retries + # we fail recovery for 'eve' from time to time to test retries [[parachains.collators]] name = "eve" validator = true # collator @@ -58,7 +58,7 @@ add_to_genesis = false command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--fail-pov-recovery", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] - # run one as a RPC collator who does not produce blocks + # run 'one' as a RPC collator who does not produce blocks [[parachains.collators]] name = "one" validator = true # collator @@ -66,7 +66,7 @@ add_to_genesis = false command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] - # run two as a RPC parachain full node + # run 'two' as a RPC parachain full node [[parachains.collators]] name = "two" validator = false # full node @@ -74,7 +74,7 @@ add_to_genesis = false command = "test-parachain" args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] - # run two nodes with light client + # run 'three' with light client [[parachains.collators]] name = "three" validator = false # full node diff --git a/zombienet/tests/0007-full_node_warp_sync.toml b/zombienet/tests/0007-full_node_warp_sync.toml index b3076d9ef76..937c0b83683 100644 --- a/zombienet/tests/0007-full_node_warp_sync.toml +++ b/zombienet/tests/0007-full_node_warp_sync.toml @@ -31,6 +31,7 @@ cumulus_based = true chain_spec_path = "zombienet/tests/0007-warp-sync-parachain-spec.json" add_to_genesis = false + # Run 'dave' as parachain collator. [[parachains.collators]] name = "dave" validator = true @@ -39,6 +40,7 @@ add_to_genesis = false args = ["-lparachain=debug"] db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/parachain-587c1ed24ddd7de05c237cf7c158fff53b8f5b26.tgz" + # Run 'eve' as parachain collator. [[parachains.collators]] name = "eve" validator = true @@ -47,6 +49,7 @@ add_to_genesis = false args = ["-lparachain=debug"] db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/parachain-587c1ed24ddd7de05c237cf7c158fff53b8f5b26.tgz" + # Run 'ferdie' as parachain collator. [[parachains.collators]] name = "ferdie" validator = true @@ -55,6 +58,7 @@ add_to_genesis = false args = ["-lparachain=debug"] db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/parachain-587c1ed24ddd7de05c237cf7c158fff53b8f5b26.tgz" + # Run 'one' as parachain full node. Parachain and relay chain are warpsyncing. [[parachains.collators]] name = "one" validator = false @@ -62,6 +66,8 @@ add_to_genesis = false command = "test-parachain" args = ["-lsync=debug","--sync warp","--","--sync warp"] + # Run 'two' as parachain full node. Parachain is warpsyncing and the node + # uses relay chain node 'alice' as external RPC node. [[parachains.collators]] name = "two" validator = false @@ -69,6 +75,8 @@ add_to_genesis = false command = "test-parachain" args = ["-lsync=debug","--sync warp","--relay-chain-rpc-urls {{'alice'|zombie('wsUri')}}"] + # Run 'three' as parachain full node. Parachain is warpsyncing and the node + # uses relay chain node 'dave' as external RPC node. [[parachains.collators]] name = "three" validator = false @@ -76,6 +84,8 @@ add_to_genesis = false command = "test-parachain" args = ["-lsync=debug","--sync warp","--relay-chain-rpc-urls {{'dave'|zombie('wsUri')}}"] + # Run 'four' as parachain full node. Parachain is warpsyncing and the node + # uses an internal relay chain light client. [[parachains.collators]] name = "four" validator = false From 3e481e6ded1ab5e62261a0a1e4c307c599d92bda Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Tue, 22 Aug 2023 14:53:52 +0200 Subject: [PATCH 44/44] Remove `RpcFrontend` --- .../src/rpc_client.rs | 192 +++++++----------- 1 file changed, 75 insertions(+), 117 deletions(-) diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index f297d2f3044..b079294b784 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -59,11 +59,27 @@ pub use url::Url; const LOG_TARGET: &str = "relay-chain-rpc-client"; const NOTIFICATION_CHANNEL_SIZE_LIMIT: usize = 20; -/// Client that maps RPC methods and deserializes results -#[derive(Clone)] -pub struct RelayChainRpcClient { - /// Websocket client to make calls - ws_client: RpcFrontend, +/// Messages for communication between [`RelayChainRpcClient`] and the RPC workers. +#[derive(Debug)] +pub enum RpcDispatcherMessage { + /// Register new listener for the best headers stream. Contains a sender which will be used + /// to send incoming headers. + RegisterBestHeadListener(Sender), + + /// Register new listener for the import headers stream. Contains a sender which will be used + /// to send incoming headers. + RegisterImportListener(Sender), + + /// Register new listener for the finalized headers stream. Contains a sender which will be + /// used to send incoming headers. + RegisterFinalizationListener(Sender), + + /// Register new listener for the finalized headers stream. + /// Contains the following: + /// - [`String`] representing the RPC method to be called + /// - [`ArrayParams`] for the parameters to the RPC call + /// - [`OneshotSender`] for the return value of the request + Request(String, ArrayParams, OneshotSender>), } /// Entry point to create [`RelayChainRpcClient`] and start a worker that communicates @@ -78,9 +94,7 @@ pub async fn create_client_and_start_worker( .spawn_essential_handle() .spawn("relay-chain-rpc-worker", None, worker.run()); - let ws_client = RpcFrontend::new(sender); - - let client = RelayChainRpcClient::new(ws_client); + let client = RelayChainRpcClient::new(sender); Ok(client) } @@ -99,118 +113,25 @@ pub async fn create_client_and_start_light_client_worker( .spawn_essential_handle() .spawn("relay-light-client-worker", None, worker.run()); - let rpc_frontend = RpcFrontend::new(sender); - - let client = RelayChainRpcClient::new(rpc_frontend); + let client = RelayChainRpcClient::new(sender); Ok(client) } -/// Messages for communication between [`RpcFrontend`] and the RPC workers. -#[derive(Debug)] -pub enum RpcDispatcherMessage { - /// Register new listener for the best headers stream. Contains a sender which will be used - /// to send incoming headers. - RegisterBestHeadListener(Sender), - - /// Register new listener for the import headers stream. Contains a sender which will be used - /// to send incoming headers. - RegisterImportListener(Sender), - - /// Register new listener for the finalized headers stream. Contains a sender which will be - /// used to send incoming headers. - RegisterFinalizationListener(Sender), - - /// Register new listener for the finalized headers stream. - /// Contains the following: - /// - [`String`] representing the RPC method to be called - /// - [`ArrayParams`] for the parameters to the RPC call - /// - [`OneshotSender`] for the return value of the request - Request(String, ArrayParams, OneshotSender>), -} - -/// Frontend for performing websocket requests. -/// Requests and stream requests are forwarded to a processing worker. -#[derive(Debug, Clone)] -pub struct RpcFrontend { - /// Channel to communicate with the RPC worker - to_worker_channel: TokioSender, -} - -impl RpcFrontend { - /// Create a new websocket client frontend. - pub fn new(sender: TokioSender) -> Self { - tracing::debug!(target: LOG_TARGET, "Instantiating reconnecting websocket client"); - Self { to_worker_channel: sender } - } +/// Client that maps RPC methods and deserializes results +#[derive(Clone)] +pub struct RelayChainRpcClient { + /// Sender to send messages to the worker. + worker_channel: TokioSender, } -impl RpcFrontend { - /// Perform a request via websocket connection. - pub async fn request(&self, method: &str, params: ArrayParams) -> Result - where - R: serde::de::DeserializeOwned, - { - let (tx, rx) = futures::channel::oneshot::channel(); - - let message = RpcDispatcherMessage::Request(method.into(), params, tx); - self.to_worker_channel.send(message).await.map_err(|err| { - RelayChainError::WorkerCommunicationError(format!( - "Unable to send message to RPC worker: {}", - err - )) - })?; - - let value = rx.await.map_err(|err| { - RelayChainError::WorkerCommunicationError(format!( - "Unexpected channel close on RPC worker side: {}", - err - )) - })??; - - serde_json::from_value(value) - .map_err(|_| RelayChainError::GenericError("Unable to deserialize value".to_string())) - } - - /// Get a stream of new best relay chain headers - pub fn get_best_heads_stream(&self) -> Result, RelayChainError> { - let (tx, rx) = - futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); - self.send_register_message_to_worker(RpcDispatcherMessage::RegisterBestHeadListener(tx))?; - Ok(rx) - } - - /// Get a stream of finalized relay chain headers - pub fn get_finalized_heads_stream(&self) -> Result, RelayChainError> { - let (tx, rx) = - futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); - self.send_register_message_to_worker(RpcDispatcherMessage::RegisterFinalizationListener( - tx, - ))?; - Ok(rx) - } - - /// Get a stream of all imported relay chain headers - pub fn get_imported_heads_stream(&self) -> Result, RelayChainError> { - let (tx, rx) = - futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); - self.send_register_message_to_worker(RpcDispatcherMessage::RegisterImportListener(tx))?; - Ok(rx) - } - - fn send_register_message_to_worker( - &self, - message: RpcDispatcherMessage, - ) -> Result<(), RelayChainError> { - self.to_worker_channel - .try_send(message) - .map_err(|e| RelayChainError::WorkerCommunicationError(e.to_string())) - } -} impl RelayChainRpcClient { /// Initialize new RPC Client. - pub(crate) fn new(ws_client: RpcFrontend) -> Self { - RelayChainRpcClient { ws_client } + /// + /// This client expects a channel connected to a worker that processes + /// requests sent via this channel. + pub(crate) fn new(worker_channel: TokioSender) -> Self { + RelayChainRpcClient { worker_channel } } /// Call a call to `state_call` rpc method. @@ -269,8 +190,25 @@ impl RelayChainRpcClient { R: DeserializeOwned + std::fmt::Debug, OR: Fn(&RelayChainError), { - self.ws_client.request(method, params).await.map_err(|err| { - trace_error(&err); + let (tx, rx) = futures::channel::oneshot::channel(); + + let message = RpcDispatcherMessage::Request(method.into(), params, tx); + self.worker_channel.send(message).await.map_err(|err| { + RelayChainError::WorkerCommunicationError(format!( + "Unable to send message to RPC worker: {}", + err + )) + })?; + + let value = rx.await.map_err(|err| { + RelayChainError::WorkerCommunicationError(format!( + "Unexpected channel close on RPC worker side: {}", + err + )) + })??; + + serde_json::from_value(value).map_err(|_| { + trace_error(&RelayChainError::GenericError("Unable to deserialize value".to_string())); RelayChainError::RpcCallError(method.to_string()) }) } @@ -677,19 +615,39 @@ impl RelayChainRpcClient { .await } + fn send_register_message_to_worker( + &self, + message: RpcDispatcherMessage, + ) -> Result<(), RelayChainError> { + self.worker_channel + .try_send(message) + .map_err(|e| RelayChainError::WorkerCommunicationError(e.to_string())) + } + /// Get a stream of all imported relay chain headers pub fn get_imported_heads_stream(&self) -> Result, RelayChainError> { - self.ws_client.get_imported_heads_stream() + let (tx, rx) = + futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); + self.send_register_message_to_worker(RpcDispatcherMessage::RegisterImportListener(tx))?; + Ok(rx) } /// Get a stream of new best relay chain headers pub fn get_best_heads_stream(&self) -> Result, RelayChainError> { - self.ws_client.get_best_heads_stream() + let (tx, rx) = + futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); + self.send_register_message_to_worker(RpcDispatcherMessage::RegisterBestHeadListener(tx))?; + Ok(rx) } /// Get a stream of finalized relay chain headers pub fn get_finalized_heads_stream(&self) -> Result, RelayChainError> { - self.ws_client.get_finalized_heads_stream() + let (tx, rx) = + futures::channel::mpsc::channel::(NOTIFICATION_CHANNEL_SIZE_LIMIT); + self.send_register_message_to_worker(RpcDispatcherMessage::RegisterFinalizationListener( + tx, + ))?; + Ok(rx) } }