diff --git a/Cargo.lock b/Cargo.lock index 264d7f6a1..d1b22b820 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -83,7 +83,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", ] @@ -96,10 +96,10 @@ checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if 1.0.0", "const-random", - "getrandom", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -376,7 +376,7 @@ dependencies = [ "alloy-genesis", "alloy-primitives 0.8.20", "k256", - "rand", + "rand 0.8.5", "serde_json", "tempfile", "thiserror 2.0.11", @@ -398,7 +398,7 @@ dependencies = [ "hex-literal", "itoa", "proptest", - "rand", + "rand 0.8.5", "ruint", "serde", "tiny-keccak", @@ -423,7 +423,7 @@ dependencies = [ "keccak-asm", "paste", "proptest", - "rand", + "rand 0.8.5", "ruint", "rustc-hash 2.1.0", "serde", @@ -695,7 +695,7 @@ dependencies = [ "coins-bip32 0.12.0", "coins-bip39 0.12.0", "k256", - "rand", + "rand 0.8.5", "thiserror 2.0.11", ] @@ -1461,7 +1461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -1471,7 +1471,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "rayon", ] @@ -1482,7 +1482,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -1753,6 +1753,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "async-signal" version = "0.2.10" @@ -3497,7 +3508,7 @@ dependencies = [ "hmac 0.12.1", "once_cell", "pbkdf2 0.12.2", - "rand", + "rand 0.8.5", "sha2 0.10.8", "thiserror 1.0.69", ] @@ -3513,7 +3524,7 @@ dependencies = [ "hmac 0.12.1", "once_cell", "pbkdf2 0.12.2", - "rand", + "rand 0.8.5", "sha2 0.10.8", "thiserror 1.0.69", ] @@ -3567,7 +3578,7 @@ dependencies = [ "byteorder", "cfg-if 1.0.0", "const-hex", - "getrandom", + "getrandom 0.2.15", "hidapi-rusb", "js-sys", "log", @@ -3695,7 +3706,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom", + "getrandom 0.2.15", "once_cell", "tiny-keccak", ] @@ -3893,6 +3904,15 @@ dependencies = [ "chrono", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -3940,7 +3960,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -3952,7 +3972,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "typenum", ] @@ -4792,7 +4812,7 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core", + "rand_core 0.6.4", "serde", "sha2 0.10.8", "subtle", @@ -4811,7 +4831,7 @@ dependencies = [ "hashbrown 0.14.5", "hex", "pkcs8", - "rand_core", + "rand_core 0.6.4", "serde", "sha2 0.10.8", "zeroize", @@ -5160,7 +5180,7 @@ dependencies = [ "group", "pem-rfc7468", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "serdect", "subtle", @@ -5208,7 +5228,7 @@ dependencies = [ "hex", "k256", "log", - "rand", + "rand 0.8.5", "rlp", "serde", "sha3", @@ -5394,7 +5414,7 @@ dependencies = [ "hex", "hmac 0.12.1", "pbkdf2 0.11.0", - "rand", + "rand 0.8.5", "scrypt 0.10.0", "serde", "serde_json", @@ -5567,7 +5587,7 @@ dependencies = [ "num_enum", "once_cell", "open-fastrlp", - "rand", + "rand 0.8.5", "rlp", "serde", "serde_json", @@ -5672,7 +5692,7 @@ dependencies = [ "elliptic-curve", "eth-keystore", "ethers-core", - "rand", + "rand 0.8.5", "sha2 0.10.8", "thiserror 1.0.69", "tracing", @@ -5797,7 +5817,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -5872,7 +5892,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -6386,17 +6406,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-ticker" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9763058047f713632a52e916cc7f6a4b3fc6e9fc1ff8c5b1dc49e5a89041682e" -dependencies = [ - "futures", - "futures-timer", - "instant", -] - [[package]] name = "futures-timer" version = "3.0.3" @@ -7151,7 +7160,7 @@ dependencies = [ "gadget-runner-core", "gadget-std", "gadget-utils", - "rand", + "rand 0.8.5", "thiserror 2.0.11", ] @@ -7192,7 +7201,7 @@ dependencies = [ "async-trait", "colored", "num-traits", - "rand", + "rand 0.8.5", "rayon", "thiserror 2.0.11", "tokio", @@ -7343,6 +7352,19 @@ dependencies = [ "url", ] +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "log", + "rustversion", + "windows 0.58.0", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -7363,18 +7385,30 @@ dependencies = [ "cfg-if 1.0.0", "js-sys", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + [[package]] name = "getrandom_or_panic" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand", - "rand_core", + "rand 0.8.5", + "rand_core 0.6.4", ] [[package]] @@ -7718,7 +7752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -7825,6 +7859,15 @@ dependencies = [ "fxhash", ] +[[package]] +name = "hashlink" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +dependencies = [ + "hashbrown 0.14.5", +] + [[package]] name = "heck" version = "0.4.1" @@ -7887,10 +7930,11 @@ checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" [[package]] name = "hickory-proto" -version = "0.24.2" +version = "0.25.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447afdcdb8afb9d0a852af6dc65d9b285ce720ed7a59e42a8bf2e931c67bc1b5" +checksum = "1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2" dependencies = [ + "async-recursion", "async-trait", "cfg-if 1.0.0", "data-encoding", @@ -7901,9 +7945,9 @@ dependencies = [ "idna", "ipnet", "once_cell", - "rand", + "rand 0.9.0", "socket2", - "thiserror 1.0.69", + "thiserror 2.0.11", "tinyvec", "tokio", "tracing", @@ -7912,21 +7956,21 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.2" +version = "0.25.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" +checksum = "5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887" dependencies = [ "cfg-if 1.0.0", "futures-util", "hickory-proto", "ipconfig", - "lru-cache", + "moka", "once_cell", "parking_lot 0.12.3", - "rand", + "rand 0.9.0", "resolv-conf", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -8449,18 +8493,20 @@ dependencies = [ [[package]] name = "igd-next" -version = "0.14.3" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" +checksum = "76b0d7d4541def58a37bf8efc559683f21edce7c82f0d866c93ac21f7e098f93" dependencies = [ "async-trait", "attohttpc", "bytes", "futures", - "http 0.2.12", - "hyper 0.14.32", + "http 1.2.0", + "http-body-util", + "hyper 1.5.2", + "hyper-util", "log", - "rand", + "rand 0.8.5", "tokio", "url", "xmltree", @@ -9194,15 +9240,15 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libp2p" -version = "0.54.1" +version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbe80f9c7e00526cd6b838075b9c171919404a4732cb2fa8ece0a093223bfc4" +checksum = "b72dc443ddd0254cb49a794ed6b6728400ee446a0f7ab4a07d0209ee98de20e9" dependencies = [ "bytes", "either", "futures", "futures-timer", - "getrandom", + "getrandom 0.2.15", "libp2p-allow-block-list", "libp2p-autonat", "libp2p-connection-limits", @@ -9227,30 +9273,28 @@ dependencies = [ "multiaddr", "pin-project 1.1.8", "rw-stream-sink", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "libp2p-allow-block-list" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1027ccf8d70320ed77e984f273bc8ce952f623762cb9bf2d126df73caef8041" +checksum = "38944b7cb981cc93f2f0fb411ff82d0e983bd226fbcc8d559639a3a73236568b" dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "void", ] [[package]] name = "libp2p-autonat" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a083675f189803d0682a2726131628e808144911dad076858bfbe30b13065499" +checksum = "e297bfc6cabb70c6180707f8fa05661b77ecb9cb67e8e8e1c469301358fa21d0" dependencies = [ "async-trait", "asynchronous-codec", - "bytes", "either", "futures", "futures-bounded", @@ -9261,31 +9305,29 @@ dependencies = [ "libp2p-swarm", "quick-protobuf", "quick-protobuf-codec", - "rand", - "rand_core", - "thiserror 1.0.69", + "rand 0.8.5", + "rand_core 0.6.4", + "thiserror 2.0.11", "tracing", - "void", "web-time", ] [[package]] name = "libp2p-connection-limits" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d003540ee8baef0d254f7b6bfd79bac3ddf774662ca0abf69186d517ef82ad8" +checksum = "efe9323175a17caa8a2ed4feaf8a548eeef5e0b72d03840a0eab4bcb0210ce1c" dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "void", ] [[package]] name = "libp2p-core" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a61f26c83ed111104cd820fe9bc3aaabbac5f1652a1d213ed6e900b7918a1298" +checksum = "193c75710ba43f7504ad8f58a62ca0615b1d7e572cb0f1780bc607252c39e9ef" dependencies = [ "either", "fnv", @@ -9299,21 +9341,19 @@ dependencies = [ "parking_lot 0.12.3", "pin-project 1.1.8", "quick-protobuf", - "rand", + "rand 0.8.5", "rw-stream-sink", - "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "unsigned-varint 0.8.0", - "void", "web-time", ] [[package]] name = "libp2p-dcutr" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3236a2e24cbcf2d05b398b003ed920e1e8cedede13784d90fa3961b109647ce0" +checksum = "0a6c2c365b66866da34d06dfe41e001b49b9cfb5cafff6b9c4718eb2da7e35a4" dependencies = [ "asynchronous-codec", "either", @@ -9326,17 +9366,16 @@ dependencies = [ "lru 0.12.5", "quick-protobuf", "quick-protobuf-codec", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", - "void", "web-time", ] [[package]] name = "libp2p-dns" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" +checksum = "1b780a1150214155b0ed1cdf09fbd2e1b0442604f9146a431d1b21d23eef7bd7" dependencies = [ "async-trait", "futures", @@ -9350,10 +9389,11 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.47.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e830fdf24ac8c444c12415903174d506e1e077fbe3875c404a78c5935a8543" +checksum = "d558548fa3b5a8e9b66392f785921e363c57c05dcadfda4db0d41ae82d313e4a" dependencies = [ + "async-channel", "asynchronous-codec", "base64 0.22.1", "byteorder", @@ -9361,8 +9401,9 @@ dependencies = [ "either", "fnv", "futures", - "futures-ticker", - "getrandom", + "futures-timer", + "getrandom 0.2.15", + "hashlink", "hex_fmt", "libp2p-core", "libp2p-identity", @@ -9370,20 +9411,18 @@ dependencies = [ "prometheus-client", "quick-protobuf", "quick-protobuf-codec", - "rand", + "rand 0.8.5", "regex", "sha2 0.10.8", - "smallvec", "tracing", - "void", "web-time", ] [[package]] name = "libp2p-identify" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1711b004a273be4f30202778856368683bd9a83c4c7dcc8f848847606831a4e3" +checksum = "e8c06862544f02d05d62780ff590cc25a75f5c2b9df38ec7a370dcae8bb873cf" dependencies = [ "asynchronous-codec", "either", @@ -9393,13 +9432,11 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "lru 0.12.5", "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", - "void", ] [[package]] @@ -9413,7 +9450,7 @@ dependencies = [ "hkdf", "multihash", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "thiserror 1.0.69", "tracing", @@ -9422,11 +9459,10 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.46.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced237d0bd84bbebb7c2cad4c073160dacb4fe40534963c32ed6d4c6bb7702a3" +checksum = "2bab0466a27ebe955bcbc27328fae5429c5b48c915fd6174931414149802ec23" dependencies = [ - "arrayvec 0.7.6", "asynchronous-codec", "bytes", "either", @@ -9439,42 +9475,39 @@ dependencies = [ "libp2p-swarm", "quick-protobuf", "quick-protobuf-codec", - "rand", + "rand 0.8.5", "sha2 0.10.8", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", - "uint 0.9.5", - "void", + "uint 0.10.0", "web-time", ] [[package]] name = "libp2p-mdns" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" +checksum = "11d0ba095e1175d797540e16b62e7576846b883cb5046d4159086837b36846cc" dependencies = [ - "data-encoding", "futures", "hickory-proto", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "smallvec", "socket2", "tokio", "tracing", - "void", ] [[package]] name = "libp2p-metrics" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ebafa94a717c8442d8db8d3ae5d1c6a15e30f2d347e0cd31d057ca72e42566" +checksum = "2ce58c64292e87af624fcb86465e7dd8342e46a388d71e8fec0ab37ee789630a" dependencies = [ "futures", "libp2p-core", @@ -9493,13 +9526,12 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36b137cb1ae86ee39f8e5d6245a296518912014eaa87427d24e6ff58cfc1b28c" +checksum = "afcc133e0f3cea07acde6eb8a9665cb11b600bd61110b010593a0210b8153b16" dependencies = [ "asynchronous-codec", "bytes", - "curve25519-dalek", "futures", "libp2p-core", "libp2p-identity", @@ -9507,11 +9539,10 @@ dependencies = [ "multihash", "once_cell", "quick-protobuf", - "rand", - "sha2 0.10.8", + "rand 0.8.5", "snow", "static_assertions", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "x25519-dalek", "zeroize", @@ -9519,51 +9550,47 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005a34420359223b974ee344457095f027e51346e992d1e0dcd35173f4cdd422" +checksum = "7b2529993ff22deb2504c0130a58b60fb77f036be555053922db1a0490b5798b" dependencies = [ - "either", "futures", "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "tracing", - "void", "web-time", ] [[package]] name = "libp2p-quic" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46352ac5cd040c70e88e7ff8257a2ae2f891a4076abad2c439584a31c15fd24e" +checksum = "41432a159b00424a0abaa2c80d786cddff81055ac24aa127e0cf375f7858d880" dependencies = [ - "bytes", "futures", "futures-timer", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-tls", - "parking_lot 0.12.3", "quinn", - "rand", + "rand 0.8.5", "ring 0.17.8", "rustls 0.23.21", "socket2", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", "tracing", ] [[package]] name = "libp2p-relay" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10df23d7f5b5adcc129f4a69d6fbd05209e356ccf9e8f4eb10b2692b79c77247" +checksum = "08a41e346681395877118c270cf993f90d57d045fbf0913ca2f07b59ec6062e4" dependencies = [ "asynchronous-codec", "bytes", @@ -9576,41 +9603,37 @@ dependencies = [ "libp2p-swarm", "quick-protobuf", "quick-protobuf-codec", - "rand", + "rand 0.8.5", "static_assertions", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", - "void", "web-time", ] [[package]] name = "libp2p-request-response" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1356c9e376a94a75ae830c42cdaea3d4fe1290ba409a22c809033d1b7dcab0a6" +checksum = "548fe44a80ff275d400f1b26b090d441d83ef73efabbeb6415f4ce37e5aed865" dependencies = [ "async-trait", "cbor4ii", "futures", "futures-bounded", - "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "serde", "smallvec", "tracing", - "void", - "web-time", ] [[package]] name = "libp2p-swarm" -version = "0.45.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7dd6741793d2c1fb2088f67f82cf07261f25272ebe3c0b0c311e0c6b50e851a" +checksum = "803399b4b6f68adb85e63ab573ac568154b193e9a640f03e0f2890eabbcb37f8" dependencies = [ "either", "fnv", @@ -9622,11 +9645,10 @@ dependencies = [ "lru 0.12.5", "multistream-select", "once_cell", - "rand", + "rand 0.8.5", "smallvec", "tokio", "tracing", - "void", "web-time", ] @@ -9644,16 +9666,15 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.42.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad964f312c59dcfcac840acd8c555de8403e295d39edf96f5240048b5fcaa314" +checksum = "65346fb4d36035b23fec4e7be4c320436ba53537ce9b6be1d1db1f70c905cad0" dependencies = [ "futures", "futures-timer", "if-watch", "libc", "libp2p-core", - "libp2p-identity", "socket2", "tokio", "tracing", @@ -9661,9 +9682,9 @@ dependencies = [ [[package]] name = "libp2p-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b23dddc2b9c355f73c1e36eb0c3ae86f7dc964a3715f0731cfad352db4d847" +checksum = "dcaebc1069dea12c5b86a597eaaddae0317c2c2cb9ec99dc94f82fd340f5c78b" dependencies = [ "futures", "futures-rustls", @@ -9673,16 +9694,16 @@ dependencies = [ "ring 0.17.8", "rustls 0.23.21", "rustls-webpki 0.101.7", - "thiserror 1.0.69", + "thiserror 2.0.11", "x509-parser", "yasna", ] [[package]] name = "libp2p-upnp" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01bf2d1b772bd3abca049214a3304615e6a36fa6ffc742bdd1ba774486200b8f" +checksum = "d457b9ecceb66e7199f049926fad447f1f17f040e8d29d690c086b4cab8ed14a" dependencies = [ "futures", "futures-timer", @@ -9691,19 +9712,18 @@ dependencies = [ "libp2p-swarm", "tokio", "tracing", - "void", ] [[package]] name = "libp2p-yamux" -version = "0.46.0" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "788b61c80789dba9760d8c669a5bedb642c8267555c803fabd8396e4ca5c5882" +checksum = "f15df094914eb4af272acf9adaa9e287baa269943f32ea348ba29cfb9bfc60d8" dependencies = [ "either", "futures", "libp2p-core", - "thiserror 1.0.69", + "thiserror 2.0.11", "tracing", "yamux 0.12.1", "yamux 0.13.4", @@ -9733,7 +9753,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -9815,12 +9835,6 @@ dependencies = [ "cc", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linregress" version = "0.5.4" @@ -9918,6 +9932,19 @@ version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if 1.0.0", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber 0.3.19", +] + [[package]] name = "lru" version = "0.8.1" @@ -9936,15 +9963,6 @@ dependencies = [ "hashbrown 0.15.2", ] -[[package]] -name = "lru-cache" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "lru-mem" version = "0.3.0" @@ -10111,7 +10129,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core", + "rand_core 0.6.4", "zeroize", ] @@ -10161,7 +10179,7 @@ dependencies = [ "ordered-float 4.6.0", "quanta", "radix_trie", - "rand", + "rand 0.8.5", "rand_xoshiro", "sketches-ddsketch", ] @@ -10213,10 +10231,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] +[[package]] +name = "moka" +version = "0.12.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "loom", + "parking_lot 0.12.3", + "portable-atomic", + "rustc_version 0.4.1", + "smallvec", + "tagptr", + "thiserror 1.0.69", + "uuid 1.12.1", +] + [[package]] name = "multi-stash" version = "0.2.0" @@ -10299,7 +10336,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -11514,7 +11551,7 @@ dependencies = [ "pallet-balances", "pallet-session", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-runtime", "sp-staking 36.0.0", @@ -11570,7 +11607,7 @@ dependencies = [ "pallet-contracts-uapi", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "smallvec", @@ -11743,7 +11780,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-arithmetic", "sp-core", @@ -12585,7 +12622,7 @@ dependencies = [ "pallet-session", "pallet-staking", "parity-scale-codec", - "rand", + "rand 0.8.5", "sp-runtime", "sp-session", ] @@ -12614,7 +12651,7 @@ dependencies = [ "frame-system", "log", "parity-scale-codec", - "rand_chacha", + "rand_chacha 0.3.1", "scale-info", "sp-arithmetic", "sp-io", @@ -13057,8 +13094,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", - "rand", - "rand_core", + "rand 0.8.5", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -13217,7 +13254,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" dependencies = [ "base64ct", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -13228,7 +13265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -13421,7 +13458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared 0.11.3", - "rand", + "rand 0.8.5", ] [[package]] @@ -13720,8 +13757,8 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives 16.0.0", "polkadot-runtime-metrics", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "scale-info", "serde", "sp-api", @@ -14236,7 +14273,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -14397,8 +14434,8 @@ dependencies = [ "bitflags 2.8.0", "lazy_static", "num-traits", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax 0.8.5", "rusty-fork", @@ -14457,7 +14494,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -14516,8 +14553,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", - "getrandom", - "rand", + "getrandom 0.2.15", + "rand 0.8.5", "ring 0.17.8", "rustc-hash 2.1.0", "rustls 0.23.21", @@ -14575,11 +14612,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "serde", ] +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.0", + "zerocopy 0.8.17", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -14587,7 +14635,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.0", ] [[package]] @@ -14596,7 +14654,17 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +dependencies = [ + "getrandom 0.3.1", + "zerocopy 0.8.17", ] [[package]] @@ -14605,7 +14673,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -14614,7 +14682,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -14703,7 +14771,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom", + "getrandom 0.2.15", "libredox", "thiserror 1.0.69", ] @@ -14985,7 +15053,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if 1.0.0", - "getrandom", + "getrandom 0.2.15", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -15099,7 +15167,7 @@ dependencies = [ "parity-scale-codec", "primitive-types 0.12.2", "proptest", - "rand", + "rand 0.8.5", "rlp", "ruint-macro", "serde", @@ -15141,7 +15209,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "pbkdf2 0.12.2", - "rand", + "rand 0.8.5", "scrypt 0.11.0", "serde", "serde_json", @@ -15727,13 +15795,19 @@ dependencies = [ "curve25519-dalek", "getrandom_or_panic", "merlin", - "rand_core", + "rand_core 0.6.4", "serde_bytes", "sha2 0.10.8", "subtle", "zeroize", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -15811,7 +15885,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes 0.14.0", - "rand", + "rand 0.8.5", "secp256k1-sys 0.10.1", ] @@ -16235,7 +16309,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -16398,8 +16472,8 @@ dependencies = [ "pbkdf2 0.12.2", "pin-project 1.1.8", "poly1305", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "ruzstd", "schnorrkel", "serde", @@ -16441,8 +16515,8 @@ dependencies = [ "lru 0.12.5", "parking_lot 0.12.3", "pin-project 1.1.8", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "serde", "serde_json", "siphasher 1.0.1", @@ -16462,7 +16536,7 @@ dependencies = [ "blake2", "chacha20poly1305", "curve25519-dalek", - "rand_core", + "rand_core 0.6.4", "ring 0.17.8", "rustc_version 0.4.1", "sha2 0.10.8", @@ -16556,7 +16630,7 @@ dependencies = [ "hex", "lazy_static", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "snowbridge-amcl", "zeroize", @@ -16814,7 +16888,7 @@ dependencies = [ "futures", "httparse", "log", - "rand", + "rand 0.8.5", "sha1", ] @@ -17050,7 +17124,7 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types 0.12.2", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel", "secp256k1 0.28.2", @@ -17324,7 +17398,7 @@ dependencies = [ "num-traits", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", @@ -17424,7 +17498,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "smallvec", "sp-core", "sp-externalities", @@ -17446,7 +17520,7 @@ dependencies = [ "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sha2 0.10.8", "sp-api", @@ -17542,7 +17616,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", "sp-core", @@ -17907,7 +17981,7 @@ dependencies = [ "finito", "frame-metadata 18.0.0", "futures", - "getrandom", + "getrandom 0.2.15", "hex", "impl-serde 0.5.0", "jsonrpsee", @@ -17940,7 +18014,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b622b426e571fdd86b08ad0bec4ef0e323d937bb56ff5edcfaf4716f50384ca" dependencies = [ - "getrandom", + "getrandom 0.2.15", "heck 0.5.0", "parity-scale-codec", "proc-macro2", @@ -17991,7 +18065,7 @@ dependencies = [ "futures", "futures-timer", "futures-util", - "getrandom", + "getrandom 0.2.15", "js-sys", "pin-project 1.1.8", "send_wrapper 0.6.0", @@ -18050,7 +18124,7 @@ dependencies = [ "bip39", "cfg-if 1.0.0", "crypto_secretbox", - "getrandom", + "getrandom 0.2.15", "hex", "hmac 0.12.1", "parity-scale-codec", @@ -18239,6 +18313,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "tangle-subxt" version = "0.11.0" @@ -18514,9 +18594,9 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand", - "rand_chacha", - "rand_core", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "sha2 0.10.8", "sha3", "thiserror 1.0.69", @@ -18780,7 +18860,7 @@ dependencies = [ "indexmap 1.9.3", "pin-project 1.1.8", "pin-project-lite", - "rand", + "rand 0.8.5", "slab", "tokio", "tokio-util 0.7.13", @@ -18993,7 +19073,7 @@ dependencies = [ "http 0.2.12", "httparse", "log", - "rand", + "rand 0.8.5", "rustls 0.21.12", "sha1", "thiserror 1.0.69", @@ -19013,7 +19093,7 @@ dependencies = [ "http 1.2.0", "httparse", "log", - "rand", + "rand 0.8.5", "rustls 0.23.21", "rustls-pki-types", "sha1", @@ -19035,7 +19115,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if 1.0.0", "digest 0.10.7", - "rand", + "rand 0.8.5", "static_assertions", ] @@ -19240,7 +19320,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom", + "getrandom 0.2.15", "serde", ] @@ -19250,7 +19330,7 @@ version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" dependencies = [ - "getrandom", + "getrandom 0.2.15", ] [[package]] @@ -19271,12 +19351,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - [[package]] name = "vsimd" version = "0.8.0" @@ -19298,9 +19372,9 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand", - "rand_chacha", - "rand_core", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "sha2 0.10.8", "sha3", "thiserror 1.0.69", @@ -19341,6 +19415,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" version = "0.2.100" @@ -19708,7 +19791,7 @@ dependencies = [ "memfd", "memoffset 0.8.0", "paste", - "rand", + "rand 0.8.5", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -19873,6 +19956,16 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.52.0" @@ -19898,12 +19991,25 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ - "windows-implement", - "windows-interface", + "windows-implement 0.57.0", + "windows-interface 0.57.0", "windows-result 0.1.2", "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", +] + [[package]] name = "windows-implement" version = "0.57.0" @@ -19915,6 +20021,17 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "windows-interface" version = "0.57.0" @@ -19926,6 +20043,17 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "windows-registry" version = "0.2.0" @@ -20198,6 +20326,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -20245,7 +20382,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", - "rand_core", + "rand_core 0.6.4", "serde", "zeroize", ] @@ -20360,7 +20497,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.3", "pin-project 1.1.8", - "rand", + "rand 0.8.5", "static_assertions", ] @@ -20375,7 +20512,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.12.3", "pin-project 1.1.8", - "rand", + "rand 0.8.5", "static_assertions", "web-time", ] @@ -20432,7 +20569,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713" +dependencies = [ + "zerocopy-derive 0.8.17", ] [[package]] @@ -20446,6 +20592,17 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "zerocopy-derive" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "zerofrom" version = "0.1.5" diff --git a/Cargo.toml b/Cargo.toml index b1f3cc4af..508282d46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -186,7 +186,7 @@ tracing-subscriber = { version = "0.3", default-features = false } # Networking & HTTP jsonrpc-core = { version = "18.0.0", default-features = false } jsonrpc-http-server = { version = "18.0.0", default-features = false } -libp2p = { version = "0.54", default-features = false } +libp2p = { version = "0.55.0", default-features = false } reqwest = { version = "0.12.7", default-features = false } url = { version = "2.5.2", default-features = false } diff --git a/crates/macros/context-derive/tests/ui/basic.rs b/crates/macros/context-derive/tests/ui/basic.rs index 34c16924f..903a1c843 100644 --- a/crates/macros/context-derive/tests/ui/basic.rs +++ b/crates/macros/context-derive/tests/ui/basic.rs @@ -112,7 +112,7 @@ impl Network for StubNetwork { async fn send_message( &self, message: ProtocolMessage, - ) -> Result<(), blueprint_sdk::networking::Error> { + ) -> Result<(), blueprint_sdk::networking::error::Error> { drop(message); Ok(()) } diff --git a/crates/networking/src/error.rs b/crates/networking/src/error.rs new file mode 100644 index 000000000..9c4d13ead --- /dev/null +++ b/crates/networking/src/error.rs @@ -0,0 +1,55 @@ +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error("Network error: {0}")] + NetworkError(String), + + #[error("Channel error: {0}")] + ChannelError(String), + + #[error("Gossip error: {0}")] + GossipError(String), + + #[error("Messaging error: {0}")] + MessagingError(String), + + #[error("Round based error: {0}")] + RoundBasedError(String), + + #[error("Serde JSON error: {0}")] + SerdeJson(#[from] serde_json::Error), + + #[error("Connection error: {0}")] + ConnectionError(String), + + #[error("Protocol error: {0}")] + ProtocolError(String), + + #[error("Attempted to start a network with too many topics: {0}")] + TooManyTopics(usize), + #[error("All topics must be unique")] + DuplicateTopics, + + #[error("No network found")] + NoNetworkFound, + + #[error("Other error: {0}")] + Other(String), + + // std compat + #[error(transparent)] + Io(#[from] std::io::Error), + + // libp2p compat + #[error(transparent)] + Dial(#[from] libp2p::swarm::DialError), + #[error(transparent)] + Noise(#[from] libp2p::noise::Error), + #[error(transparent)] + Behaviour(#[from] libp2p::BehaviourBuilderError), + #[error(transparent)] + Subscription(#[from] libp2p::gossipsub::SubscriptionError), + #[error(transparent)] + TransportIo(#[from] libp2p::TransportError), + #[error(transparent)] + Multiaddr(#[from] libp2p::multiaddr::Error), +} diff --git a/crates/networking/src/gossip.rs b/crates/networking/src/gossip.rs index ce0181aee..7d2b21a5c 100644 --- a/crates/networking/src/gossip.rs +++ b/crates/networking/src/gossip.rs @@ -5,8 +5,8 @@ clippy::exhaustive_enums )] +use crate::error::Error; use crate::key_types::{GossipMsgKeyPair, GossipMsgPublicKey, GossipSignedMsgSignature}; -use crate::Error; use async_trait::async_trait; use gadget_crypto::hashing::blake3_256; use gadget_std::collections::BTreeMap; diff --git a/crates/networking/src/handlers/gossip.rs b/crates/networking/src/handlers/gossip.rs index ce8fcc0bd..ae4c7d559 100644 --- a/crates/networking/src/handlers/gossip.rs +++ b/crates/networking/src/handlers/gossip.rs @@ -4,13 +4,12 @@ use crate::gossip::{GossipMessage, NetworkService}; use gadget_std::string::ToString; use gadget_std::sync::atomic::AtomicUsize; use gadget_std::sync::Arc; -use libp2p::gossipsub::TopicHash; +use libp2p::gossipsub::{Event, TopicHash}; use libp2p::{gossipsub, PeerId}; impl NetworkService<'_> { #[tracing::instrument(skip(self, event))] pub(crate) async fn handle_gossip(&mut self, event: gossipsub::Event) { - use gossipsub::Event::{GossipsubNotSupported, Message, Subscribed, Unsubscribed}; let with_connected_peers = |topic: &TopicHash, f: fn(&Arc)| { let maybe_mapping = self .inbound_mapping @@ -25,7 +24,7 @@ impl NetworkService<'_> { } }; match event { - Message { + Event::Message { propagation_source, message_id, message, @@ -33,7 +32,7 @@ impl NetworkService<'_> { self.handle_gossip_message(propagation_source, message_id, message) .await; } - Subscribed { peer_id, topic } => { + Event::Subscribed { peer_id, topic } => { let added = with_connected_peers(&topic, |_connected_peers| { // Code commented out because each peer needs to do a request-response // direct P2P handshake, which is where the connected_peers counter is @@ -46,7 +45,7 @@ impl NetworkService<'_> { gadget_logging::error!("{peer_id} subscribed to unknown topic: {topic}"); } } - Unsubscribed { peer_id, topic } => { + Event::Unsubscribed { peer_id, topic } => { let removed = with_connected_peers(&topic, |_connected_peers| { // Code commented out because each peer needs to do a request-response // direct P2P handshake, which is where the connected_peers counter is @@ -59,9 +58,15 @@ impl NetworkService<'_> { gadget_logging::error!("{peer_id} unsubscribed from unknown topic: {topic}"); } } - GossipsubNotSupported { peer_id } => { + Event::GossipsubNotSupported { peer_id } => { gadget_logging::trace!("{peer_id} does not support gossipsub!"); } + Event::SlowPeer { + peer_id, + failed_messages: _, + } => { + gadget_logging::error!("{peer_id} wasn't able to download messages in time!"); + } } } diff --git a/crates/networking/src/handlers/p2p.rs b/crates/networking/src/handlers/p2p.rs index 28a4c7a43..7dd5349a9 100644 --- a/crates/networking/src/handlers/p2p.rs +++ b/crates/networking/src/handlers/p2p.rs @@ -16,7 +16,11 @@ impl NetworkService<'_> { ) { use request_response::Event::{InboundFailure, Message, OutboundFailure, ResponseSent}; match event { - Message { peer, message } => { + Message { + peer, + message, + connection_id: _, + } => { gadget_logging::trace!("Received P2P message from: {peer}"); self.handle_p2p_message(peer, message).await; } @@ -24,6 +28,7 @@ impl NetworkService<'_> { peer, request_id, error, + connection_id: _, } => { gadget_logging::error!("Failed to send message to peer: {peer} with request_id: {request_id} and error: {error}"); } @@ -31,10 +36,15 @@ impl NetworkService<'_> { peer, request_id, error, + connection_id: _, } => { gadget_logging::error!("Failed to receive message from peer: {peer} with request_id: {request_id} and error: {error}"); } - ResponseSent { peer, request_id } => { + ResponseSent { + peer, + request_id, + connection_id: _, + } => { gadget_logging::debug!( "Sent response to peer: {peer} with request_id: {request_id}" ); diff --git a/crates/networking/src/lib.rs b/crates/networking/src/lib.rs index 3e9ee7d4f..8e9120a17 100644 --- a/crates/networking/src/lib.rs +++ b/crates/networking/src/lib.rs @@ -9,43 +9,12 @@ pub mod round_based_compat; #[cfg(feature = "round-based-compat")] pub use round_based; +pub mod error; pub mod setup; -use gadget_std::string::String; - /// Unique identifier for a party pub type UserID = u16; -#[derive(Debug, thiserror::Error)] -pub enum Error { - #[error("Network error: {0}")] - NetworkError(String), - - #[error("Channel error: {0}")] - ChannelError(String), - - #[error("Gossip error: {0}")] - GossipError(String), - - #[error("Messaging error: {0}")] - MessagingError(String), - - #[error("Round based error: {0}")] - RoundBasedError(String), - - #[error("Serde JSON error: {0}")] - SerdeJson(#[from] serde_json::Error), - - #[error("Connection error: {0}")] - ConnectionError(String), - - #[error("Protocol error: {0}")] - ProtocolError(String), - - #[error("Other error: {0}")] - Other(String), -} - pub use key_types::*; #[cfg(all( diff --git a/crates/networking/src/networking.rs b/crates/networking/src/networking.rs index e14f28678..f793f833e 100644 --- a/crates/networking/src/networking.rs +++ b/crates/networking/src/networking.rs @@ -1,5 +1,5 @@ +use crate::error::Error; use crate::key_types::GossipMsgPublicKey; -use crate::Error; use async_trait::async_trait; use dashmap::DashMap; use futures::{Stream, StreamExt}; @@ -599,7 +599,7 @@ mod tests { const TOPIC: &str = "/gadget/test/1.0.0"; - fn deserialize<'a, T>(data: &'a [u8]) -> Result + fn deserialize<'a, T>(data: &'a [u8]) -> Result where T: Deserialize<'a>, { @@ -704,7 +704,7 @@ mod tests { node: N, i: u16, mapping: BTreeMap, - ) -> Result<(), crate::Error> { + ) -> Result<(), crate::error::Error> { let task_hash = [0u8; 32]; // Safety note: We should be passed a NetworkMultiplexer, and all uses of the N: Network // used throughout the program must also use the multiplexer to prevent mixed messages. @@ -749,7 +749,7 @@ mod tests { gadget_logging::debug!("Broadcast Message"); round1_network .send(msg) - .map_err(|_| crate::Error::Other("Failed to send message".into()))?; + .map_err(|_| crate::error::Error::Other("Failed to send message".into()))?; // Wait for all other nodes to send their messages let mut msgs = BTreeMap::new(); diff --git a/crates/networking/src/round_based_compat.rs b/crates/networking/src/round_based_compat.rs index 8f0e098a7..d89d8f077 100644 --- a/crates/networking/src/round_based_compat.rs +++ b/crates/networking/src/round_based_compat.rs @@ -90,8 +90,8 @@ where { type Send = SplitSink, Outgoing>; type Receive = SplitStream>; - type SendError = crate::Error; - type ReceiveError = crate::Error; + type SendError = crate::error::Error; + type ReceiveError = crate::error::Error; fn split(self) -> (Self::Receive, Self::Send) { let (sink, stream) = self.network.split(); @@ -104,7 +104,7 @@ where M: serde::de::DeserializeOwned + Unpin, M: round_based::ProtocolMessage, { - type Item = Result, crate::Error>; + type Item = Result, crate::error::Error>; fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { let res = ready!(self.get_mut().rx.poll_recv(cx)); @@ -121,7 +121,7 @@ where Ok(msg) => msg, Err(err) => { gadget_logging::error!(%err, "Failed to deserialize message (round_based_compat)"); - return Poll::Ready(Some(Err(crate::Error::Other(err.to_string())))); + return Poll::Ready(Some(Err(crate::error::Error::Other(err.to_string())))); } }; @@ -142,7 +142,7 @@ where M: Unpin + serde::Serialize, M: round_based::ProtocolMessage, { - type Error = crate::Error; + type Error = crate::error::Error; fn poll_ready(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll> { Poll::Ready(Ok(())) @@ -183,7 +183,9 @@ where if matches!(out.recipient, MessageDestination::OneParty(_)) && to_network_id.is_none() { gadget_logging::warn!("Recipient not found when required for {:?}", out.recipient); - return Err(crate::Error::Other("Recipient not found".to_string())); + return Err(crate::error::Error::Other( + "Recipient not found".to_string(), + )); } // Manually construct a `ProtocolMessage` since rounds-based diff --git a/crates/networking/src/setup.rs b/crates/networking/src/setup.rs index 937a62fa8..46895bc91 100644 --- a/crates/networking/src/setup.rs +++ b/crates/networking/src/setup.rs @@ -1,14 +1,13 @@ #![allow(unused_results, missing_docs)] +use crate::error::Error; use crate::gossip::{ GossipHandle, IntraNodePayload, MyBehaviour, NetworkServiceWithoutSwarm, MAX_MESSAGE_SIZE, }; pub use crate::key_types::GossipMsgKeyPair; use futures::StreamExt; use gadget_std as std; -use gadget_std::boxed::Box; use gadget_std::collections::BTreeMap; -use gadget_std::error::Error; use gadget_std::format; use gadget_std::io; use gadget_std::net::IpAddr; @@ -110,17 +109,17 @@ impl NetworkConfig { /// # Errors /// /// Returns an error if the network setup fails. -pub fn start_p2p_network(config: NetworkConfig) -> Result> { +pub fn start_p2p_network(config: NetworkConfig) -> Result { if config.topics.len() != 1 { - return Err("Only one network topic is allowed when running this function".into()); + return Err(Error::TooManyTopics(config.topics.len())); } let (networks, _) = multiplexed_libp2p_network(config)?; - let network = networks.into_iter().next().ok_or("No network found")?.1; + let network = networks.into_iter().next().ok_or(Error::NoNetworkFound)?.1; Ok(network) } -pub type NetworkResult = Result<(BTreeMap, JoinHandle<()>), Box>; +pub type NetworkResult = Result<(BTreeMap, JoinHandle<()>), Error>; #[allow(clippy::collapsible_else_if, clippy::too_many_lines)] /// Starts the multiplexed libp2p network with the given configuration. @@ -157,7 +156,7 @@ pub fn multiplexed_libp2p_network(config: NetworkConfig) -> NetworkResult { .collect::>(); if topics_unique.len() != topics.len() { - return Err("All topics must be unique".into()); + return Err(Error::DuplicateTopics); } let networks = topics; diff --git a/crates/sdk/src/error.rs b/crates/sdk/src/error.rs index d470ea594..98beefca1 100644 --- a/crates/sdk/src/error.rs +++ b/crates/sdk/src/error.rs @@ -40,7 +40,7 @@ pub enum Error { // Specific to Networking #[cfg(feature = "networking")] #[error("Networking error: {0}")] - Networking(#[from] gadget_networking::Error), + Networking(#[from] gadget_networking::error::Error), } #[cfg(any(feature = "evm", feature = "eigenlayer"))]