From 21a1fb7ff5e7a31724c6a490f2c29fff2b80ce83 Mon Sep 17 00:00:00 2001 From: Loris Moulin Date: Fri, 19 Sep 2025 17:57:10 -0300 Subject: [PATCH 1/5] add testnet badBlocks to chainspec following panic --- chainspecs/plain_spec_testfinney.json | 4 +++- chainspecs/raw_spec_testfinney.json | 4 +++- node/src/chain_spec/testnet.rs | 7 ++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/chainspecs/plain_spec_testfinney.json b/chainspecs/plain_spec_testfinney.json index 1390fe92f2..736250a0ed 100644 --- a/chainspecs/plain_spec_testfinney.json +++ b/chainspecs/plain_spec_testfinney.json @@ -13,7 +13,9 @@ "tokenSymbol": "testTAO" }, "forkBlocks": null, - "badBlocks": [], + "badBlocks": [ + "0xad24a84e6a7ee6066de3ddeac7018c26c66d812fc8df6d7182604776c17e04f4" + ], "codeSubstitutes": {}, "genesis": { "runtimeGenesis": { diff --git a/chainspecs/raw_spec_testfinney.json b/chainspecs/raw_spec_testfinney.json index 08eabf415c..e3828c0e15 100644 --- a/chainspecs/raw_spec_testfinney.json +++ b/chainspecs/raw_spec_testfinney.json @@ -13,7 +13,9 @@ "tokenSymbol": "testTAO" }, "forkBlocks": null, - "badBlocks": [], + "badBlocks": [ + "0xad24a84e6a7ee6066de3ddeac7018c26c66d812fc8df6d7182604776c17e04f4" + ], "codeSubstitutes": {}, "genesis": { "raw": { diff --git a/node/src/chain_spec/testnet.rs b/node/src/chain_spec/testnet.rs index a3b3d8b627..90da63ed2b 100644 --- a/node/src/chain_spec/testnet.rs +++ b/node/src/chain_spec/testnet.rs @@ -45,7 +45,12 @@ pub fn finney_testnet_config() -> Result { Ok(ChainSpec::builder( wasm_binary, Extensions { - bad_blocks: Some(HashSet::new()), + bad_blocks: Some(HashSet::from_iter(vec![ + H256::from_str( + "0xad24a84e6a7ee6066de3ddeac7018c26c66d812fc8df6d7182604776c17e04f4", + ) + .unwrap(), + ])), ..Default::default() }, ) From a1886db5e93967b5dd9ff8c1bf0738eedf728b7e Mon Sep 17 00:00:00 2001 From: Loris Moulin Date: Fri, 19 Sep 2025 19:35:42 -0300 Subject: [PATCH 2/5] restore target warpsync --- Cargo.lock | 579 ++++++++++++++++++++++++++++++++++++++++---- Cargo.toml | 2 + node/Cargo.toml | 3 + node/src/service.rs | 74 +++++- 4 files changed, 595 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18ee1cd90f..7c295c52fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -840,7 +840,7 @@ dependencies = [ "asn1-rs-derive 0.5.1", "asn1-rs-impl", "displaydoc", - "nom", + "nom 7.1.3", "num-traits", "rusticata-macros", "thiserror 1.0.69", @@ -856,7 +856,7 @@ dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl", "displaydoc", - "nom", + "nom 7.1.3", "num-traits", "rusticata-macros", "thiserror 2.0.12", @@ -1565,7 +1565,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -1893,6 +1893,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" @@ -2040,7 +2049,7 @@ dependencies = [ "itertools 0.10.5", "log", "smallvec", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-types", ] @@ -2480,7 +2489,7 @@ checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ "asn1-rs 0.6.2", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -2494,7 +2503,7 @@ checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ "asn1-rs 0.7.1", "displaydoc", - "nom", + "nom 7.1.3", "num-bigint", "num-traits", "rusticata-macros", @@ -2548,7 +2557,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", @@ -2591,6 +2600,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.104", @@ -3749,7 +3759,7 @@ dependencies = [ "sp-trie", "sp-version", "sp-wasm-interface 21.0.1", - "subxt", + "subxt 0.38.1", "subxt-signer", "thiserror 1.0.69", "thousands", @@ -3769,6 +3779,22 @@ dependencies = [ "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "frame-decode" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c470df86cf28818dd3cd2fc4667b80dbefe2236c722c3dc1d09e7c6c82d6dfcd" +dependencies = [ + "frame-metadata 23.0.0", + "parity-scale-codec", + "scale-decode 0.16.0", + "scale-encode 0.10.0", + "scale-info", + "scale-type-resolver", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.12", +] + [[package]] name = "frame-election-provider-solution-type" version = "16.1.1" @@ -3838,6 +3864,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.8.0" @@ -4450,6 +4488,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", + "serde", ] [[package]] @@ -6815,6 +6854,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", + "rustls-webpki 0.103.4", "sc-basic-authorship", "sc-chain-spec", "sc-chain-spec-derive", @@ -6866,6 +6906,7 @@ dependencies = [ "subtensor-custom-rpc", "subtensor-custom-rpc-runtime-api", "subtensor-runtime-common", + "subxt 0.44.0", ] [[package]] @@ -6999,6 +7040,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" @@ -10188,7 +10238,7 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -10344,6 +10394,12 @@ dependencies = [ "derive_more 0.99.20", ] +[[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" @@ -11546,6 +11602,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" @@ -11554,7 +11622,7 @@ checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more 0.99.20", "parity-scale-codec", - "scale-bits", + "scale-bits 0.6.0", "scale-type-resolver", "smallvec", ] @@ -11568,10 +11636,25 @@ dependencies = [ "derive_more 1.0.0", "parity-scale-codec", "primitive-types 0.13.1", - "scale-bits", - "scale-decode-derive", + "scale-bits 0.6.0", + "scale-decode-derive 0.14.0", + "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]] @@ -11586,6 +11669,18 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "scale-decode-derive" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "scale-encode" version = "0.8.0" @@ -11595,10 +11690,25 @@ dependencies = [ "derive_more 1.0.0", "parity-scale-codec", "primitive-types 0.13.1", - "scale-bits", - "scale-encode-derive", + "scale-bits 0.6.0", + "scale-encode-derive 0.8.0", + "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]] @@ -11614,6 +11724,19 @@ dependencies = [ "syn 2.0.104", ] +[[package]] +name = "scale-encode-derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" +dependencies = [ + "darling", + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "scale-info" version = "2.11.6" @@ -11663,6 +11786,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.104", + "thiserror 2.0.12", +] + [[package]] name = "scale-value" version = "0.17.0" @@ -11674,13 +11810,32 @@ dependencies = [ "derive_more 1.0.0", "either", "parity-scale-codec", - "scale-bits", + "scale-bits 0.6.0", "scale-decode 0.14.0", - "scale-encode", + "scale-encode 0.8.0", "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]] @@ -12223,7 +12378,61 @@ dependencies = [ "libm", "libsecp256k1", "merlin", - "nom", + "nom 7.1.3", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2", + "pin-project", + "poly1305", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd 0.6.0", + "schnorrkel", + "serde", + "serde_json", + "sha2 0.10.9", + "sha3", + "siphasher 1.0.1", + "slab", + "smallvec", + "soketto", + "twox-hash 1.6.3", + "wasmi 0.32.3", + "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.1", + "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", @@ -12232,7 +12441,7 @@ dependencies = [ "poly1305", "rand 0.8.5", "rand_chacha 0.3.1", - "ruzstd", + "ruzstd 0.8.1", "schnorrkel", "serde", "serde_json", @@ -12242,8 +12451,8 @@ dependencies = [ "slab", "smallvec", "soketto", - "twox-hash", - "wasmi", + "twox-hash 2.1.2", + "wasmi 0.40.0", "x25519-dalek", "zeroize", ] @@ -12280,7 +12489,43 @@ dependencies = [ "siphasher 1.0.1", "slab", "smol", - "smoldot", + "smoldot 0.18.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.5.0", + "async-lock", + "base64 0.22.1", + "blake2-rfc", + "bs58", + "derive_more 2.0.1", + "either", + "event-listener 5.4.1", + "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", ] @@ -12629,7 +12874,7 @@ dependencies = [ "digest 0.10.7", "sha2 0.10.9", "sha3", - "twox-hash", + "twox-hash 1.6.3", ] [[package]] @@ -12642,7 +12887,7 @@ dependencies = [ "digest 0.10.7", "sha2 0.10.9", "sha3", - "twox-hash", + "twox-hash 1.6.3", ] [[package]] @@ -13827,17 +14072,17 @@ dependencies = [ "parity-scale-codec", "polkadot-sdk", "primitive-types 0.13.1", - "scale-bits", + "scale-bits 0.6.0", "scale-decode 0.14.0", - "scale-encode", + "scale-encode 0.8.0", "scale-info", - "scale-value", + "scale-value 0.17.0", "serde", "serde_json", - "subxt-core", - "subxt-lightclient", - "subxt-macro", - "subxt-metadata", + "subxt-core 0.38.1", + "subxt-lightclient 0.38.1", + "subxt-macro 0.38.1", + "subxt-metadata 0.38.1", "thiserror 1.0.69", "tokio", "tokio-util", @@ -13846,6 +14091,43 @@ dependencies = [ "web-time", ] +[[package]] +name = "subxt" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddbf938ac1d86a361a84709a71cdbae5d87f370770b563651d1ec052eed9d0b4" +dependencies = [ + "async-trait", + "derive-where", + "either", + "frame-metadata 23.0.0", + "futures", + "hex", + "jsonrpsee", + "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.44.0", + "subxt-lightclient 0.44.0", + "subxt-macro 0.44.0", + "subxt-metadata 0.44.0", + "subxt-rpcs", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "wasm-bindgen-futures", + "web-time", +] + [[package]] name = "subxt-codegen" version = "0.38.1" @@ -13857,12 +14139,29 @@ dependencies = [ "proc-macro2", "quote", "scale-info", - "scale-typegen", - "subxt-metadata", + "scale-typegen 0.9.0", + "subxt-metadata 0.38.1", "syn 2.0.104", "thiserror 1.0.69", ] +[[package]] +name = "subxt-codegen" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c250ad8cd102d40ae47977b03295a2ff791375f30ddc7474d399fb56efb793b" +dependencies = [ + "heck 0.5.0", + "parity-scale-codec", + "proc-macro2", + "quote", + "scale-info", + "scale-typegen 0.11.1", + "subxt-metadata 0.44.0", + "syn 2.0.104", + "thiserror 2.0.12", +] + [[package]] name = "subxt-core" version = "0.38.1" @@ -13872,7 +14171,7 @@ dependencies = [ "base58", "blake2 0.10.6", "derive-where", - "frame-decode", + "frame-decode 0.5.1", "frame-metadata 17.0.0", "hashbrown 0.14.5", "hex", @@ -13881,14 +14180,44 @@ dependencies = [ "parity-scale-codec", "polkadot-sdk", "primitive-types 0.13.1", - "scale-bits", + "scale-bits 0.6.0", "scale-decode 0.14.0", - "scale-encode", + "scale-encode 0.8.0", + "scale-info", + "scale-value 0.17.0", + "serde", + "serde_json", + "subxt-metadata 0.38.1", + "tracing", +] + +[[package]] +name = "subxt-core" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5705c5b420294524e41349bf23c6b11aa474ce731de7317f4153390e1927f702" +dependencies = [ + "base58", + "blake2 0.10.6", + "derive-where", + "frame-decode 0.9.0", + "frame-metadata 23.0.0", + "hashbrown 0.14.5", + "hex", + "impl-serde 0.5.0", + "keccak-hash", + "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", - "subxt-metadata", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subxt-metadata 0.44.0", + "thiserror 2.0.12", "tracing", ] @@ -13902,13 +14231,30 @@ dependencies = [ "futures-util", "serde", "serde_json", - "smoldot-light", + "smoldot-light 0.16.2", "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", ] +[[package]] +name = "subxt-lightclient" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e02732a6c9ae46bc282c1a741b3d3e494021b3e87e7e92cfb3620116d92911" +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.38.1" @@ -13919,9 +14265,26 @@ dependencies = [ "parity-scale-codec", "proc-macro-error2", "quote", - "scale-typegen", - "subxt-codegen", - "subxt-utils-fetchmetadata", + "scale-typegen 0.9.0", + "subxt-codegen 0.38.1", + "subxt-utils-fetchmetadata 0.38.1", + "syn 2.0.104", +] + +[[package]] +name = "subxt-macro" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501bf358698f5ab02a6199a1fcd3f1b482e2f5b6eb5d185411e6a74a175ec8e8" +dependencies = [ + "darling", + "parity-scale-codec", + "proc-macro-error2", + "quote", + "scale-typegen 0.11.1", + "subxt-codegen 0.44.0", + "subxt-metadata 0.44.0", + "subxt-utils-fetchmetadata 0.44.0", "syn 2.0.104", ] @@ -13931,7 +14294,7 @@ version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aacd4e7484fef58deaa2dcb32d94753a864b208a668c0dd0c28be1d8abeeadb2" dependencies = [ - "frame-decode", + "frame-decode 0.5.1", "frame-metadata 17.0.0", "hashbrown 0.14.5", "parity-scale-codec", @@ -13939,6 +14302,45 @@ dependencies = [ "scale-info", ] +[[package]] +name = "subxt-metadata" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fb7c0bfafad78dda7084c6a2444444744af3bbf7b2502399198b9b4c20eddf" +dependencies = [ + "frame-decode 0.9.0", + "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.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab68a9c20ecedb0cb7d62d64f884e6add91bb70485783bf40aa8eac5c389c6e0" +dependencies = [ + "derive-where", + "frame-metadata 23.0.0", + "futures", + "hex", + "impl-serde 0.5.0", + "jsonrpsee", + "parity-scale-codec", + "primitive-types 0.13.1", + "serde", + "serde_json", + "subxt-core 0.44.0", + "subxt-lightclient 0.44.0", + "thiserror 2.0.12", + "tokio-util", + "tracing", + "url", +] + [[package]] name = "subxt-signer" version = "0.38.1" @@ -13964,7 +14366,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "subxt-core", + "subxt-core 0.38.1", "zeroize", ] @@ -13979,6 +14381,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "subxt-utils-fetchmetadata" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e450f6812a653c5a3e63a079aa3b60a3f4c362722753c3222286eaa1800f9002" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror 2.0.12", +] + [[package]] name = "syn" version = "1.0.109" @@ -14632,6 +15045,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "twox-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" + [[package]] name = "typenum" version = "1.18.0" @@ -15081,11 +15500,27 @@ dependencies = [ "num-traits", "smallvec", "spin 0.9.8", - "wasmi_collections", - "wasmi_core", + "wasmi_collections 0.32.3", + "wasmi_core 0.32.3", "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 0.40.0", + "wasmi_core 0.40.0", + "wasmi_ir", + "wasmparser 0.221.3", +] + [[package]] name = "wasmi_collections" version = "0.32.3" @@ -15097,6 +15532,12 @@ dependencies = [ "string-interner", ] +[[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.32.3" @@ -15109,6 +15550,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" @@ -15119,6 +15579,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" @@ -15147,7 +15616,7 @@ dependencies = [ "rayon", "serde", "target-lexicon", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-cache", "wasmtime-cranelift", "wasmtime-environ", @@ -15202,7 +15671,7 @@ dependencies = [ "object 0.30.4", "target-lexicon", "thiserror 1.0.69", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-cranelift-shared", "wasmtime-environ", ] @@ -15237,7 +15706,7 @@ dependencies = [ "serde", "target-lexicon", "thiserror 1.0.69", - "wasmparser", + "wasmparser 0.102.0", "wasmtime-types", ] @@ -15320,7 +15789,7 @@ dependencies = [ "cranelift-entity", "serde", "thiserror 1.0.69", - "wasmparser", + "wasmparser 0.102.0", ] [[package]] @@ -15907,7 +16376,7 @@ dependencies = [ "data-encoding", "der-parser 9.0.0", "lazy_static", - "nom", + "nom 7.1.3", "oid-registry 0.7.1", "rusticata-macros", "thiserror 1.0.69", @@ -15924,7 +16393,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", @@ -15994,6 +16463,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 2fb9ea9644..2e7dbe5841 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,6 +112,8 @@ proc-macro-warning = { version = "1", default-features = false } expander = "2" ahash = { version = "0.8", default-features = false } regex = { version = "1.11.1", default-features = false } +subxt = { version = "0.44", default-features = true } # temp dependency to get API +rustls-webpki = "0.103" # a dependency for linux version of subxt framework frame = { package = "polkadot-sdk-frame", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-6", default-features = false } frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-6", default-features = false } diff --git a/node/Cargo.toml b/node/Cargo.toml index 09458410ff..127e83d12a 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -120,6 +120,9 @@ 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"] } +subxt = { version = "0.44", default-features = true } # temp dependency to get API +rustls-webpki = "0.103" # 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 9bf3056b54..4fdf2aea62 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -10,13 +10,13 @@ use sc_consensus_grandpa::BlockNumberOps; use sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging; use sc_consensus_slots::SlotProportion; use sc_network::config::SyncMode; -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; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_core::H256; -use sp_runtime::traits::{Block as BlockT, NumberFor}; +use sp_runtime::traits::{Block as BlockT, Header, NumberFor}; use std::collections::HashSet; use std::str::FromStr; use std::sync::atomic::AtomicBool; @@ -316,14 +316,9 @@ where config.chain_spec.chain_type() ); 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(), - sc_consensus_grandpa::warp_proof::HardForks::new_initial_set_id(set_id), - )); - - Some(WarpSyncConfig::WithProvider(warp_sync)) + + let warp_sync_header = get_new_block_header().await; + Some(WarpSyncConfig::WithTarget(warp_sync_header)) }; let (network, system_rpc_tx, tx_handler_controller, sync_service) = @@ -578,7 +573,7 @@ where let grandpa_config = sc_consensus_grandpa::Config { // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(333), + gossip_duration: Duration::from_millis(30000), justification_generation_period: GRANDPA_JUSTIFICATION_PERIOD, name: Some(name), observer_enabled: false, @@ -758,3 +753,60 @@ fn run_manual_seal_authorship( .spawn_blocking("manual-seal", None, manual_seal); Ok(()) } + +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.dev.opentensor.ai:8443") + .await + .expect("Could not compose an API client from the URL"); + let block = api + .blocks() + .at( + H256::from_str("0xa3fda9b8042bda6c429b5c21745b82a57340cec0f35ff1ece14326f507769f57") + .unwrap(), + ) + .await + .expect("Could not subscribe to API"); + log::info!("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 }, + ); +} From 8a9e3a14afc00387e7db2d8ff3a4b8db24864090 Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Mon, 22 Sep 2025 11:06:20 +0200 Subject: [PATCH 3/5] Revert "restore target warpsync" This reverts commit a1886db5e93967b5dd9ff8c1bf0738eedf728b7e. --- Cargo.lock | 579 ++++---------------------------------------- Cargo.toml | 2 - node/Cargo.toml | 3 - node/src/service.rs | 74 +----- 4 files changed, 63 insertions(+), 595 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7c295c52fa..18ee1cd90f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -840,7 +840,7 @@ dependencies = [ "asn1-rs-derive 0.5.1", "asn1-rs-impl", "displaydoc", - "nom 7.1.3", + "nom", "num-traits", "rusticata-macros", "thiserror 1.0.69", @@ -856,7 +856,7 @@ dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl", "displaydoc", - "nom 7.1.3", + "nom", "num-traits", "rusticata-macros", "thiserror 2.0.12", @@ -1565,7 +1565,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom 7.1.3", + "nom", ] [[package]] @@ -1893,15 +1893,6 @@ 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" @@ -2049,7 +2040,7 @@ dependencies = [ "itertools 0.10.5", "log", "smallvec", - "wasmparser 0.102.0", + "wasmparser", "wasmtime-types", ] @@ -2489,7 +2480,7 @@ checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ "asn1-rs 0.6.2", "displaydoc", - "nom 7.1.3", + "nom", "num-bigint", "num-traits", "rusticata-macros", @@ -2503,7 +2494,7 @@ checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ "asn1-rs 0.7.1", "displaydoc", - "nom 7.1.3", + "nom", "num-bigint", "num-traits", "rusticata-macros", @@ -2557,7 +2548,7 @@ version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ - "convert_case 0.4.0", + "convert_case", "proc-macro2", "quote", "rustc_version 0.4.1", @@ -2600,7 +2591,6 @@ 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.104", @@ -3759,7 +3749,7 @@ dependencies = [ "sp-trie", "sp-version", "sp-wasm-interface 21.0.1", - "subxt 0.38.1", + "subxt", "subxt-signer", "thiserror 1.0.69", "thousands", @@ -3779,22 +3769,6 @@ dependencies = [ "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "frame-decode" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c470df86cf28818dd3cd2fc4667b80dbefe2236c722c3dc1d09e7c6c82d6dfcd" -dependencies = [ - "frame-metadata 23.0.0", - "parity-scale-codec", - "scale-decode 0.16.0", - "scale-encode 0.10.0", - "scale-info", - "scale-type-resolver", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.12", -] - [[package]] name = "frame-election-provider-solution-type" version = "16.1.1" @@ -3864,18 +3838,6 @@ 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.8.0" @@ -4488,7 +4450,6 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", - "serde", ] [[package]] @@ -6854,7 +6815,6 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", - "rustls-webpki 0.103.4", "sc-basic-authorship", "sc-chain-spec", "sc-chain-spec-derive", @@ -6906,7 +6866,6 @@ dependencies = [ "subtensor-custom-rpc", "subtensor-custom-rpc-runtime-api", "subtensor-runtime-common", - "subxt 0.44.0", ] [[package]] @@ -7040,15 +6999,6 @@ 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" @@ -10238,7 +10188,7 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "nom 7.1.3", + "nom", ] [[package]] @@ -10394,12 +10344,6 @@ dependencies = [ "derive_more 0.99.20", ] -[[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" @@ -11602,18 +11546,6 @@ 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" @@ -11622,7 +11554,7 @@ checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more 0.99.20", "parity-scale-codec", - "scale-bits 0.6.0", + "scale-bits", "scale-type-resolver", "smallvec", ] @@ -11636,25 +11568,10 @@ dependencies = [ "derive_more 1.0.0", "parity-scale-codec", "primitive-types 0.13.1", - "scale-bits 0.6.0", - "scale-decode-derive 0.14.0", - "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-bits", + "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.12", ] [[package]] @@ -11669,18 +11586,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "scale-decode-derive" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "scale-encode" version = "0.8.0" @@ -11690,25 +11595,10 @@ dependencies = [ "derive_more 1.0.0", "parity-scale-codec", "primitive-types 0.13.1", - "scale-bits 0.6.0", - "scale-encode-derive 0.8.0", - "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-bits", + "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.12", ] [[package]] @@ -11724,19 +11614,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "scale-encode-derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" -dependencies = [ - "darling", - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.104", -] - [[package]] name = "scale-info" version = "2.11.6" @@ -11786,19 +11663,6 @@ 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.104", - "thiserror 2.0.12", -] - [[package]] name = "scale-value" version = "0.17.0" @@ -11810,32 +11674,13 @@ dependencies = [ "derive_more 1.0.0", "either", "parity-scale-codec", - "scale-bits 0.6.0", + "scale-bits", "scale-decode 0.14.0", - "scale-encode 0.8.0", + "scale-encode", "scale-info", "scale-type-resolver", "serde", - "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", + "yap", ] [[package]] @@ -12378,61 +12223,7 @@ dependencies = [ "libm", "libsecp256k1", "merlin", - "nom 7.1.3", - "num-bigint", - "num-rational", - "num-traits", - "pbkdf2", - "pin-project", - "poly1305", - "rand 0.8.5", - "rand_chacha 0.3.1", - "ruzstd 0.6.0", - "schnorrkel", - "serde", - "serde_json", - "sha2 0.10.9", - "sha3", - "siphasher 1.0.1", - "slab", - "smallvec", - "soketto", - "twox-hash 1.6.3", - "wasmi 0.32.3", - "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.1", - "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", + "nom", "num-bigint", "num-rational", "num-traits", @@ -12441,7 +12232,7 @@ dependencies = [ "poly1305", "rand 0.8.5", "rand_chacha 0.3.1", - "ruzstd 0.8.1", + "ruzstd", "schnorrkel", "serde", "serde_json", @@ -12451,8 +12242,8 @@ dependencies = [ "slab", "smallvec", "soketto", - "twox-hash 2.1.2", - "wasmi 0.40.0", + "twox-hash", + "wasmi", "x25519-dalek", "zeroize", ] @@ -12489,43 +12280,7 @@ dependencies = [ "siphasher 1.0.1", "slab", "smol", - "smoldot 0.18.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.5.0", - "async-lock", - "base64 0.22.1", - "blake2-rfc", - "bs58", - "derive_more 2.0.1", - "either", - "event-listener 5.4.1", - "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", + "smoldot", "zeroize", ] @@ -12874,7 +12629,7 @@ dependencies = [ "digest 0.10.7", "sha2 0.10.9", "sha3", - "twox-hash 1.6.3", + "twox-hash", ] [[package]] @@ -12887,7 +12642,7 @@ dependencies = [ "digest 0.10.7", "sha2 0.10.9", "sha3", - "twox-hash 1.6.3", + "twox-hash", ] [[package]] @@ -14072,17 +13827,17 @@ dependencies = [ "parity-scale-codec", "polkadot-sdk", "primitive-types 0.13.1", - "scale-bits 0.6.0", + "scale-bits", "scale-decode 0.14.0", - "scale-encode 0.8.0", + "scale-encode", "scale-info", - "scale-value 0.17.0", + "scale-value", "serde", "serde_json", - "subxt-core 0.38.1", - "subxt-lightclient 0.38.1", - "subxt-macro 0.38.1", - "subxt-metadata 0.38.1", + "subxt-core", + "subxt-lightclient", + "subxt-macro", + "subxt-metadata", "thiserror 1.0.69", "tokio", "tokio-util", @@ -14091,43 +13846,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "subxt" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddbf938ac1d86a361a84709a71cdbae5d87f370770b563651d1ec052eed9d0b4" -dependencies = [ - "async-trait", - "derive-where", - "either", - "frame-metadata 23.0.0", - "futures", - "hex", - "jsonrpsee", - "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.44.0", - "subxt-lightclient 0.44.0", - "subxt-macro 0.44.0", - "subxt-metadata 0.44.0", - "subxt-rpcs", - "thiserror 2.0.12", - "tokio", - "tokio-util", - "tracing", - "url", - "wasm-bindgen-futures", - "web-time", -] - [[package]] name = "subxt-codegen" version = "0.38.1" @@ -14139,29 +13857,12 @@ dependencies = [ "proc-macro2", "quote", "scale-info", - "scale-typegen 0.9.0", - "subxt-metadata 0.38.1", + "scale-typegen", + "subxt-metadata", "syn 2.0.104", "thiserror 1.0.69", ] -[[package]] -name = "subxt-codegen" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c250ad8cd102d40ae47977b03295a2ff791375f30ddc7474d399fb56efb793b" -dependencies = [ - "heck 0.5.0", - "parity-scale-codec", - "proc-macro2", - "quote", - "scale-info", - "scale-typegen 0.11.1", - "subxt-metadata 0.44.0", - "syn 2.0.104", - "thiserror 2.0.12", -] - [[package]] name = "subxt-core" version = "0.38.1" @@ -14171,7 +13872,7 @@ dependencies = [ "base58", "blake2 0.10.6", "derive-where", - "frame-decode 0.5.1", + "frame-decode", "frame-metadata 17.0.0", "hashbrown 0.14.5", "hex", @@ -14180,44 +13881,14 @@ dependencies = [ "parity-scale-codec", "polkadot-sdk", "primitive-types 0.13.1", - "scale-bits 0.6.0", + "scale-bits", "scale-decode 0.14.0", - "scale-encode 0.8.0", - "scale-info", - "scale-value 0.17.0", - "serde", - "serde_json", - "subxt-metadata 0.38.1", - "tracing", -] - -[[package]] -name = "subxt-core" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5705c5b420294524e41349bf23c6b11aa474ce731de7317f4153390e1927f702" -dependencies = [ - "base58", - "blake2 0.10.6", - "derive-where", - "frame-decode 0.9.0", - "frame-metadata 23.0.0", - "hashbrown 0.14.5", - "hex", - "impl-serde 0.5.0", - "keccak-hash", - "parity-scale-codec", - "primitive-types 0.13.1", - "scale-bits 0.7.0", - "scale-decode 0.16.0", - "scale-encode 0.10.0", + "scale-encode", "scale-info", - "scale-value 0.18.0", + "scale-value", "serde", "serde_json", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "subxt-metadata 0.44.0", - "thiserror 2.0.12", + "subxt-metadata", "tracing", ] @@ -14231,30 +13902,13 @@ dependencies = [ "futures-util", "serde", "serde_json", - "smoldot-light 0.16.2", + "smoldot-light", "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", ] -[[package]] -name = "subxt-lightclient" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e02732a6c9ae46bc282c1a741b3d3e494021b3e87e7e92cfb3620116d92911" -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.38.1" @@ -14265,26 +13919,9 @@ dependencies = [ "parity-scale-codec", "proc-macro-error2", "quote", - "scale-typegen 0.9.0", - "subxt-codegen 0.38.1", - "subxt-utils-fetchmetadata 0.38.1", - "syn 2.0.104", -] - -[[package]] -name = "subxt-macro" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501bf358698f5ab02a6199a1fcd3f1b482e2f5b6eb5d185411e6a74a175ec8e8" -dependencies = [ - "darling", - "parity-scale-codec", - "proc-macro-error2", - "quote", - "scale-typegen 0.11.1", - "subxt-codegen 0.44.0", - "subxt-metadata 0.44.0", - "subxt-utils-fetchmetadata 0.44.0", + "scale-typegen", + "subxt-codegen", + "subxt-utils-fetchmetadata", "syn 2.0.104", ] @@ -14294,7 +13931,7 @@ version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aacd4e7484fef58deaa2dcb32d94753a864b208a668c0dd0c28be1d8abeeadb2" dependencies = [ - "frame-decode 0.5.1", + "frame-decode", "frame-metadata 17.0.0", "hashbrown 0.14.5", "parity-scale-codec", @@ -14302,45 +13939,6 @@ dependencies = [ "scale-info", ] -[[package]] -name = "subxt-metadata" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fb7c0bfafad78dda7084c6a2444444744af3bbf7b2502399198b9b4c20eddf" -dependencies = [ - "frame-decode 0.9.0", - "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.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab68a9c20ecedb0cb7d62d64f884e6add91bb70485783bf40aa8eac5c389c6e0" -dependencies = [ - "derive-where", - "frame-metadata 23.0.0", - "futures", - "hex", - "impl-serde 0.5.0", - "jsonrpsee", - "parity-scale-codec", - "primitive-types 0.13.1", - "serde", - "serde_json", - "subxt-core 0.44.0", - "subxt-lightclient 0.44.0", - "thiserror 2.0.12", - "tokio-util", - "tracing", - "url", -] - [[package]] name = "subxt-signer" version = "0.38.1" @@ -14366,7 +13964,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "subxt-core 0.38.1", + "subxt-core", "zeroize", ] @@ -14381,17 +13979,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "subxt-utils-fetchmetadata" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e450f6812a653c5a3e63a079aa3b60a3f4c362722753c3222286eaa1800f9002" -dependencies = [ - "hex", - "parity-scale-codec", - "thiserror 2.0.12", -] - [[package]] name = "syn" version = "1.0.109" @@ -15045,12 +14632,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "twox-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - [[package]] name = "typenum" version = "1.18.0" @@ -15500,27 +15081,11 @@ dependencies = [ "num-traits", "smallvec", "spin 0.9.8", - "wasmi_collections 0.32.3", - "wasmi_core 0.32.3", + "wasmi_collections", + "wasmi_core", "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 0.40.0", - "wasmi_core 0.40.0", - "wasmi_ir", - "wasmparser 0.221.3", -] - [[package]] name = "wasmi_collections" version = "0.32.3" @@ -15532,12 +15097,6 @@ dependencies = [ "string-interner", ] -[[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.32.3" @@ -15550,25 +15109,6 @@ 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" @@ -15579,15 +15119,6 @@ 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" @@ -15616,7 +15147,7 @@ dependencies = [ "rayon", "serde", "target-lexicon", - "wasmparser 0.102.0", + "wasmparser", "wasmtime-cache", "wasmtime-cranelift", "wasmtime-environ", @@ -15671,7 +15202,7 @@ dependencies = [ "object 0.30.4", "target-lexicon", "thiserror 1.0.69", - "wasmparser 0.102.0", + "wasmparser", "wasmtime-cranelift-shared", "wasmtime-environ", ] @@ -15706,7 +15237,7 @@ dependencies = [ "serde", "target-lexicon", "thiserror 1.0.69", - "wasmparser 0.102.0", + "wasmparser", "wasmtime-types", ] @@ -15789,7 +15320,7 @@ dependencies = [ "cranelift-entity", "serde", "thiserror 1.0.69", - "wasmparser 0.102.0", + "wasmparser", ] [[package]] @@ -16376,7 +15907,7 @@ dependencies = [ "data-encoding", "der-parser 9.0.0", "lazy_static", - "nom 7.1.3", + "nom", "oid-registry 0.7.1", "rusticata-macros", "thiserror 1.0.69", @@ -16393,7 +15924,7 @@ dependencies = [ "data-encoding", "der-parser 10.0.0", "lazy_static", - "nom 7.1.3", + "nom", "oid-registry 0.8.1", "rusticata-macros", "thiserror 2.0.12", @@ -16463,12 +15994,6 @@ 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 2e7dbe5841..2fb9ea9644 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,8 +112,6 @@ proc-macro-warning = { version = "1", default-features = false } expander = "2" ahash = { version = "0.8", default-features = false } regex = { version = "1.11.1", default-features = false } -subxt = { version = "0.44", default-features = true } # temp dependency to get API -rustls-webpki = "0.103" # a dependency for linux version of subxt framework frame = { package = "polkadot-sdk-frame", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-6", default-features = false } frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-stable2503-6", default-features = false } diff --git a/node/Cargo.toml b/node/Cargo.toml index 127e83d12a..09458410ff 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -120,9 +120,6 @@ 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"] } -subxt = { version = "0.44", default-features = true } # temp dependency to get API -rustls-webpki = "0.103" # 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 4fdf2aea62..9bf3056b54 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -10,13 +10,13 @@ use sc_consensus_grandpa::BlockNumberOps; use sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging; use sc_consensus_slots::SlotProportion; use sc_network::config::SyncMode; -use sc_network_sync::strategy::warp::WarpSyncConfig; +use sc_network_sync::strategy::warp::{WarpSyncConfig, WarpSyncProvider}; use sc_service::{Configuration, PartialComponents, TaskManager, error::Error as ServiceError}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, log}; use sc_transaction_pool::TransactionPoolHandle; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_core::H256; -use sp_runtime::traits::{Block as BlockT, Header, NumberFor}; +use sp_runtime::traits::{Block as BlockT, NumberFor}; use std::collections::HashSet; use std::str::FromStr; use std::sync::atomic::AtomicBool; @@ -316,9 +316,14 @@ where config.chain_spec.chain_type() ); net_config.add_notification_protocol(grandpa_protocol_config); - - let warp_sync_header = get_new_block_header().await; - Some(WarpSyncConfig::WithTarget(warp_sync_header)) + let warp_sync: Arc> = + Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( + backend.clone(), + grandpa_link.shared_authority_set().clone(), + sc_consensus_grandpa::warp_proof::HardForks::new_initial_set_id(set_id), + )); + + Some(WarpSyncConfig::WithProvider(warp_sync)) }; let (network, system_rpc_tx, tx_handler_controller, sync_service) = @@ -573,7 +578,7 @@ where let grandpa_config = sc_consensus_grandpa::Config { // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(30000), + gossip_duration: Duration::from_millis(333), justification_generation_period: GRANDPA_JUSTIFICATION_PERIOD, name: Some(name), observer_enabled: false, @@ -753,60 +758,3 @@ fn run_manual_seal_authorship( .spawn_blocking("manual-seal", None, manual_seal); Ok(()) } - -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.dev.opentensor.ai:8443") - .await - .expect("Could not compose an API client from the URL"); - let block = api - .blocks() - .at( - H256::from_str("0xa3fda9b8042bda6c429b5c21745b82a57340cec0f35ff1ece14326f507769f57") - .unwrap(), - ) - .await - .expect("Could not subscribe to API"); - log::info!("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 }, - ); -} From e31ec89c37ce6bd287ce3e2fcc3db0c4fbbceb3a Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Mon, 22 Sep 2025 11:07:45 +0200 Subject: [PATCH 4/5] change badblock hash to block #5440001 --- chainspecs/plain_spec_testfinney.json | 2 +- chainspecs/raw_spec_testfinney.json | 2 +- node/src/chain_spec/testnet.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chainspecs/plain_spec_testfinney.json b/chainspecs/plain_spec_testfinney.json index 736250a0ed..5217760ced 100644 --- a/chainspecs/plain_spec_testfinney.json +++ b/chainspecs/plain_spec_testfinney.json @@ -14,7 +14,7 @@ }, "forkBlocks": null, "badBlocks": [ - "0xad24a84e6a7ee6066de3ddeac7018c26c66d812fc8df6d7182604776c17e04f4" + "0xf0b30766cc9185967d9f500ffbc67114008c49f54dbf84a6088d5902dee13d49" ], "codeSubstitutes": {}, "genesis": { diff --git a/chainspecs/raw_spec_testfinney.json b/chainspecs/raw_spec_testfinney.json index e3828c0e15..a63dd08664 100644 --- a/chainspecs/raw_spec_testfinney.json +++ b/chainspecs/raw_spec_testfinney.json @@ -14,7 +14,7 @@ }, "forkBlocks": null, "badBlocks": [ - "0xad24a84e6a7ee6066de3ddeac7018c26c66d812fc8df6d7182604776c17e04f4" + "0xf0b30766cc9185967d9f500ffbc67114008c49f54dbf84a6088d5902dee13d49" ], "codeSubstitutes": {}, "genesis": { diff --git a/node/src/chain_spec/testnet.rs b/node/src/chain_spec/testnet.rs index 90da63ed2b..fcc4ffd94e 100644 --- a/node/src/chain_spec/testnet.rs +++ b/node/src/chain_spec/testnet.rs @@ -47,7 +47,7 @@ pub fn finney_testnet_config() -> Result { Extensions { bad_blocks: Some(HashSet::from_iter(vec![ H256::from_str( - "0xad24a84e6a7ee6066de3ddeac7018c26c66d812fc8df6d7182604776c17e04f4", + "0xf0b30766cc9185967d9f500ffbc67114008c49f54dbf84a6088d5902dee13d49", ) .unwrap(), ])), From b52d35745b2d2eb73196fe37a7256584eb32365b Mon Sep 17 00:00:00 2001 From: prop-opentensor Date: Mon, 22 Sep 2025 17:41:26 +0200 Subject: [PATCH 5/5] change badblock hash to block #5440668 --- chainspecs/plain_spec_testfinney.json | 2 +- chainspecs/raw_spec_testfinney.json | 2 +- node/src/chain_spec/testnet.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chainspecs/plain_spec_testfinney.json b/chainspecs/plain_spec_testfinney.json index 5217760ced..7f34d0ca35 100644 --- a/chainspecs/plain_spec_testfinney.json +++ b/chainspecs/plain_spec_testfinney.json @@ -14,7 +14,7 @@ }, "forkBlocks": null, "badBlocks": [ - "0xf0b30766cc9185967d9f500ffbc67114008c49f54dbf84a6088d5902dee13d49" + "0xb5359f22750dd90f088126226669ea4bfcfa802dbc5d7469d294e96cee9b0f17" ], "codeSubstitutes": {}, "genesis": { diff --git a/chainspecs/raw_spec_testfinney.json b/chainspecs/raw_spec_testfinney.json index a63dd08664..890b88b3ae 100644 --- a/chainspecs/raw_spec_testfinney.json +++ b/chainspecs/raw_spec_testfinney.json @@ -14,7 +14,7 @@ }, "forkBlocks": null, "badBlocks": [ - "0xf0b30766cc9185967d9f500ffbc67114008c49f54dbf84a6088d5902dee13d49" + "0xb5359f22750dd90f088126226669ea4bfcfa802dbc5d7469d294e96cee9b0f17" ], "codeSubstitutes": {}, "genesis": { diff --git a/node/src/chain_spec/testnet.rs b/node/src/chain_spec/testnet.rs index fcc4ffd94e..5bb19773e5 100644 --- a/node/src/chain_spec/testnet.rs +++ b/node/src/chain_spec/testnet.rs @@ -47,7 +47,7 @@ pub fn finney_testnet_config() -> Result { Extensions { bad_blocks: Some(HashSet::from_iter(vec![ H256::from_str( - "0xf0b30766cc9185967d9f500ffbc67114008c49f54dbf84a6088d5902dee13d49", + "0xb5359f22750dd90f088126226669ea4bfcfa802dbc5d7469d294e96cee9b0f17", ) .unwrap(), ])),