diff --git a/Cargo.lock b/Cargo.lock index 0fb3c36..2b2bc46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "Inflector" @@ -81,7 +81,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -198,7 +198,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -310,6 +310,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + [[package]] name = "aligned-vec" version = "0.5.0" @@ -412,9 +418,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" [[package]] name = "approx" @@ -436,7 +442,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -459,7 +465,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -667,7 +673,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "synstructure 0.13.1", ] @@ -690,7 +696,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -827,7 +833,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -862,7 +868,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1627,7 +1633,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2026,7 +2032,7 @@ checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" [[package]] name = "cross-domain-message-gossip" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "domain-block-preprocessor", "fp-account", @@ -2176,7 +2182,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2337,7 +2343,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2350,7 +2356,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2371,7 +2377,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "unicode-xid", ] @@ -2506,7 +2512,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2536,7 +2542,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.79", + "syn 2.0.82", "termcolor", "toml 0.8.19", "walkdir", @@ -2545,7 +2551,7 @@ dependencies = [ [[package]] name = "domain-block-preprocessor" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "domain-runtime-primitives", @@ -2578,7 +2584,7 @@ dependencies = [ [[package]] name = "domain-runtime-primitives" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "fp-account", "frame-support", @@ -2774,7 +2780,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2794,7 +2800,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2815,7 +2821,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2912,7 +2918,7 @@ dependencies = [ "prettyplease 0.2.22", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3206,7 +3212,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3361,7 +3367,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3373,7 +3379,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3383,7 +3389,7 @@ source = "git+https://github.com/subspace/polkadot-sdk?rev=5871818e1d736f1843eb9 dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3561,7 +3567,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3886,7 +3892,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4050,7 +4056,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4738,9 +4744,9 @@ dependencies = [ [[package]] name = "image" -version = "0.25.2" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "bc144d44a31d753b02ce64093d532f55ff8dc4ebf2ffb8a63c0dda691385acae" dependencies = [ "bytemuck", "byteorder-lite", @@ -4761,9 +4767,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" +checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" dependencies = [ "byteorder-lite", "quick-error 2.0.1", @@ -4895,7 +4901,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -5144,7 +5150,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -5417,7 +5423,7 @@ dependencies = [ [[package]] name = "libp2p" version = "0.54.1" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "bytes", "either", @@ -5446,7 +5452,7 @@ dependencies = [ "libp2p-yamux 0.46.0", "multiaddr 0.18.2", "pin-project", - "rw-stream-sink 0.4.0 (git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0)", + "rw-stream-sink 0.4.0 (git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8)", "thiserror", ] @@ -5465,7 +5471,7 @@ dependencies = [ [[package]] name = "libp2p-allow-block-list" version = "0.4.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "libp2p-core 0.42.0", "libp2p-identity", @@ -5476,7 +5482,7 @@ dependencies = [ [[package]] name = "libp2p-autonat" version = "0.13.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "async-trait", "asynchronous-codec 0.7.0", @@ -5514,7 +5520,7 @@ dependencies = [ [[package]] name = "libp2p-connection-limits" version = "0.4.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "libp2p-core 0.42.0", "libp2p-identity", @@ -5553,7 +5559,7 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.42.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "either", "fnv", @@ -5562,13 +5568,13 @@ dependencies = [ "libp2p-identity", "multiaddr 0.18.2", "multihash 0.19.1", - "multistream-select 0.13.0 (git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0)", + "multistream-select 0.13.0 (git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8)", "once_cell", "parking_lot 0.12.3", "pin-project", "quick-protobuf", "rand", - "rw-stream-sink 0.4.0 (git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0)", + "rw-stream-sink 0.4.0 (git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8)", "serde", "smallvec", "thiserror", @@ -5597,7 +5603,7 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.42.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "async-trait", "futures", @@ -5612,7 +5618,7 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" version = "0.47.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "asynchronous-codec 0.7.0", "base64 0.22.1", @@ -5666,7 +5672,7 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.45.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "asynchronous-codec 0.7.0", "either", @@ -5736,7 +5742,7 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.46.1" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "arrayvec", "asynchronous-codec 0.7.0", @@ -5786,7 +5792,7 @@ dependencies = [ [[package]] name = "libp2p-mdns" version = "0.46.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "data-encoding", "futures", @@ -5823,7 +5829,7 @@ dependencies = [ [[package]] name = "libp2p-metrics" version = "0.15.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "futures", "libp2p-core 0.42.0", @@ -5866,7 +5872,7 @@ dependencies = [ [[package]] name = "libp2p-noise" version = "0.45.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "asynchronous-codec 0.7.0", "bytes", @@ -5909,7 +5915,7 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.45.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "either", "futures", @@ -5926,7 +5932,7 @@ dependencies = [ [[package]] name = "libp2p-plaintext" version = "0.42.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "asynchronous-codec 0.7.0", "bytes", @@ -5965,7 +5971,7 @@ dependencies = [ [[package]] name = "libp2p-quic" version = "0.11.1" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "bytes", "futures", @@ -6006,7 +6012,7 @@ dependencies = [ [[package]] name = "libp2p-request-response" version = "0.27.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "async-trait", "futures", @@ -6048,7 +6054,7 @@ dependencies = [ [[package]] name = "libp2p-swarm" version = "0.45.1" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "either", "fnv", @@ -6058,7 +6064,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive 0.35.0", "lru", - "multistream-select 0.13.0 (git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0)", + "multistream-select 0.13.0 (git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8)", "once_cell", "rand", "smallvec", @@ -6078,18 +6084,18 @@ dependencies = [ "proc-macro-warning 0.4.2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] name = "libp2p-swarm-derive" version = "0.35.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -6112,7 +6118,7 @@ dependencies = [ [[package]] name = "libp2p-tcp" version = "0.42.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "futures", "futures-timer", @@ -6147,7 +6153,7 @@ dependencies = [ [[package]] name = "libp2p-tls" version = "0.5.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "futures", "futures-rustls 0.26.0", @@ -6181,7 +6187,7 @@ dependencies = [ [[package]] name = "libp2p-upnp" version = "0.3.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "futures", "futures-timer", @@ -6244,7 +6250,7 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.46.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "either", "futures", @@ -6550,7 +6556,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -6564,7 +6570,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -6575,7 +6581,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -6586,7 +6592,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -6873,7 +6879,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -7034,7 +7040,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.13.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "bytes", "futures", @@ -7068,7 +7074,7 @@ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -7325,7 +7331,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -7395,7 +7401,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -7646,6 +7652,31 @@ version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +[[package]] +name = "ouroboros" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "944fa20996a25aded6b4795c6d63f10014a7a83f8be9828a11860b08c5fc4a67" +dependencies = [ + "aliasable", + "ouroboros_macro", + "static_assertions", +] + +[[package]] +name = "ouroboros_macro" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd" +dependencies = [ + "heck 0.4.1", + "itertools 0.12.1", + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.82", +] + [[package]] name = "overload" version = "0.1.1" @@ -7963,7 +7994,7 @@ checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8077,7 +8108,7 @@ dependencies = [ "polkavm-common", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8087,7 +8118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8212,7 +8243,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8294,7 +8325,7 @@ checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8305,7 +8336,7 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8317,6 +8348,19 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.82", + "version_check", + "yansi", +] + [[package]] name = "profiling" version = "1.0.15" @@ -8333,7 +8377,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8382,7 +8426,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8444,7 +8488,7 @@ dependencies = [ "prost 0.12.6", "prost-types 0.12.6", "regex", - "syn 2.0.79", + "syn 2.0.82", "tempfile", ] @@ -8471,7 +8515,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -8562,7 +8606,7 @@ dependencies = [ [[package]] name = "quick-protobuf-codec" version = "0.3.1" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "asynchronous-codec 0.7.0", "bytes", @@ -8951,7 +8995,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -9062,7 +9106,7 @@ checksum = "4a0249463bd27f93f10c883aaa31e7ca254cc2f0c6c8cd60a68e6d052d9dba85" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -9132,9 +9176,6 @@ name = "rgb" version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" -dependencies = [ - "bytemuck", -] [[package]] name = "ring" @@ -9458,7 +9499,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.4.0" -source = "git+https://github.com/autonomys/rust-libp2p?rev=458d22ef382641a6f42f7baddff99b70f33cdcc0#458d22ef382641a6f42f7baddff99b70f33cdcc0" +source = "git+https://github.com/autonomys/rust-libp2p?rev=ae7527453146df24aff6afed5f5b9efdffbc15b8#ae7527453146df24aff6afed5f5b9efdffbc15b8" dependencies = [ "futures", "pin-project", @@ -9578,7 +9619,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -9683,7 +9724,7 @@ dependencies = [ [[package]] name = "sc-consensus-subspace" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "futures", @@ -9725,7 +9766,7 @@ dependencies = [ [[package]] name = "sc-consensus-subspace-rpc" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-oneshot", "futures", @@ -9759,7 +9800,7 @@ dependencies = [ [[package]] name = "sc-domains" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "sc-client-api", "sc-executor", @@ -10120,7 +10161,7 @@ dependencies = [ [[package]] name = "sc-proof-of-time" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "core_affinity", "derive_more 1.0.0", @@ -10355,7 +10396,7 @@ dependencies = [ [[package]] name = "sc-subspace-block-relay" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -10381,7 +10422,7 @@ dependencies = [ [[package]] name = "sc-subspace-chain-specs" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" [[package]] name = "sc-sysinfo" @@ -10461,7 +10502,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -10695,9 +10736,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" dependencies = [ "serde_derive", ] @@ -10713,20 +10754,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -10742,7 +10783,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -11042,7 +11083,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -11074,7 +11115,7 @@ dependencies = [ [[package]] name = "sp-auto-id" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "parity-scale-codec", "scale-info", @@ -11098,7 +11139,7 @@ dependencies = [ [[package]] name = "sp-block-fees" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "domain-runtime-primitives", @@ -11193,7 +11234,7 @@ dependencies = [ [[package]] name = "sp-consensus-subspace" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "log", @@ -11284,7 +11325,7 @@ source = "git+https://github.com/subspace/polkadot-sdk?rev=5871818e1d736f1843eb9 dependencies = [ "quote", "sp-crypto-hashing", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -11303,13 +11344,13 @@ source = "git+https://github.com/subspace/polkadot-sdk?rev=5871818e1d736f1843eb9 dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] name = "sp-domain-digests" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -11318,7 +11359,7 @@ dependencies = [ [[package]] name = "sp-domain-sudo" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "parity-scale-codec", @@ -11329,7 +11370,7 @@ dependencies = [ [[package]] name = "sp-domains" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "blake2 0.10.6", "domain-runtime-primitives", @@ -11361,7 +11402,7 @@ dependencies = [ [[package]] name = "sp-domains-fraud-proof" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "domain-block-preprocessor", "domain-runtime-primitives", @@ -11396,7 +11437,7 @@ dependencies = [ [[package]] name = "sp-executive" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "parity-scale-codec", @@ -11487,7 +11528,7 @@ dependencies = [ [[package]] name = "sp-messenger" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-trait", "frame-support", @@ -11509,7 +11550,7 @@ dependencies = [ [[package]] name = "sp-messenger-host-functions" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "domain-block-preprocessor", "parity-scale-codec", @@ -11566,7 +11607,7 @@ dependencies = [ [[package]] name = "sp-objects" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "sp-api", "subspace-core-primitives", @@ -11658,7 +11699,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -11752,7 +11793,7 @@ dependencies = [ [[package]] name = "sp-subspace-mmr" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "parity-scale-codec", "scale-info", @@ -11861,7 +11902,7 @@ dependencies = [ "proc-macro-warning 1.0.2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -12137,13 +12178,13 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] name = "subspace-archiving" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "parity-scale-codec", "rayon", @@ -12157,7 +12198,7 @@ dependencies = [ [[package]] name = "subspace-core-primitives" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "blake3", "bytes", @@ -12175,7 +12216,7 @@ dependencies = [ [[package]] name = "subspace-erasure-coding" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "kzg", "rust-kzg-blst", @@ -12186,7 +12227,7 @@ dependencies = [ [[package]] name = "subspace-fake-runtime-api" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "domain-runtime-primitives", "frame-support", @@ -12218,7 +12259,7 @@ dependencies = [ [[package]] name = "subspace-farmer" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "anyhow", "async-lock", @@ -12238,6 +12279,7 @@ dependencies = [ "hwlocality", "jsonrpsee", "num_cpus", + "ouroboros", "parity-scale-codec", "parking_lot 0.12.3", "pin-project", @@ -12273,8 +12315,9 @@ dependencies = [ [[package]] name = "subspace-farmer-components" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ + "anyhow", "async-lock", "async-trait", "backoff", @@ -12305,7 +12348,7 @@ dependencies = [ [[package]] name = "subspace-kzg" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "derive_more 1.0.0", "kzg", @@ -12320,7 +12363,7 @@ dependencies = [ [[package]] name = "subspace-metrics" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "actix-web", "prometheus", @@ -12331,7 +12374,7 @@ dependencies = [ [[package]] name = "subspace-networking" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "async-mutex", "async-trait", @@ -12361,6 +12404,7 @@ dependencies = [ "subspace-metrics", "thiserror", "tokio", + "tokio-stream", "tracing", "tracing-subscriber", "unsigned-varint 0.8.0", @@ -12370,7 +12414,7 @@ dependencies = [ [[package]] name = "subspace-proof-of-space" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "chacha20", "derive_more 1.0.0", @@ -12386,7 +12430,7 @@ dependencies = [ [[package]] name = "subspace-proof-of-space-gpu" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "blst", "cc", @@ -12399,7 +12443,7 @@ dependencies = [ [[package]] name = "subspace-proof-of-time" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "aes 0.9.0-pre.2", "subspace-core-primitives", @@ -12409,7 +12453,7 @@ dependencies = [ [[package]] name = "subspace-rpc-primitives" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "hex", "parity-scale-codec", @@ -12422,7 +12466,7 @@ dependencies = [ [[package]] name = "subspace-runtime-primitives" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "frame-support", "frame-system", @@ -12438,7 +12482,7 @@ dependencies = [ [[package]] name = "subspace-service" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "array-bytes", "async-channel 1.9.0", @@ -12525,7 +12569,7 @@ dependencies = [ [[package]] name = "subspace-verification" version = "0.1.0" -source = "git+https://github.com/subspace/subspace?rev=6c0c789a674cba083718bc09512c32923fd5fde0#6c0c789a674cba083718bc09512c32923fd5fde0" +source = "git+https://github.com/subspace/subspace?rev=7c0db0ffe2f97e025b28de5f3b6dc878258ff20c#7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -12628,9 +12672,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" dependencies = [ "proc-macro2", "quote", @@ -12666,7 +12710,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -12791,22 +12835,22 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -12919,9 +12963,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", @@ -12943,7 +12987,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -13125,7 +13169,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -13206,14 +13250,14 @@ checksum = "dc19eb2373ccf3d1999967c26c3d44534ff71ae5d8b9dacf78f4b13132229e48" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] name = "tray-icon" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533fc2d4105e0e3d96ce1c71f2d308c9fbbe2ef9c587cab63dd627ab5bde218f" +checksum = "7c92af36a182b46206723bdf8a7942e20838cde1cf062e5b97854d57eb01763b" dependencies = [ "core-graphics 0.24.0", "crossbeam-channel", @@ -13467,7 +13511,7 @@ checksum = "1ed7f4237ba393424195053097c1516bd4590dc82b84f2f97c5c69e12704555b" dependencies = [ "proc-macro-hack", "quote", - "syn 2.0.79", + "syn 2.0.82", "unic-langid-impl", ] @@ -13702,7 +13746,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "wasm-bindgen-shared", ] @@ -13736,7 +13780,7 @@ checksum = "4c74f6e152a76a2ad448e223b0fc0b6b5747649c3d769cc6bf45737bf97d0ed6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -14154,7 +14198,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -14165,7 +14209,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -14582,7 +14626,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -14641,6 +14685,12 @@ dependencies = [ "web-time", ] +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yasna" version = "0.5.2" @@ -14697,7 +14747,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "zvariant_utils", ] @@ -14730,7 +14780,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -14750,7 +14800,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -14890,7 +14940,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "zvariant_utils", ] @@ -14902,5 +14952,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] diff --git a/Cargo.toml b/Cargo.toml index 65e4aee..63f936c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ merge-assets.append = [ include = ["res/windows/wix/space-acres.wxs"] [dependencies] -anyhow = "1.0.89" +anyhow = "1.0.91" arc-swap = "1.7.1" async-lock = "3.4.0" async-oneshot = "0.5.9" @@ -53,7 +53,7 @@ futures = "0.3.31" futures-timer = "3.0.3" gtk = { version = "0.7.3", package = "gtk4", features = ["v4_14"] } hex = "0.4.3" -image = { version = "0.25.2", default-features = false, features = ["png"] } +image = { version = "0.25.4", default-features = false, features = ["png"] } mimalloc = "0.1.43" names = "0.14.0" notify-rust = { version = "4.11.3", features = ["images"] } @@ -68,47 +68,47 @@ reqwest = { version = "0.12.8", default-features = false, features = ["json", "r sc-client-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-client-db = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-consensus-slots = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } -sc-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } +sc-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } sc-informant = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-network = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-network-types = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-rpc = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-service = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sc-storage-monitor = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } -sc-subspace-chain-specs = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } +sc-subspace-chain-specs = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } sc-utils = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } schnellru = "0.2.3" semver = "1.0.23" -serde = { version = "1.0.210", features = ["derive"] } -serde_json = "1.0.128" +serde = { version = "1.0.213", features = ["derive"] } +serde_json = "1.0.132" simple_moving_average = "1.0.2" sp-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sp-blockchain = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } sp-consensus = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } -sp-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } +sp-consensus-subspace = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } sp-core = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } -sp-domains-fraud-proof = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -sp-objects = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } +sp-domains-fraud-proof = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +sp-objects = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } sp-runtime = { git = "https://github.com/subspace/polkadot-sdk", rev = "5871818e1d736f1843eb9078f886290695165c42", default-features = false } -subspace-archiving = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-erasure-coding = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-fake-runtime-api = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0", default-features = false } -subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-kzg = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-networking = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-proof-of-space-gpu = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0", optional = true } -subspace-rpc-primitives = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-runtime-primitives = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } -subspace-service = { git = "https://github.com/subspace/subspace", rev = "6c0c789a674cba083718bc09512c32923fd5fde0" } +subspace-archiving = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-core-primitives = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-erasure-coding = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-fake-runtime-api = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-farmer = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c", default-features = false } +subspace-farmer-components = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-kzg = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-networking = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-proof-of-space = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-proof-of-space-gpu = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c", optional = true } +subspace-rpc-primitives = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-runtime-primitives = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } +subspace-service = { git = "https://github.com/subspace/subspace", rev = "7c0db0ffe2f97e025b28de5f3b6dc878258ff20c" } supports-color = "3.0.1" sys-locale = "0.3.1" tempfile = "3.13.0" -thiserror = "1.0.64" +thiserror = "1.0.65" thread-priority = "1.1.0" -tokio = { version = "1.40.0", features = ["fs", "time"] } +tokio = { version = "1.41.0", features = ["fs", "time"] } tracing = "0.1.40" tracing-subscriber = "0.3.18" tracker = "0.2.2" @@ -118,7 +118,7 @@ native-dialog = "0.7.0" tracing-panic = "0.1.2" [target.'cfg(any(target_os = "macos", target_os = "windows"))'.dependencies] -tray-icon = "0.19.0" +tray-icon = "0.19.1" [target.'cfg(all(unix, not(target_os = "macos")))'.dependencies] ksni = "0.2.2" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 5d18e5c..04a4c59 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2024-09-26" +channel = "nightly-2024-10-22" components = ["rust-src"] targets = [] profile = "default" diff --git a/src/backend.rs b/src/backend.rs index 4090bae..545b2d3 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -20,12 +20,12 @@ use async_lock::RwLock as AsyncRwLock; use backoff::ExponentialBackoff; use future::FutureExt; use futures::channel::mpsc; -use futures::{future, select, SinkExt, StreamExt}; +use futures::{future, select, SinkExt, Stream, StreamExt}; use sc_subspace_chain_specs::DEVNET_CHAIN_SPEC; use sp_consensus_subspace::ChainConstants; use std::error::Error; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; -use std::num::{NonZeroU8, NonZeroUsize}; +use std::num::NonZeroU8; use std::path::{Path, PathBuf}; use std::pin::pin; use std::sync::{Arc, Weak}; @@ -60,9 +60,6 @@ pub type CacheIndex = u8; /// Get piece retry attempts number. const PIECE_GETTER_MAX_RETRIES: u16 = 7; -/// Global limit on combined piece getter, a nice number that should result in enough pieces -/// downloading successfully during DSN sync -const PIECE_GETTER_MAX_CONCURRENCY: NonZeroUsize = NonZeroUsize::new(128).expect("Not zero; qed"); /// Defines initial duration between get_piece calls. const GET_PIECE_INITIAL_INTERVAL: Duration = Duration::from_secs(5); /// Defines max duration between get_piece calls. @@ -90,12 +87,21 @@ impl DsnSyncPieceGetter for PieceGetterWrapper { #[async_trait::async_trait] impl PieceGetter for PieceGetterWrapper { - async fn get_piece( - &self, - piece_index: PieceIndex, - ) -> Result, Box> { + async fn get_piece(&self, piece_index: PieceIndex) -> anyhow::Result> { self.0.get_piece(piece_index).await } + + async fn get_pieces<'a, PieceIndices>( + &'a self, + piece_indices: PieceIndices, + ) -> anyhow::Result< + Box>)> + Send + Unpin + 'a>, + > + where + PieceIndices: IntoIterator + Send + 'a, + { + self.0.get_pieces(piece_indices).await + } } impl PieceGetterWrapper { @@ -127,12 +133,21 @@ struct WeakPieceGetterWrapper( #[async_trait::async_trait] impl PieceGetter for WeakPieceGetterWrapper { - async fn get_piece( - &self, - piece_index: PieceIndex, - ) -> Result, Box> { + async fn get_piece(&self, piece_index: PieceIndex) -> anyhow::Result> { self.0.get_piece(piece_index).await } + + async fn get_pieces<'a, PieceIndices>( + &'a self, + piece_indices: PieceIndices, + ) -> anyhow::Result< + Box>)> + Send + Unpin + 'a>, + > + where + PieceIndices: IntoIterator + Send + 'a, + { + self.0.get_pieces(piece_indices).await + } } /// Major steps in application loading progress @@ -423,11 +438,7 @@ async fn load( let kzg = Kzg::new(); let piece_provider = PieceProvider::new( node.clone(), - Some(SegmentCommitmentPieceValidator::new( - node.clone(), - maybe_node_client.clone(), - kzg.clone(), - )), + SegmentCommitmentPieceValidator::new(node.clone(), maybe_node_client.clone(), kzg.clone()), ); let piece_getter = PieceGetterWrapper::new(FarmerPieceGetter::new( @@ -446,7 +457,6 @@ async fn load( ..ExponentialBackoff::default() }, }, - PIECE_GETTER_MAX_CONCURRENCY, )); let create_consensus_node_fut = create_consensus_node( diff --git a/src/backend/farmer.rs b/src/backend/farmer.rs index 4c4006a..edc3e5e 100644 --- a/src/backend/farmer.rs +++ b/src/backend/farmer.rs @@ -54,6 +54,7 @@ pub(super) const CACHE_PERCENTAGE: NonZeroU8 = NonZeroU8::MIN; /// very long period of writing zeroes on Windows, see https://stackoverflow.com/q/78058306/3806795 const MAX_SPACE_PLEDGED_FOR_PLOT_CACHE_ON_WINDOWS: u64 = ByteSize::tib(7).as_u64(); const FARM_ERROR_PRINT_INTERVAL: Duration = Duration::from_secs(30); +const MAX_PLOTTING_SECTORS_PER_FARM: NonZeroUsize = NonZeroUsize::new(4).expect("Not zero; qed"); #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct InitialFarmState { @@ -452,6 +453,7 @@ where farming_thread_pool_size: recommended_number_of_farming_threads(), plotting_delay: Some(plotting_delay_receiver), global_mutex, + max_plotting_sectors_per_farm: MAX_PLOTTING_SECTORS_PER_FARM, disable_farm_locking: false, read_sector_record_chunks_mode: None, faster_read_sector_record_chunks_mode_barrier, diff --git a/src/backend/farmer/direct_node_client.rs b/src/backend/farmer/direct_node_client.rs index c170921..8494be2 100644 --- a/src/backend/farmer/direct_node_client.rs +++ b/src/backend/farmer/direct_node_client.rs @@ -29,7 +29,7 @@ use subspace_core_primitives::segments::{HistorySize, SegmentHeader, SegmentInde use subspace_core_primitives::solutions::Solution; use subspace_core_primitives::{BlockHash, PublicKey, SlotNumber}; use subspace_erasure_coding::ErasureCoding; -use subspace_farmer::node_client::{Error, NodeClient, NodeClientExt}; +use subspace_farmer::node_client::{NodeClient, NodeClientExt}; use subspace_farmer_components::FarmerProtocolInfo; use subspace_kzg::Kzg; use subspace_networking::libp2p::Multiaddr; @@ -189,7 +189,7 @@ where + 'static, Client::Api: SubspaceApi + ObjectsApi + 'static, { - async fn farmer_app_info(&self) -> Result { + async fn farmer_app_info(&self) -> anyhow::Result { let last_segment_index = self .segment_headers_store .max_segment_index() @@ -219,14 +219,14 @@ where farmer_app_info.map_err(|error| { error!("Failed to get data from runtime API: {}", error); - "Internal error".to_string().into() + anyhow::anyhow!("Internal error") }) } async fn submit_solution_response( &self, solution_response: SolutionResponse, - ) -> Result<(), Error> { + ) -> anyhow::Result<()> { let slot = solution_response.slot_number; let mut solution_response_senders = self.solution_response_senders.lock(); @@ -241,14 +241,14 @@ where "Solution was ignored, likely because farmer was too slow" ); - return Err("Solution was ignored".to_string().into()); + return Err(anyhow::anyhow!("Solution was ignored")); } Ok(()) } async fn subscribe_slot_info( &self, - ) -> Result + Send + 'static>>, Error> { + ) -> anyhow::Result + Send + 'static>>> { let executor = self.subscription_executor.clone(); let solution_response_senders = self.solution_response_senders.clone(); @@ -330,7 +330,7 @@ where async fn subscribe_reward_signing( &self, - ) -> Result + Send + 'static>>, Error> { + ) -> anyhow::Result + Send + 'static>>> { let executor = self.subscription_executor.clone(); let reward_signature_senders = self.reward_signature_senders.clone(); @@ -393,7 +393,7 @@ where async fn submit_reward_signature( &self, reward_signature: RewardSignatureResponse, - ) -> Result<(), Error> { + ) -> anyhow::Result<()> { let reward_signature_senders = self.reward_signature_senders.clone(); let mut reward_signature_senders = reward_signature_senders.lock(); @@ -409,7 +409,7 @@ where async fn subscribe_archived_segment_headers( &self, - ) -> Result + Send + 'static>>, Error> { + ) -> anyhow::Result + Send + 'static>>> { let archived_segment_acknowledgement_senders = self.archived_segment_acknowledgement_senders.clone(); @@ -494,7 +494,7 @@ where async fn acknowledge_archived_segment_header( &self, segment_index: SegmentIndex, - ) -> Result<(), Error> { + ) -> anyhow::Result<()> { let archived_segment_acknowledgement_senders = self.archived_segment_acknowledgement_senders.clone(); @@ -529,7 +529,7 @@ where Ok(()) } - async fn piece(&self, piece_index: PieceIndex) -> Result, Error> { + async fn piece(&self, piece_index: PieceIndex) -> anyhow::Result> { let archived_segment = { let mut cached_archived_segment = self.cached_archived_segment.lock().await; @@ -569,14 +569,14 @@ where Ok(Err(error)) => { error!(%error, "Failed to re-create genesis segment"); - return Err("Failed to re-create genesis segment".to_string().into()); + return Err(anyhow::anyhow!("Failed to re-create genesis segment")); } Err(error) => { error!(%error, "Blocking task failed to re-create genesis segment"); - return Err("Blocking task failed to re-create genesis segment" - .to_string() - .into()); + return Err(anyhow::anyhow!( + "Blocking task failed to re-create genesis segment" + )); } } } @@ -594,7 +594,7 @@ where async fn segment_headers( &self, segment_indexes: Vec, - ) -> Result>, Error> { + ) -> anyhow::Result>> { Ok(segment_indexes .into_iter() .map(|segment_index| self.segment_headers_store.get_segment_header(segment_index)) @@ -614,7 +614,7 @@ where + 'static, Client::Api: SubspaceApi + ObjectsApi + 'static, { - async fn last_segment_headers(&self, limit: u32) -> Result>, Error> { + async fn last_segment_headers(&self, limit: u32) -> anyhow::Result>> { let last_segment_index = self .segment_headers_store .max_segment_index() diff --git a/src/backend/farmer/maybe_node_client.rs b/src/backend/farmer/maybe_node_client.rs index 142cdf4..badfbf1 100644 --- a/src/backend/farmer/maybe_node_client.rs +++ b/src/backend/farmer/maybe_node_client.rs @@ -4,7 +4,7 @@ use std::pin::Pin; use std::sync::Arc; use subspace_core_primitives::pieces::{Piece, PieceIndex}; use subspace_core_primitives::segments::{SegmentHeader, SegmentIndex}; -use subspace_farmer::node_client::{Error, NodeClient, NodeClientExt}; +use subspace_farmer::node_client::{NodeClient, NodeClientExt}; use subspace_rpc_primitives::{ FarmerAppInfo, RewardSignatureResponse, RewardSigningInfo, SlotInfo, SolutionResponse, }; @@ -17,98 +17,98 @@ pub(in super::super) struct MaybeNodeClient { #[async_trait::async_trait] impl NodeClient for MaybeNodeClient { - async fn farmer_app_info(&self) -> Result { + async fn farmer_app_info(&self) -> anyhow::Result { match &*self.inner.load() { Some(inner) => inner.farmer_app_info().await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn subscribe_slot_info( &self, - ) -> Result + Send + 'static>>, Error> { + ) -> anyhow::Result + Send + 'static>>> { match &*self.inner.load() { Some(inner) => inner.subscribe_slot_info().await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn submit_solution_response( &self, solution_response: SolutionResponse, - ) -> Result<(), Error> { + ) -> anyhow::Result<()> { match &*self.inner.load() { Some(inner) => inner.submit_solution_response(solution_response).await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn subscribe_reward_signing( &self, - ) -> Result + Send + 'static>>, Error> { + ) -> anyhow::Result + Send + 'static>>> { match &*self.inner.load() { Some(inner) => inner.subscribe_reward_signing().await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn submit_reward_signature( &self, reward_signature: RewardSignatureResponse, - ) -> Result<(), Error> { + ) -> anyhow::Result<()> { match &*self.inner.load() { Some(inner) => inner.submit_reward_signature(reward_signature).await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn subscribe_archived_segment_headers( &self, - ) -> Result + Send + 'static>>, Error> { + ) -> anyhow::Result + Send + 'static>>> { match &*self.inner.load() { Some(inner) => inner.subscribe_archived_segment_headers().await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn segment_headers( &self, segment_indexes: Vec, - ) -> Result>, Error> { + ) -> anyhow::Result>> { match &*self.inner.load() { Some(inner) => inner.segment_headers(segment_indexes).await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } - async fn piece(&self, piece_index: PieceIndex) -> Result, Error> { + async fn piece(&self, piece_index: PieceIndex) -> anyhow::Result> { match &*self.inner.load() { Some(inner) => inner.piece(piece_index).await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } async fn acknowledge_archived_segment_header( &self, segment_index: SegmentIndex, - ) -> Result<(), Error> { + ) -> anyhow::Result<()> { match &*self.inner.load() { Some(inner) => { inner .acknowledge_archived_segment_header(segment_index) .await } - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } } #[async_trait::async_trait] impl NodeClientExt for MaybeNodeClient { - async fn last_segment_headers(&self, limit: u32) -> Result>, Error> { + async fn last_segment_headers(&self, limit: u32) -> anyhow::Result>> { match &*self.inner.load() { Some(inner) => inner.last_segment_headers(limit).await, - None => Err("Inner node client not injected yet".into()), + None => Err(anyhow::anyhow!("Inner node client not injected yet")), } } } diff --git a/src/backend/networking.rs b/src/backend/networking.rs index efb790b..9bf00b9 100644 --- a/src/backend/networking.rs +++ b/src/backend/networking.rs @@ -10,7 +10,6 @@ use subspace_farmer::farmer_cache::FarmerCache; use subspace_farmer::node_client::NodeClientExt; use subspace_farmer::KNOWN_PEERS_CACHE_SIZE; use subspace_networking::libp2p::identity::ed25519::Keypair; -use subspace_networking::libp2p::kad::RecordKey; use subspace_networking::libp2p::multiaddr::Protocol; use subspace_networking::libp2p::Multiaddr; use subspace_networking::protocols::request_response::handlers::cached_piece_by_index::{ @@ -36,8 +35,6 @@ use tracing::{debug, error, info, info_span, warn, Instrument}; /// /// Must be the same as RPC limit since all requests go to the node anyway. const SEGMENT_HEADERS_LIMIT: u32 = MAX_SEGMENT_HEADERS_PER_REQUEST as u32; -/// Max number of cached pieces to accept per request -const MAX_CACHED_PIECES: usize = 128; /// Network options #[derive(Debug)] @@ -140,17 +137,18 @@ where CachedPieceByIndexRequestHandler::create(move |peer_id, request| { let CachedPieceByIndexRequest { piece_index, - mut cached_pieces, + cached_pieces, } = request; debug!(?piece_index, "Cached piece request received"); let maybe_weak_node = Arc::clone(&maybe_weak_node); let farmer_cache = farmer_cache.clone(); + let mut cached_pieces = Arc::unwrap_or_clone(cached_pieces); async move { let piece_from_cache = farmer_cache.get_piece(piece_index.to_multihash()).await; - cached_pieces.truncate(MAX_CACHED_PIECES); + cached_pieces.truncate(CachedPieceByIndexRequest::RECOMMENDED_LIMIT); let cached_pieces = farmer_cache.has_pieces(cached_pieces).await; Some(CachedPieceByIndexResponse { @@ -189,17 +187,17 @@ where PieceByIndexRequestHandler::create(move |_, request| { let PieceByIndexRequest { piece_index, - mut cached_pieces, + cached_pieces, } = request; debug!(?piece_index, "Piece request received. Trying cache..."); let weak_plotted_pieces = weak_plotted_pieces.clone(); let farmer_cache = farmer_cache.clone(); + let mut cached_pieces = Arc::unwrap_or_clone(cached_pieces); async move { - let key = RecordKey::from(piece_index.to_multihash()); - let piece_from_cache = farmer_cache.get_piece(key).await; - cached_pieces.truncate(MAX_CACHED_PIECES); + let piece_from_cache = farmer_cache.get_piece(piece_index.to_multihash()).await; + cached_pieces.truncate(PieceByIndexRequest::RECOMMENDED_LIMIT); let cached_pieces = farmer_cache.has_pieces(cached_pieces).await; if let Some(piece) = piece_from_cache { @@ -213,16 +211,14 @@ where "No piece in the cache. Trying archival storage..." ); - let read_piece_fut = { - match weak_plotted_pieces.upgrade() { - Some(plotted_pieces) => plotted_pieces - .try_read()? - .read_piece(piece_index)? - .in_current_span(), - None => { - debug!("A readers and pieces are already dropped"); - return None; - } + let read_piece_fut = match weak_plotted_pieces.upgrade() { + Some(plotted_pieces) => plotted_pieces + .try_read()? + .read_piece(piece_index)? + .in_current_span(), + None => { + debug!("A readers and pieces are already dropped"); + return None; } }; @@ -244,6 +240,17 @@ where async move { let internal_result = match req { SegmentHeaderRequest::SegmentIndexes { segment_indexes } => { + let segment_indexes = Arc::unwrap_or_clone(segment_indexes); + + if segment_indexes.len() > SEGMENT_HEADERS_LIMIT as usize { + debug!( + "segment_indexes length exceed the limit: {} ", + segment_indexes.len() + ); + + return None; + } + debug!( segment_indexes_count = ?segment_indexes.len(), "Segment headers request received." diff --git a/src/backend/node.rs b/src/backend/node.rs index 192df38..eac9ba0 100644 --- a/src/backend/node.rs +++ b/src/backend/node.rs @@ -506,6 +506,7 @@ pub(super) async fn create_consensus_node( base: consensus_chain_config, // Domain node needs slots notifications for bundle production force_new_slot_notifications: false, + create_object_mappings: false, subspace_networking: SubspaceNetworking::Reuse { node, bootstrap_nodes: dsn_bootstrap_nodes, diff --git a/src/main.rs b/src/main.rs index fd90ba9..0122554 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,5 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] #![feature( - const_option, let_chains, result_flattening, thread_local,