Skip to content

Conversation

@jimjbrettj
Copy link

Motivation

Draft PR to show what I have currently for mocking inherent data and digests to support assethub forking

Solution

PR Checklist

  • Added Tests
  • Added Documentation
  • Breaking changes

@alindima
Copy link

This includes a bunch of unrelated commits, making it very difficult to review. Please only add your changes

@jimjbrettj
Copy link
Author

This includes a bunch of unrelated commits, making it very difficult to review. Please only add your changes

updated

Copy link

@skunert skunert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments. I think its going in the right direction, but slot duration and para id need to be read from the runtime.

Copy link

@iulianbarbu iulianbarbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, looks like there is some progress in terms mocking inherents.

@iulianbarbu
Copy link

iulianbarbu commented Nov 21, 2025

One other important thing to note for all the comments left so far is that I've been able to consistently produce blocks 6 seconds apart with the storage fetching in the PR, and with the adjustments I suggested in the comments, from an asset-hub-westend network started with zombienet like so (copied from ChainSafe#8, and modified slightly):

    1. Install zombinets: https://github.com/paritytech/zombienet
    2. build polkadot-parachain, polkadot, polkadot-execute-worker and polkadot-prepare-worker based on the polkadot-sdk commit found in the Cargo.lock of this branch, and ensure they are on the PATH.
    3.  curl https://raw.githubusercontent.com/paritytech/polkadot-sdk/refs/heads/master/cumulus/zombienet/examples/asset_hub_westend_local_network.toml > asset-hub_westend_zombient.toml
    4. modify the zombienet network spec from 3. in the `parachains` section, by specifying the `chain = "asset-hub-westend-dev"`.
    5. Run zombienet zombienet spawn --provider native asset-hub_westend_zombient.toml
    6. Take one collator RPC port (can be found associated to the polkadotjs url, emitted by zombienet, when 5. finishes)
    7.  Run `cargo run -p anvil-polkadot -- --fork-url http://127.0.0.1:<port> --block-time 6`

I would say that shortly after addressing the comments we should look into the testing based on the mining strategies discussed.

@iulianbarbu
Copy link

iulianbarbu commented Nov 24, 2025

There is another concern (@alindima reminded me) related to coinbase. If we fork from a state with multiple aura authorities, the coinbase address used to mine blocks will probably vary based on the slot. This should be tested and confirmed. I am not sure if we should restrict the blocks to be built by a single authority though (which implies reducing the authorities set to a single authority right after the forking).

Also, we must test that setting a certain coinbase address will consider only that coinbase address for every new built block from that point on.

LE: Standard anvil does not modify the coinbase when forking, so we must modify the authorities set either way to overwrite what's on the fork. If no coinbase is given via genesis configuration, the coinbase is set to the default 0x00.. default address.
Screenshot 2025-11-24 at 10 28 00

@jimjbrettj
Copy link
Author

One other important thing to note for all the comments left so far is that I've been able to consistently produce blocks 6 seconds apart with the storage fetching in the PR, and with the adjustments I suggested in the comments, from an asset-hub-westend network started with zombienet like so (copied from ChainSafe#8, and modified slightly):

    1. Install zombinets: https://github.com/paritytech/zombienet
    2. build polkadot-parachain, polkadot, polkadot-execute-worker and polkadot-prepare-worker based on the polkadot-sdk commit found in the Cargo.lock of this branch, and ensure they are on the PATH.
    3.  curl https://raw.githubusercontent.com/paritytech/polkadot-sdk/refs/heads/master/cumulus/zombienet/examples/asset_hub_westend_local_network.toml > asset-hub_westend_zombient.toml
    4. modify the zombienet network spec from 3. in the `parachains` section, by specifying the `chain = "asset-hub-westend-dev"`.
    5. Run zombienet zombienet spawn --provider native asset-hub_westend_zombient.toml
    6. Take one collator RPC port (can be found associated to the polkadotjs url, emitted by zombienet, when 5. finishes)
    7.  Run `cargo run -p anvil-polkadot -- --fork-url http://127.0.0.1:<port> --block-time 6`

