diff --git a/Cargo.lock b/Cargo.lock index 5c7b02714e..49be52e1df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -670,7 +670,7 @@ dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl 0.1.0", "displaydoc", - "nom", + "nom 7.1.3", "num-traits", "rusticata-macros", "thiserror 1.0.69", @@ -686,7 +686,7 @@ dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl 0.2.0", "displaydoc", - "nom", + "nom 7.1.3", "num-traits", "rusticata-macros", "thiserror 2.0.12", @@ -1394,7 +1394,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -1729,6 +1729,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1876,7 +1885,7 @@ dependencies = [ "itertools 0.10.5", "log", "smallvec", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-types", ] @@ -2335,7 +2344,7 @@ checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ "asn1-rs 0.5.2", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -2349,7 +2358,7 @@ checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ "asn1-rs 0.7.1", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -2404,7 +2413,7 @@ version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ - "convert_case", + "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version 0.4.1", @@ -2446,6 +2455,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ + "convert_case 0.7.1", "proc-macro2", "quote", "syn 2.0.103", @@ -3585,12 +3595,26 @@ dependencies = [ "sp-trie", "sp-version", "sp-wasm-interface 21.0.1", - "subxt", + "subxt 0.37.0", "subxt-signer", "thiserror 1.0.69", "thousands", ] +[[package]] +name = "frame-decode" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1276c23a1fb234d9f81b5f71c526437f2a55ab4419f29bfe1196ac4ee2f706c" +dependencies = [ + "frame-metadata 23.0.0", + "parity-scale-codec", + "scale-decode 0.16.0", + "scale-info", + "scale-type-resolver", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "frame-executive" version = "39.1.0" @@ -3644,6 +3668,18 @@ dependencies = [ "serde", ] +[[package]] +name = "frame-metadata" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8c26fcb0454397c522c05fdad5380c4e622f8a875638af33bff5a320d1fc965" +dependencies = [ + "cfg-if", + "parity-scale-codec", + "scale-info", + "serde", +] + [[package]] name = "frame-metadata-hash-extension" version = "0.7.0" @@ -4260,6 +4296,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", + "serde", ] [[package]] @@ -5051,6 +5088,22 @@ dependencies = [ "walkdir", ] +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + [[package]] name = "jni-sys" version = "0.3.0" @@ -5097,7 +5150,7 @@ checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" dependencies = [ "jsonrpsee-core 0.23.2", "jsonrpsee-types 0.23.2", - "jsonrpsee-ws-client", + "jsonrpsee-ws-client 0.23.2", ] [[package]] @@ -5106,10 +5159,12 @@ version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" dependencies = [ + "jsonrpsee-client-transport 0.24.9", "jsonrpsee-core 0.24.9", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types 0.24.9", + "jsonrpsee-ws-client 0.24.9", "tokio", "tracing", ] @@ -5148,7 +5203,30 @@ dependencies = [ "pin-project", "rustls 0.23.28", "rustls-pki-types", - "rustls-platform-verifier", + "rustls-platform-verifier 0.3.4", + "soketto 0.8.1", + "thiserror 1.0.69", + "tokio", + "tokio-rustls 0.26.2", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" +dependencies = [ + "base64 0.22.1", + "futures-util", + "http 1.3.1", + "jsonrpsee-core 0.24.9", + "pin-project", + "rustls 0.23.28", + "rustls-pki-types", + "rustls-platform-verifier 0.5.3", "soketto 0.8.1", "thiserror 1.0.69", "tokio", @@ -5211,18 +5289,21 @@ checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" dependencies = [ "async-trait", "bytes", + "futures-timer", "futures-util", "http 1.3.1", "http-body 1.0.1", "http-body-util", "jsonrpsee-types 0.24.9", "parking_lot 0.12.4", + "pin-project", "rand 0.8.5", "rustc-hash 2.1.1", "serde", "serde_json", "thiserror 1.0.69", "tokio", + "tokio-stream", "tracing", ] @@ -5337,6 +5418,19 @@ dependencies = [ "url", ] +[[package]] +name = "jsonrpsee-ws-client" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" +dependencies = [ + "http 1.3.1", + "jsonrpsee-client-transport 0.24.9", + "jsonrpsee-core 0.24.9", + "jsonrpsee-types 0.24.9", + "url", +] + [[package]] name = "k256" version = "0.13.4" @@ -5380,6 +5474,16 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "keccak-hash" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e1b8590eb6148af2ea2d75f38e7d29f5ca970d5a4df456b3ef19b8b415d0264" +dependencies = [ + "primitive-types 0.13.1", + "tiny-keccak", +] + [[package]] name = "keystream" version = "1.0.0" @@ -6317,7 +6421,7 @@ dependencies = [ "blake3", "frame-metadata 18.0.0", "parity-scale-codec", - "scale-decode", + "scale-decode 0.13.1", "scale-info", ] @@ -6456,6 +6560,12 @@ dependencies = [ "uuid", ] +[[package]] +name = "multi-stash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685a9ac4b61f4e728e1d2c6a7844609c16527aeb5e6c865915c08e619c16410f" + [[package]] name = "multiaddr" version = "0.17.1" @@ -6761,6 +6871,7 @@ dependencies = [ "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", + "rustls-webpki 0.102.8", "sc-basic-authorship", "sc-chain-spec", "sc-chain-spec-derive", @@ -6808,6 +6919,7 @@ dependencies = [ "subtensor-custom-rpc", "subtensor-custom-rpc-runtime-api", "subtensor-runtime-common", + "subxt 0.42.1", "thiserror 1.0.69", ] @@ -6919,6 +7031,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + [[package]] name = "nonempty" version = "0.7.0" @@ -8851,6 +8972,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.103", +] + [[package]] name = "proc-macro-warning" version = "0.4.2" @@ -9653,7 +9796,7 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -9809,7 +9952,7 @@ checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" dependencies = [ "core-foundation 0.9.4", "core-foundation-sys", - "jni", + "jni 0.19.0", "log", "once_cell", "rustls 0.23.28", @@ -9822,6 +9965,27 @@ dependencies = [ "winapi", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni 0.21.1", + "log", + "once_cell", + "rustls 0.23.28", + "rustls-native-certs 0.8.1", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.3", + "security-framework 3.2.0", + "security-framework-sys", + "webpki-root-certs 0.26.11", + "windows-sys 0.59.0", +] + [[package]] name = "rustls-platform-verifier-android" version = "0.1.1" @@ -9886,9 +10050,15 @@ checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" dependencies = [ "byteorder", "derive_more 0.99.20", - "twox-hash", + "twox-hash 1.6.3", ] +[[package]] +name = "ruzstd" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640bec8aad418d7d03c72ea2de10d5c646a598f9883c7babc160d91e3c1b26c" + [[package]] name = "rw-stream-sink" version = "0.4.0" @@ -10259,7 +10429,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-stable2412-6#bbc435c7667d3283ba280a8fec44676357392753" +source = "git+https://github.com/opentensor/grandpa.git?rev=b0eabfdb46a3ca81116d1cb61fcfed446b10d166#b0eabfdb46a3ca81116d1cb61fcfed446b10d166" dependencies = [ "ahash 0.8.12", "array-bytes", @@ -11066,6 +11236,18 @@ dependencies = [ "serde", ] +[[package]] +name = "scale-bits" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27243ab0d2d6235072b017839c5f0cd1a3b1ce45c0f7a715363b0c7d36c76c94" +dependencies = [ + "parity-scale-codec", + "scale-info", + "scale-type-resolver", + "serde", +] + [[package]] name = "scale-decode" version = "0.13.1" @@ -11075,12 +11257,27 @@ dependencies = [ "derive_more 0.99.20", "parity-scale-codec", "primitive-types 0.12.2", - "scale-bits", - "scale-decode-derive", + "scale-bits 0.6.0", + "scale-decode-derive 0.13.1", "scale-type-resolver", "smallvec", ] +[[package]] +name = "scale-decode" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d78196772d25b90a98046794ce0fe2588b39ebdfbdc1e45b4c6c85dd43bebad" +dependencies = [ + "parity-scale-codec", + "primitive-types 0.13.1", + "scale-bits 0.7.0", + "scale-decode-derive 0.16.0", + "scale-type-resolver", + "smallvec", + "thiserror 2.0.12", +] + [[package]] name = "scale-decode-derive" version = "0.13.1" @@ -11093,6 +11290,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scale-decode-derive" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.103", +] + [[package]] name = "scale-encode" version = "0.7.2" @@ -11102,12 +11311,27 @@ dependencies = [ "derive_more 0.99.20", "parity-scale-codec", "primitive-types 0.12.2", - "scale-bits", - "scale-encode-derive", + "scale-bits 0.6.0", + "scale-encode-derive 0.7.2", "scale-type-resolver", "smallvec", ] +[[package]] +name = "scale-encode" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64901733157f9d25ef86843bd783eda439fac7efb0ad5a615d12d2cf3a29464b" +dependencies = [ + "parity-scale-codec", + "primitive-types 0.13.1", + "scale-bits 0.7.0", + "scale-encode-derive 0.10.0", + "scale-type-resolver", + "smallvec", + "thiserror 2.0.12", +] + [[package]] name = "scale-encode-derive" version = "0.7.2" @@ -11121,6 +11345,19 @@ dependencies = [ "syn 2.0.103", ] +[[package]] +name = "scale-encode-derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" +dependencies = [ + "darling 0.20.11", + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.103", +] + [[package]] name = "scale-info" version = "2.11.6" @@ -11170,6 +11407,19 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "scale-typegen" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c61b6b706a3eaad63b506ab50a1d2319f817ae01cf753adcc3f055f9f0fcd6" +dependencies = [ + "proc-macro2", + "quote", + "scale-info", + "syn 2.0.103", + "thiserror 2.0.12", +] + [[package]] name = "scale-value" version = "0.16.3" @@ -11182,13 +11432,32 @@ dependencies = [ "either", "frame-metadata 15.1.0", "parity-scale-codec", - "scale-bits", - "scale-decode", - "scale-encode", + "scale-bits 0.6.0", + "scale-decode 0.13.1", + "scale-encode 0.7.2", "scale-info", "scale-type-resolver", "serde", - "yap", + "yap 0.11.0", +] + +[[package]] +name = "scale-value" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca8b26b451ecb7fd7b62b259fa28add63d12ec49bbcac0e01fcb4b5ae0c09aa" +dependencies = [ + "base58", + "blake2 0.10.6", + "either", + "parity-scale-codec", + "scale-bits 0.7.0", + "scale-decode 0.16.0", + "scale-encode 0.10.0", + "scale-type-resolver", + "serde", + "thiserror 2.0.12", + "yap 0.12.0", ] [[package]] @@ -11747,7 +12016,7 @@ dependencies = [ "libsecp256k1", "merlin", "no-std-net", - "nom", + "nom 7.1.3", "num-bigint", "num-rational", "num-traits", @@ -11756,7 +12025,7 @@ dependencies = [ "poly1305", "rand 0.8.5", "rand_chacha 0.3.1", - "ruzstd", + "ruzstd 0.5.0", "schnorrkel", "serde", "serde_json", @@ -11766,8 +12035,62 @@ dependencies = [ "slab", "smallvec", "soketto 0.7.1", - "twox-hash", - "wasmi", + "twox-hash 1.6.3", + "wasmi 0.31.2", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "smoldot" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16e5723359f0048bf64bfdfba64e5732a56847d42c4fd3fe56f18280c813413" +dependencies = [ + "arrayvec 0.7.6", + "async-lock", + "atomic-take", + "base64 0.22.1", + "bip39", + "blake2-rfc", + "bs58", + "chacha20", + "crossbeam-queue", + "derive_more 2.0.1", + "ed25519-zebra", + "either", + "event-listener 5.4.0", + "fnv", + "futures-lite", + "futures-util", + "hashbrown 0.15.4", + "hex", + "hmac 0.12.1", + "itertools 0.14.0", + "libm", + "libsecp256k1", + "merlin", + "nom 8.0.0", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2", + "pin-project", + "poly1305", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd 0.8.1", + "schnorrkel", + "serde", + "serde_json", + "sha2 0.10.9", + "sha3", + "siphasher 1.0.1", + "slab", + "smallvec", + "soketto 0.8.1", + "twox-hash 2.1.1", + "wasmi 0.40.0", "x25519-dalek", "zeroize", ] @@ -11804,7 +12127,43 @@ dependencies = [ "siphasher 1.0.1", "slab", "smol", - "smoldot", + "smoldot 0.16.0", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bba9e591716567d704a8252feeb2f1261a286e1e2cbdd4e49e9197c34a14e2" +dependencies = [ + "async-channel 2.3.1", + "async-lock", + "base64 0.22.1", + "blake2-rfc", + "bs58", + "derive_more 2.0.1", + "either", + "event-listener 5.4.0", + "fnv", + "futures-channel", + "futures-lite", + "futures-util", + "hashbrown 0.15.4", + "hex", + "itertools 0.14.0", + "log", + "lru 0.12.5", + "parking_lot 0.12.4", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher 1.0.1", + "slab", + "smol", + "smoldot 0.19.4", "zeroize", ] @@ -12168,7 +12527,7 @@ dependencies = [ "digest 0.10.7", "sha2 0.10.9", "sha3", - "twox-hash", + "twox-hash 1.6.3", ] [[package]] @@ -12181,7 +12540,7 @@ dependencies = [ "digest 0.10.7", "sha2 0.10.9", "sha3", - "twox-hash", + "twox-hash 1.6.3", ] [[package]] @@ -13233,24 +13592,61 @@ dependencies = [ "parity-scale-codec", "primitive-types 0.12.2", "reconnecting-jsonrpsee-ws-client", - "scale-bits", - "scale-decode", - "scale-encode", + "scale-bits 0.6.0", + "scale-decode 0.13.1", + "scale-encode 0.7.2", "scale-info", - "scale-value", + "scale-value 0.16.3", "serde", "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subxt-core", - "subxt-lightclient", - "subxt-macro", - "subxt-metadata", + "subxt-core 0.37.1", + "subxt-lightclient 0.37.0", + "subxt-macro 0.37.0", + "subxt-metadata 0.37.0", "thiserror 1.0.69", "tokio-util", "tracing", "url", ] +[[package]] +name = "subxt" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c7533d39317bed01100b37158740dcec27c0e1933f3bca19bdf12110f242248" +dependencies = [ + "async-trait", + "derive-where", + "either", + "frame-metadata 23.0.0", + "futures", + "hex", + "jsonrpsee 0.24.9", + "parity-scale-codec", + "primitive-types 0.13.1", + "scale-bits 0.7.0", + "scale-decode 0.16.0", + "scale-encode 0.10.0", + "scale-info", + "scale-value 0.18.0", + "serde", + "serde_json", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subxt-core 0.42.1", + "subxt-lightclient 0.42.1", + "subxt-macro 0.42.1", + "subxt-metadata 0.42.1", + "subxt-rpcs", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "wasm-bindgen-futures", + "web-time", +] + [[package]] name = "subxt-codegen" version = "0.37.0" @@ -13265,13 +13661,30 @@ dependencies = [ "proc-macro2", "quote", "scale-info", - "scale-typegen", - "subxt-metadata", + "scale-typegen 0.8.0", + "subxt-metadata 0.37.0", "syn 2.0.103", "thiserror 1.0.69", "tokio", ] +[[package]] +name = "subxt-codegen" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ded0fa15fa78c58b91e2a1c6bcef8a2bc68fe165d00e1dfb9787069351511c" +dependencies = [ + "heck 0.5.0", + "parity-scale-codec", + "proc-macro2", + "quote", + "scale-info", + "scale-typegen 0.11.1", + "subxt-metadata 0.42.1", + "syn 2.0.103", + "thiserror 2.0.12", +] + [[package]] name = "subxt-core" version = "0.37.1" @@ -13287,15 +13700,45 @@ dependencies = [ "impl-serde 0.4.0", "parity-scale-codec", "primitive-types 0.12.2", - "scale-bits", - "scale-decode", - "scale-encode", + "scale-bits 0.6.0", + "scale-decode 0.13.1", + "scale-encode 0.7.2", + "scale-info", + "scale-value 0.16.3", + "serde", + "serde_json", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subxt-metadata 0.37.0", + "tracing", +] + +[[package]] +name = "subxt-core" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c3574b60050e57cf23edf6521263b06e98a880073df330813bb04242633083" +dependencies = [ + "base58", + "blake2 0.10.6", + "derive-where", + "frame-decode", + "frame-metadata 23.0.0", + "hashbrown 0.14.5", + "hex", + "impl-serde 0.5.0", + "keccak-hash 0.11.0", + "parity-scale-codec", + "primitive-types 0.13.1", + "scale-bits 0.7.0", + "scale-decode 0.16.0", + "scale-encode 0.10.0", "scale-info", - "scale-value", + "scale-value 0.18.0", "serde", "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subxt-metadata", + "subxt-metadata 0.42.1", + "thiserror 2.0.12", "tracing", ] @@ -13309,13 +13752,30 @@ dependencies = [ "futures-util", "serde", "serde_json", - "smoldot-light", + "smoldot-light 0.14.0", "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", ] +[[package]] +name = "subxt-lightclient" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c546d42ca103c0a6a3434cadf4ca500d2a49e60af0842b0fdee6fbfa97aa02f" +dependencies = [ + "futures", + "futures-util", + "serde", + "serde_json", + "smoldot-light 0.17.2", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "subxt-macro" version = "0.37.0" @@ -13326,8 +13786,25 @@ dependencies = [ "parity-scale-codec", "proc-macro-error", "quote", - "scale-typegen", - "subxt-codegen", + "scale-typegen 0.8.0", + "subxt-codegen 0.37.0", + "syn 2.0.103", +] + +[[package]] +name = "subxt-macro" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91d253492eb17c65bdb41e538d6a31508563757bd34ad6014cb03536cf31757" +dependencies = [ + "darling 0.20.11", + "parity-scale-codec", + "proc-macro-error2", + "quote", + "scale-typegen 0.11.1", + "subxt-codegen 0.42.1", + "subxt-metadata 0.42.1", + "subxt-utils-fetchmetadata", "syn 2.0.103", ] @@ -13344,6 +13821,45 @@ dependencies = [ "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "subxt-metadata" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "243990ca4e0cdb74ef7458f1d5070a1bd5144d744cc146f23a32ab56d23e1db7" +dependencies = [ + "frame-decode", + "frame-metadata 23.0.0", + "hashbrown 0.14.5", + "parity-scale-codec", + "scale-info", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.12", +] + +[[package]] +name = "subxt-rpcs" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55313e3652f5360b5ed878bfe1d62fe181ecb8c130c81278ab89d1580f89a7ed" +dependencies = [ + "derive-where", + "frame-metadata 23.0.0", + "futures", + "hex", + "impl-serde 0.5.0", + "jsonrpsee 0.24.9", + "parity-scale-codec", + "primitive-types 0.13.1", + "serde", + "serde_json", + "subxt-core 0.42.1", + "subxt-lightclient 0.42.1", + "thiserror 2.0.12", + "tokio-util", + "tracing", + "url", +] + [[package]] name = "subxt-signer" version = "0.37.0" @@ -13355,7 +13871,7 @@ dependencies = [ "cfg-if", "hex", "hmac 0.12.1", - "keccak-hash", + "keccak-hash 0.10.0", "parity-scale-codec", "pbkdf2", "regex", @@ -13364,10 +13880,21 @@ dependencies = [ "secrecy", "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subxt-core", + "subxt-core 0.37.1", "zeroize", ] +[[package]] +name = "subxt-utils-fetchmetadata" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d3a6e9cb2fd2db8bf3cb0d03da691ac949259e620c9eb8f25764b2711805ca" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror 2.0.12", +] + [[package]] name = "syn" version = "1.0.109" @@ -14112,6 +14639,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "twox-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" + [[package]] name = "typenum" version = "1.16.0" @@ -14530,16 +15063,38 @@ dependencies = [ "smallvec", "spin 0.9.8", "wasmi_arena", - "wasmi_core", + "wasmi_core 0.13.0", "wasmparser-nostd", ] +[[package]] +name = "wasmi" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19af97fcb96045dd1d6b4d23e2b4abdbbe81723dbc5c9f016eb52145b320063" +dependencies = [ + "arrayvec 0.7.6", + "multi-stash", + "smallvec", + "spin 0.9.8", + "wasmi_collections", + "wasmi_core 0.40.0", + "wasmi_ir", + "wasmparser 0.221.3", +] + [[package]] name = "wasmi_arena" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" +[[package]] +name = "wasmi_collections" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e80d6b275b1c922021939d561574bf376613493ae2b61c6963b15db0e8813562" + [[package]] name = "wasmi_core" version = "0.13.0" @@ -14552,6 +15107,25 @@ dependencies = [ "paste", ] +[[package]] +name = "wasmi_core" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8c51482cc32d31c2c7ff211cd2bedd73c5bd057ba16a2ed0110e7a96097c33" +dependencies = [ + "downcast-rs", + "libm", +] + +[[package]] +name = "wasmi_ir" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e431a14c186db59212a88516788bd68ed51f87aa1e08d1df742522867b5289a" +dependencies = [ + "wasmi_core 0.40.0", +] + [[package]] name = "wasmparser" version = "0.102.0" @@ -14562,6 +15136,15 @@ dependencies = [ "url", ] +[[package]] +name = "wasmparser" +version = "0.221.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d06bfa36ab3ac2be0dee563380147a5b81ba10dd8885d7fbbc9eb574be67d185" +dependencies = [ + "bitflags 2.9.1", +] + [[package]] name = "wasmparser-nostd" version = "0.100.2" @@ -14590,7 +15173,7 @@ dependencies = [ "rayon", "serde", "target-lexicon", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-cache", "wasmtime-cranelift", "wasmtime-environ", @@ -14645,7 +15228,7 @@ dependencies = [ "object 0.30.4", "target-lexicon", "thiserror 1.0.69", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-cranelift-shared", "wasmtime-environ", ] @@ -14680,7 +15263,7 @@ dependencies = [ "serde", "target-lexicon", "thiserror 1.0.69", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-types", ] @@ -14763,7 +15346,7 @@ dependencies = [ "cranelift-entity", "serde", "thiserror 1.0.69", - "wasmparser", + "wasmparser 0.102.0", ] [[package]] @@ -14786,6 +15369,24 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.1", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86138b15b2b7d561bc4469e77027b8dd005a43dc502e9031d1f5afc8ce1f280e" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.25.4" @@ -15340,7 +15941,7 @@ dependencies = [ "data-encoding", "der-parser 8.2.0", "lazy_static", - "nom", + "nom 7.1.3", "oid-registry 0.6.1", "rusticata-macros", "thiserror 1.0.69", @@ -15357,7 +15958,7 @@ dependencies = [ "data-encoding", "der-parser 10.0.0", "lazy_static", - "nom", + "nom 7.1.3", "oid-registry 0.8.1", "rusticata-macros", "thiserror 2.0.12", @@ -15427,6 +16028,12 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" +[[package]] +name = "yap" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe269e7b803a5e8e20cbd97860e136529cd83bf2c9c6d37b142467e7e1f051f" + [[package]] name = "yasna" version = "0.5.2" diff --git a/Cargo.toml b/Cargo.toml index 839558d18b..3ce44f6241 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -283,3 +283,6 @@ runtime-benchmarks = [ ] metadata-hash = ["node-subtensor-runtime/metadata-hash"] pow-faucet = [] + +[patch."https://github.com/paritytech/polkadot-sdk.git"] +sc-consensus-grandpa = { git = "https://github.com/opentensor/grandpa.git", rev = "b0eabfdb46a3ca81116d1cb61fcfed446b10d166" } \ No newline at end of file diff --git a/node/Cargo.toml b/node/Cargo.toml index 0ee30ab9f3..a116bceeea 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -114,6 +114,10 @@ subtensor-custom-rpc-runtime-api = { workspace = true, features = ["std"] } pallet-subtensor-swap-rpc = { workspace = true, features = ["std"] } pallet-subtensor-swap-runtime-api = { workspace = true, features = ["std"] } +# Warp-sync patch dependencies +subxt = { version = "0.42.1", default-features = true } # temp dependency to get API +rustls-webpki = "0.102" # a dependency for linux version of subxt framework + [build-dependencies] substrate-build-script-utils = { workspace = true } diff --git a/node/src/service.rs b/node/src/service.rs index 26071c6d0c..da7aff8fb2 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -10,7 +10,7 @@ use sc_consensus::{ }; use sc_consensus_grandpa::BlockNumberOps; use sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging; -use sc_network_sync::strategy::warp::{WarpSyncConfig, WarpSyncProvider}; +use sc_network_sync::strategy::warp::WarpSyncConfig; use sc_service::{Configuration, PartialComponents, TaskManager, error::Error as ServiceError}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, log}; use sc_transaction_pool::TransactionPoolHandle; @@ -348,6 +348,64 @@ pub fn build_manual_seal_import_queue( )) } +async fn get_new_block_header() +-> sp_runtime::generic::Header, sp_runtime::traits::BlakeTwo256> { + use sp_core::H256; + use sp_runtime::traits::BlakeTwo256; + use sp_runtime::{Digest, DigestItem}; + use subxt::{OnlineClient, PolkadotConfig}; + + let api = OnlineClient::::from_url("wss://archive.chain.opentensor.ai") + .await + .expect("Could not compose an API client from the URL"); + + let mut blocks_sub = api + .blocks() + .subscribe_finalized() + .await + .expect("Could not subscribe to API"); + if let Some(Ok(block)) = blocks_sub.next().await { + log::debug!("Target warp header: ({:?})", block.header()); + + let number = block.header().number; + let parent_hash = H256::from_slice(block.header().parent_hash.as_bytes()); + let extrinsics_root = H256::from_slice(block.header().extrinsics_root.as_bytes()); + let state_root = H256::from_slice(block.header().state_root.as_bytes()); + let logs = block + .header() + .digest + .logs + .clone() + .into_iter() + .map(|log| match log { + subxt::config::substrate::DigestItem::PreRuntime(engine, data) => { + DigestItem::PreRuntime(engine, data) + } + subxt::config::substrate::DigestItem::Consensus(engine, data) => { + DigestItem::Consensus(engine, data) + } + subxt::config::substrate::DigestItem::Seal(engine, data) => { + DigestItem::Seal(engine, data) + } + subxt::config::substrate::DigestItem::Other(data) => { + panic!("Unexpected log iter Other: {:?}", data); + } + subxt::config::substrate::DigestItem::RuntimeEnvironmentUpdated => { + panic!("Unexpected log iter RuntimeEnvironmentUpdated"); + } + }) + .collect::>(); + return sp_runtime::generic::Header::, BlakeTwo256>::new( + number, + extrinsics_root, + state_root, + parent_hash, + Digest { logs }, + ); + } + panic!("Could not get finalized block header"); +} + /// Builds a new service for a full client. pub async fn new_full( mut config: Configuration, @@ -405,13 +463,19 @@ where None } else { net_config.add_notification_protocol(grandpa_protocol_config); - let warp_sync: Arc> = - Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( - backend.clone(), - grandpa_link.shared_authority_set().clone(), - Vec::new(), - )); - Some(WarpSyncConfig::WithProvider(warp_sync)) + let warp_sync_header = get_new_block_header().await; + + Some(WarpSyncConfig::WithTarget(warp_sync_header)) + + // TODO: Fix the default warp sync provider and uncomment this section + // let warp_sync: Arc> = + // Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( + // backend.clone(), + // grandpa_link.shared_authority_set().clone(), + // Vec::new(), + // )); + // + // Some(WarpSyncConfig::WithProvider(warp_sync)) }; let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) =