I would say that shortly after addressing the comments we should look into the testing based on the mining strategies discussed.

Update: Step 7 should use was instead of HTTP, so http://127.0.0.1:<port> should be replaced with ws://127.0.0.1:<port>

Copy link

@iulianbarbu iulianbarbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice 🚀 ! Block production seems to work with <6s and >=6s block-times right away with the branch now. We can continue the testing in the meantime, until lazy loading backend is available in the feature branch, and you can rebase on top of it (and use it instead of the BackendWithOverlay). And then continue the testing on a ready to be merged version of this work.

In the meantime, I discovered a scenario that causes issues:

1. start the zombienet network as described in a previous comment
2. start anvil-polkadot with no mining like so: `cargo run -p anvil-polkadot -- --fork-url <url>
3. run:
3.1 `cargo run -p cast -- rpc evm_mine`
3.2 `cargo run -p cast -- rpc evm_setTime 1764161024 # (or unix time in the past relative to you)
3.3 `cargo run -p cast -- rpc evm_mine` # (should fail without the fix in the diff below)
3.4 `cargo run -p cast -- rpc evm_mine` # (do it once more to ensure we can build on top of a block with timestamp in the past, after the fix)
--- a/crates/anvil-polkadot/src/api_server/server.rs
+++ b/crates/anvil-polkadot/src/api_server/server.rs
@@ -66,6 +66,8 @@
     sc_service::{InPoolTransaction, SpawnTaskHandle, TransactionPool},
     sp_api::{Metadata as _, ProvideRuntimeApi},
     sp_blockchain::Info,
+    sp_consensus_aura::AuraApi,
+    sp_consensus_babe::Slot,
     sp_core::{self, Hasher, keccak_256},
     sp_runtime::{FixedU128, traits::BlakeTwo256},
 };
@@ -519,13 +521,24 @@ fn set_time(&self, timestamp: U256) -> Result<u64> {
         }
         let time = timestamp.to::<u64>();
         let time_ms = time.saturating_mul(1000);
+
         // Get the time for the last block.
         let latest_block = self.latest_block();
         let last_block_timestamp = self.backend.read_timestamp(latest_block)?;
+
         // Inject the new time if the timestamp precedes last block time
         if time_ms < last_block_timestamp {
             self.backend.inject_timestamp(latest_block, time_ms);
+            let current_aura_slot = self.backend.read_aura_current_slot(latest_block)?;
+            let updated_aura_slot = time_ms
+                .saturating_div(self.client.runtime_api().slot_duration(latest_block)?.as_millis());
+            if current_aura_slot > updated_aura_slot {
+                self.backend.inject_aura_current_slot(latest_block, Slot::from(updated_aura_slot));
+                self.backend
+                    .inject_relay_slot_info(latest_block, (Slot::from(updated_aura_slot), 0));
+            }
         }
+
         Ok(self.mining_engine.set_time(Duration::from_secs(time)))
     }

@iulianbarbu
Copy link

@jimjbrettj , another issue you'll face, when sending transactions to the node to test the auto mining, is a panic, which stops the node and happens in our sendTransaction RPC handler, related to looking for the chain id in the storage, which doesn't exist in an asset-hub forked state, since the chain id there is constant and unmodifiable.

We agreed some time ago that modifying the chain id will not work when forking, but sending transactions should still work by detecting we started the node from a fork, and use the chain id from the fork. Unfortunately there isn't a runtime API to get it, and the chain id is hardcoded in asset-hub-westend to 420_420_421. Not sure if the same chain id will be used for polkadot/kusama, or other assethub chains, but for now we shouldn't block with the testing in this, and just hardcode the chain id as well.

@alindima
Copy link

@jimjbrettj , another issue you'll face, when sending transactions to the node to test the auto mining, is a panic, which stops the node and happens in our sendTransaction RPC handler, related to looking for the chain id in the storage, which doesn't exist in an asset-hub forked state, since the chain id there is constant and unmodifiable.

We agreed some time ago that modifying the chain id will not work when forking, but sending transactions should still work by detecting we started the node from a fork, and use the chain id from the fork. Unfortunately there isn't a runtime API to get it, and the chain id is hardcoded in asset-hub-westend to 420_420_421. Not sure if the same chain id will be used for polkadot/kusama, or other assethub chains, but for now we shouldn't block with the testing in this, and just hardcode the chain id as well.

hm it's part of the chain metadata, so can be queried through subxt if not found in storage

@iulianbarbu
Copy link

@jimjbrettj , another issue you'll face, when sending transactions to the node to test the auto mining, is a panic, which stops the node and happens in our sendTransaction RPC handler, related to looking for the chain id in the storage, which doesn't exist in an asset-hub forked state, since the chain id there is constant and unmodifiable.
We agreed some time ago that modifying the chain id will not work when forking, but sending transactions should still work by detecting we started the node from a fork, and use the chain id from the fork. Unfortunately there isn't a runtime API to get it, and the chain id is hardcoded in asset-hub-westend to 420_420_421. Not sure if the same chain id will be used for polkadot/kusama, or other assethub chains, but for now we shouldn't block with the testing in this, and just hardcode the chain id as well.

hm it's part of the chain metadata, so can be queried through subxt if not found in storage

You mean the runtime metadata? It should be doable then to handle this inside the chain_id getter on the ApiServer.

@alindima
Copy link

@jimjbrettj , another issue you'll face, when sending transactions to the node to test the auto mining, is a panic, which stops the node and happens in our sendTransaction RPC handler, related to looking for the chain id in the storage, which doesn't exist in an asset-hub forked state, since the chain id there is constant and unmodifiable.
We agreed some time ago that modifying the chain id will not work when forking, but sending transactions should still work by detecting we started the node from a fork, and use the chain id from the fork. Unfortunately there isn't a runtime API to get it, and the chain id is hardcoded in asset-hub-westend to 420_420_421. Not sure if the same chain id will be used for polkadot/kusama, or other assethub chains, but for now we shouldn't block with the testing in this, and just hardcode the chain id as well.

hm it's part of the chain metadata, so can be queried through subxt if not found in storage

You mean the runtime metadata? It should be doable then to handle this inside the chain_id getter on the ApiServer.

Yes, I think it should be very easy

@iulianbarbu
Copy link

Small update: through the edge cases I ran, I am quite confident that this logic is pretty much there against our mining strategies, delta the comments left so far. Here is a log excerpt where we can see a few things I tried. I tested individually and also mixed all mining modes: auto mining, interval based mining, and evm_mine RPC calls, while tweaking the time to past and future.

Excerpt
2025-11-26T16:00:24.532386Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:00:24.532430Z  INFO parachain-system: included_head: 0x32321a1a6ca98a71f3b8c315b67a52be51a42f1aba3b3455c8eff58b53de11d5
2025-11-26T16:00:24.534473Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:00:24.536003Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15907 (5 ms) hash: 0x10a93bc7c66e3561b6d851ac5657d3dd77523866985fcf9b457dfb29486e617e; parent_hash: 0x3232…11d5; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:00:26.241870Z  INFO node::user: eth_chainId
2025-11-26T16:00:26.244188Z  INFO node::user: eth_getTransactionCount
2025-11-26T16:00:26.245545Z  INFO node::user: eth_gasPrice
2025-11-26T16:00:26.246660Z  INFO node::user: eth_estimateGas
2025-11-26T16:00:26.251102Z  INFO node::user: eth_sendRawTransaction
2025-11-26T16:00:26.252207Z  INFO node::user: eth_blockNumber
2025-11-26T16:00:26.252585Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x10a93bc7c66e3561b6d851ac5657d3dd77523866985fcf9b457dfb29486e617e (#15907)
2025-11-26T16:00:26.253044Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:00:26.253596Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:26.254125Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:00:26.254160Z  INFO parachain-system: included_head: 0x10a93bc7c66e3561b6d851ac5657d3dd77523866985fcf9b457dfb29486e617e
2025-11-26T16:00:26.257124Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:26.257413Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:00:26.259214Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:26.259549Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15908 (6 ms) hash: 0xa908b6508aec2ec5dfc00b7ce390f03969d8783a080816cbb6b80701dace0db9; parent_hash: 0x10a9…617e; end: NoMoreTransactions; extrinsics_count: 3
2025-11-26T16:00:26.504798Z  INFO node::user: eth_blockNumber
2025-11-26T16:00:26.505854Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:00:26.508426Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:30.480060Z  INFO node::user: eth_chainId
2025-11-26T16:00:30.482923Z  INFO node::user: eth_getTransactionCount
2025-11-26T16:00:30.484232Z  INFO node::user: eth_gasPrice
2025-11-26T16:00:30.485311Z  INFO node::user: eth_estimateGas
2025-11-26T16:00:30.490115Z  INFO node::user: eth_sendRawTransaction
2025-11-26T16:00:30.491041Z  INFO node::user: eth_blockNumber
2025-11-26T16:00:30.491468Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xa908b6508aec2ec5dfc00b7ce390f03969d8783a080816cbb6b80701dace0db9 (#15908)
2025-11-26T16:00:30.491728Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:00:30.492202Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:30.492915Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:00:30.492932Z  INFO parachain-system: included_head: 0xa908b6508aec2ec5dfc00b7ce390f03969d8783a080816cbb6b80701dace0db9
2025-11-26T16:00:30.493852Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:30.495373Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:00:30.495554Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:30.496727Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15909 (5 ms) hash: 0x689e01773a2594324109856b89419fca11db657644d59ce3d4f35b4513f71644; parent_hash: 0xa908…0db9; end: NoMoreTransactions; extrinsics_count: 3
2025-11-26T16:00:30.743233Z  INFO node::user: eth_blockNumber
2025-11-26T16:00:30.744294Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:00:30.746530Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:39.529955Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x689e01773a2594324109856b89419fca11db657644d59ce3d4f35b4513f71644 (#15909)
2025-11-26T16:00:39.532095Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:00:39.532140Z  INFO parachain-system: included_head: 0x689e01773a2594324109856b89419fca11db657644d59ce3d4f35b4513f71644
2025-11-26T16:00:39.534835Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:00:39.536831Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15910 (6 ms) hash: 0xcf19bcd151ae47ffaef0586be2f43b36e2f6096d863ca886b9d2a80c3818d0cb; parent_hash: 0x689e…1644; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:00:48.442006Z  INFO node::user: evm_setTime
2025-11-26T16:00:54.530452Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xcf19bcd151ae47ffaef0586be2f43b36e2f6096d863ca886b9d2a80c3818d0cb (#15910)
2025-11-26T16:00:54.532590Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:00:54.532634Z  INFO parachain-system: included_head: 0xcf19bcd151ae47ffaef0586be2f43b36e2f6096d863ca886b9d2a80c3818d0cb
2025-11-26T16:00:54.534669Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:00:54.536142Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15911 (5 ms) hash: 0x02b56f2897d63acc5df8ce298f43fdb1ba3863120b26090a03f71c70aae7b8cb; parent_hash: 0xcf19…d0cb; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:00:59.854868Z  INFO node::user: eth_chainId
2025-11-26T16:00:59.857098Z  INFO node::user: eth_getTransactionCount
2025-11-26T16:00:59.858309Z  INFO node::user: eth_gasPrice
2025-11-26T16:00:59.859629Z  INFO node::user: eth_estimateGas
2025-11-26T16:00:59.864147Z  INFO node::user: eth_sendRawTransaction
2025-11-26T16:00:59.865119Z  INFO node::user: eth_blockNumber
2025-11-26T16:00:59.865717Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x02b56f2897d63acc5df8ce298f43fdb1ba3863120b26090a03f71c70aae7b8cb (#15911)
2025-11-26T16:00:59.865885Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:00:59.866438Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:59.867508Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:00:59.867549Z  INFO parachain-system: included_head: 0x02b56f2897d63acc5df8ce298f43fdb1ba3863120b26090a03f71c70aae7b8cb
2025-11-26T16:00:59.867833Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:59.869580Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:00:59.871283Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:00:59.873569Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15912 (7 ms) hash: 0x74e49c82929aaf1cf06607d4015c9c8c521b04068dfd54ddd4ce8f6406f1a1d1; parent_hash: 0x02b5…b8cb; end: NoMoreTransactions; extrinsics_count: 3
2025-11-26T16:01:00.117648Z  INFO node::user: eth_blockNumber
2025-11-26T16:01:00.118462Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:01:00.120164Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:01:03.323858Z  INFO node::user: eth_chainId
2025-11-26T16:01:03.326228Z  INFO node::user: eth_getTransactionCount
2025-11-26T16:01:03.327507Z  INFO node::user: eth_gasPrice
2025-11-26T16:01:03.329254Z  INFO node::user: eth_estimateGas
2025-11-26T16:01:03.333838Z  INFO node::user: eth_sendRawTransaction
2025-11-26T16:01:03.335384Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x74e49c82929aaf1cf06607d4015c9c8c521b04068dfd54ddd4ce8f6406f1a1d1 (#15912)
2025-11-26T16:01:03.335611Z  INFO node::user: eth_blockNumber
2025-11-26T16:01:03.335732Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:01:03.336400Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:01:03.336422Z  INFO parachain-system: included_head: 0x74e49c82929aaf1cf06607d4015c9c8c521b04068dfd54ddd4ce8f6406f1a1d1
2025-11-26T16:01:03.337018Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:01:03.337710Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:01:03.338342Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:01:03.339375Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15913 (3 ms) hash: 0x6238e621473fdbb36bedfb6ec192ba39dc4aa48b4d955450bf3b55eaba98ebed; parent_hash: 0x74e4…a1d1; end: NoMoreTransactions; extrinsics_count: 3
2025-11-26T16:01:03.339735Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:01:03.587946Z  INFO node::user: eth_blockNumber
2025-11-26T16:01:03.589144Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:01:03.590062Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:01:09.119848Z  INFO node::user: evm_mine
2025-11-26T16:01:09.120499Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x6238e621473fdbb36bedfb6ec192ba39dc4aa48b4d955450bf3b55eaba98ebed (#15913)
2025-11-26T16:01:09.122191Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:01:09.122223Z  INFO parachain-system: included_head: 0x6238e621473fdbb36bedfb6ec192ba39dc4aa48b4d955450bf3b55eaba98ebed
2025-11-26T16:01:09.124438Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:01:09.126085Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15914 (5 ms) hash: 0xec1095e944e673b8cf36b3faa0f1d8f45e6330cfc8169c28475813fdcc25da97; parent_hash: 0x6238…ebed; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:01:09.129154Z  INFO node::user:     Block Number: 15914
2025-11-26T16:01:09.129171Z  INFO node::user:     Block Hash: 0xec1095e944e673b8cf36b3faa0f1d8f45e6330cfc8169c28475813fdcc25da97
2025-11-26T16:01:09.129188Z  INFO node::user:     Block Time: "Wed, 26 Nov 2025 15:13:40 +0000"

2025-11-26T16:01:09.529810Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xec1095e944e673b8cf36b3faa0f1d8f45e6330cfc8169c28475813fdcc25da97 (#15914)
2025-11-26T16:01:09.532165Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:01:09.532213Z  INFO parachain-system: included_head: 0xec1095e944e673b8cf36b3faa0f1d8f45e6330cfc8169c28475813fdcc25da97
2025-11-26T16:01:09.534812Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:01:09.536618Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15915 (6 ms) hash: 0xa383b4d1d4733d6450caa06009f077a29087ced855bf8959b7251b468eaca5a1; parent_hash: 0xec10…da97; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:01:24.529800Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xa383b4d1d4733d6450caa06009f077a29087ced855bf8959b7251b468eaca5a1 (#15915)
2025-11-26T16:01:24.531963Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:01:24.532008Z  INFO parachain-system: included_head: 0xa383b4d1d4733d6450caa06009f077a29087ced855bf8959b7251b468eaca5a1
2025-11-26T16:01:24.534204Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:01:24.535583Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15916 (5 ms) hash: 0xd3f5ac307659fb6f2870b9f38cff607a175d17e111118d324083f27dc4f1bea1; parent_hash: 0xa383…a5a1; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T15:06:52.065145Z  INFO eth-rpc::client: Node does not have getAutomine RPC. Defaulting to automine=false. error: Client(JsonRpc(ErrorObject { code: MethodNotFound, message: "Method not found", data: None }))
2025-11-26T15:06:52.065285Z  INFO eth-rpc::client: 🔌 Subscribing to new blocks (BestBlocks)
2025-11-26T15:06:52.065439Z  INFO eth-rpc::client: 🔌 Subscribing to new blocks (FinalizedBlocks)
2025-11-26T15:07:07.031013Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xe95f65508e016d69c8f2fb68dbbeec2cbf472a84f526c4cd30368da23023b77e (#15513)
2025-11-26T15:07:07.033645Z  INFO parachain-system: unincluded_segment_len: 3
2025-11-26T15:07:07.033681Z  INFO parachain-system: included_head: 0xe95f65508e016d69c8f2fb68dbbeec2cbf472a84f526c4cd30368da23023b77e
2025-11-26T15:07:07.036649Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T15:07:07.038224Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15514 (6 ms) hash: 0x70f7a67cee782d08e3637efb17c2ee09446e0c77c40725f721848bfa4f295751; parent_hash: 0xe95f…b77e; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T15:07:22.031007Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x70f7a67cee782d08e3637efb17c2ee09446e0c77c40725f721848bfa4f295751 (#15514)
2025-11-26T15:07:22.033153Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T15:07:22.033193Z  INFO parachain-system: included_head: 0x70f7a67cee782d08e3637efb17c2ee09446e0c77c40725f721848bfa4f295751
2025-11-26T15:07:22.036203Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T15:07:22.038410Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15515 (7 ms) hash: 0x8ef97bfb2f4557f59dbfc573807cfe1dd371c9680557ce8fb447e381d7975c0f; parent_hash: 0x70f7…5751; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T15:07:37.031179Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x8ef97bfb2f4557f59dbfc573807cfe1dd371c9680557ce8fb447e381d7975c0f (#15515)
2025-11-26T15:07:37.033729Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T15:07:37.033783Z  INFO parachain-system: included_head: 0x8ef97bfb2f4557f59dbfc573807cfe1dd371c9680557ce8fb447e381d7975c0f
2025-11-26T15:07:37.036636Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T15:07:37.038251Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15516 (6 ms) hash: 0xe6be982e4a54c5707111b8265fb887cee1714157d29b0c14783c71cd0607cf30; parent_hash: 0x8ef9…5c0f; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T15:07:52.031157Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xe6be982e4a54c5707111b8265fb887cee1714157d29b0c14783c71cd0607cf30 (#15516)
2025-11-26T15:07:52.033247Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T15:07:52.033291Z  INFO parachain-system: included_head: 0xe6be982e4a54c5707111b8265fb887cee1714157d29b0c14783c71cd0607cf30
2025-11-26T15:07:52.036047Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T15:07:52.037534Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15517 (6 ms) hash: 0x13cdb34aa26d32c9b5ec0f1cbd64071b986b4de4a01174b66d78d143c01abf2d; parent_hash: 0xe6be…cf30; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T15:08:07.031298Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x13cdb34aa26d32c9b5ec0f1cbd64071b986b4de4a01174b66d78d143c01abf2d (#15517)
2025-11-26T15:08:07.033660Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T15:08:07.033696Z  INFO parachain-system: included_head: 0x13cdb34aa26d32c9b5ec0f1cbd64071b986b4de4a01174b66d78d143c01abf2d
2025-11-26T15:08:07.036603Z  INFO parachain-system: ancestor that will be a2025-11-26T16:01:39.530149Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xd3f5ac307659fb6f2870b9f38cff607a175d17e111118d324083f27dc4f1bea1 (#15916)
2025-11-26T16:01:39.532229Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:01:39.532268Z  INFO parachain-system: included_head: 0xd3f5ac307659fb6f2870b9f38cff607a175d17e111118d324083f27dc4f1bea1
2025-11-26T16:01:39.534292Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:01:39.535845Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15917 (5 ms) hash: 0xd89001646cef5dbc1d153afd8d8a45f4ff20e7add04b177616cbf636d2b64839; parent_hash: 0xd3f5…bea1; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:01:54.529557Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0xd89001646cef5dbc1d153afd8d8a45f4ff20e7add04b177616cbf636d2b64839 (#15917)
2025-11-26T16:01:54.531662Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:01:54.531712Z  INFO parachain-system: included_head: 0xd89001646cef5dbc1d153afd8d8a45f4ff20e7add04b177616cbf636d2b64839
2025-11-26T16:01:54.533889Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:01:54.535460Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15918 (5 ms) hash: 0x045ffd9576f0f108dc7c87351b7f1136edfd9c1ecc806c7f5e483cc6366d1e52; parent_hash: 0xd890…4839; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:02:09.530157Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x045ffd9576f0f108dc7c87351b7f1136edfd9c1ecc806c7f5e483cc6366d1e52 (#15918)
2025-11-26T16:02:09.532484Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:02:09.532528Z  INFO parachain-system: included_head: 0x045ffd9576f0f108dc7c87351b7f1136edfd9c1ecc806c7f5e483cc6366d1e52
2025-11-26T16:02:09.534546Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:02:09.536058Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15919 (5 ms) hash: 0x9d409066ecff816cccd975adf74aeee0657cf0bb8a856f9efc7a31ef7b9cc73a; parent_hash: 0x045f…1e52; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:02:24.530113Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x9d409066ecff816cccd975adf74aeee0657cf0bb8a856f9efc7a31ef7b9cc73a (#15919)
2025-11-26T16:02:24.532259Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:02:24.532303Z  INFO parachain-system: included_head: 0x9d409066ecff816cccd975adf74aeee0657cf0bb8a856f9efc7a31ef7b9cc73a
2025-11-26T16:02:24.534360Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:02:24.535831Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15920 (5 ms) hash: 0x0c599dd455fd4ebe50f4491b6bd466d10a1acebb4142d65360eebf93ef83f5c2; parent_hash: 0x9d40…c73a; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:02:35.487857Z  INFO node::user: evm_setTime
2025-11-26T16:02:39.529367Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x0c599dd455fd4ebe50f4491b6bd466d10a1acebb4142d65360eebf93ef83f5c2 (#15920)
2025-11-26T16:02:39.531774Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:02:39.531827Z  INFO parachain-system: included_head: 0x0c599dd455fd4ebe50f4491b6bd466d10a1acebb4142d65360eebf93ef83f5c2
2025-11-26T16:02:39.534069Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:02:39.535588Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15921 (5 ms) hash: 0x14ab4040932aa9946df79955cdf5e8f66a7ae0499c8c4742b4c3f5a19cc1e121; parent_hash: 0x0c59…f5c2; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:02:40.937600Z  INFO node::user: eth_chainId
2025-11-26T16:02:40.939840Z  INFO node::user: eth_getTransactionCount
2025-11-26T16:02:40.941169Z  INFO node::user: eth_gasPrice
2025-11-26T16:02:40.942184Z  INFO node::user: eth_estimateGas
2025-11-26T16:02:40.946437Z  INFO node::user: eth_sendRawTransaction
2025-11-26T16:02:40.947550Z  INFO node::user: eth_blockNumber
2025-11-26T16:02:40.948118Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x14ab4040932aa9946df79955cdf5e8f66a7ae0499c8c4742b4c3f5a19cc1e121 (#15921)
2025-11-26T16:02:40.948168Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:02:40.948699Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:02:40.950008Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:02:40.950047Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:02:40.950060Z  INFO parachain-system: included_head: 0x14ab4040932aa9946df79955cdf5e8f66a7ae0499c8c4742b4c3f5a19cc1e121
2025-11-26T16:02:40.951822Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:02:40.953854Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:02:40.956043Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15922 (7 ms) hash: 0x29b6eb465b7dcbabf9b8fce05d84e3b2d834d834842ab96332f2576ab7b69992; parent_hash: 0x14ab…e121; end: NoMoreTransactions; extrinsics_count: 3
2025-11-26T16:02:41.199868Z  INFO node::user: eth_blockNumber
2025-11-26T16:02:41.201471Z  INFO node::user: eth_getBlockByNumber
2025-11-26T16:02:41.202281Z  INFO node::user: eth_getTransactionReceipt
2025-11-26T16:02:45.680210Z  INFO node::user: evm_mine
2025-11-26T16:02:45.680628Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x29b6eb465b7dcbabf9b8fce05d84e3b2d834d834842ab96332f2576ab7b69992 (#15922)
2025-11-26T16:02:45.682270Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:02:45.682300Z  INFO parachain-system: included_head: 0x29b6eb465b7dcbabf9b8fce05d84e3b2d834d834842ab96332f2576ab7b69992
2025-11-26T16:02:45.683671Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:02:45.684667Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15923 (3 ms) hash: 0x0dfaf1d789b56b179e4ff0ad0d4e0585806c1b31236606bc939c5deb61c67e54; parent_hash: 0x29b6…9992; end: NoMoreTransactions; extrinsics_count: 2
2025-11-26T16:02:45.688188Z  INFO node::user:     Block Number: 15923
2025-11-26T16:02:45.688198Z  INFO node::user:     Block Hash: 0x0dfaf1d789b56b179e4ff0ad0d4e0585806c1b31236606bc939c5deb61c67e54
2025-11-26T16:02:45.688205Z  INFO node::user:     Block Time: "Wed, 26 Nov 2025 18:49:03 +0000"

2025-11-26T16:02:54.530132Z  INFO sc_basic_authorship::basic_authorship: 🙌 Starting consensus session on top of parent 0x0dfaf1d789b56b179e4ff0ad0d4e0585806c1b31236606bc939c5deb61c67e54 (#15923)
2025-11-26T16:02:54.532103Z  INFO parachain-system: unincluded_segment_len: 1
2025-11-26T16:02:54.532154Z  INFO parachain-system: included_head: 0x0dfaf1d789b56b179e4ff0ad0d4e0585806c1b31236606bc939c5deb61c67e54
2025-11-26T16:02:54.534758Z  INFO parachain-system: ancestor that will be added to unincluded segment: <wasm:stripped>
2025-11-26T16:02:54.536483Z  INFO sc_basic_authorship::basic_authorship: 🎁 Prepared block for proposing at 15924 (6 ms) hash: 0x4bb47a7cd8af180535ab12cc7a4f8a43f54dddba5ac819eb1e61f03679823051; parent_hash: 0x0dfa…7e54; end: NoMoreTransactions; extrinsics_count: 2

@alindima
Copy link

Accidentally committed a large Q file

Copy link

@iulianbarbu iulianbarbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks nice! Just the unwraps left to handle. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants