-
Notifications
You must be signed in to change notification settings - Fork 111
Description
Hello 👋
I've tried Discord and other channels but cannot find the help I need so I am resorting to opening this issue.
I have been running a Reth Flashblocks node from a snapshot for ~2 weeks and doesn't seem to be able to catch up to the chain head. It appears to complete the header/bodies for a block 2-4hrs old, but by the time it finishes all the stages its ~48hrs behind.
About 1 week ago I increased the resource usage by adjusting the stages config. Generally a 10x increase has been applied as it was previously only using ~10% of available resources.
Please let me know if I can provide any other diagnostics. Any feedback or recommendations would be greatly appreciated 🙏
Version
ghcr.io/base/node-reth:v0.12.9
Hardware
- 7F52 EPYC CPU (16c/32t @ 3.5Ghz)
- 512 Gib DDR4 memory
- 12 TB mirrored ZFS pool
- 1 Gbit up/down
CLI Args
"node",
"-vvv",
"--datadir=/data",
"--log.stdout.format",
"json",
"--ws",
"--ws.origins=*",
"--ws.addr=0.0.0.0",
"--ws.port=8546",
"--ws.api=debug,eth,net,txpool",
"--http",
"--http.corsdomain=*",
"--http.addr=0.0.0.0",
"--http.port=8545",
"--http.api=debug,eth,net,txpool,miner",
"--authrpc.addr=0.0.0.0",
"--authrpc.port=8551",
"--authrpc.jwtsecret=/jwtsecret",
"--max-outbound-peers=100",
"--chain",
"base",
"--rollup.sequencer-http=https://mainnet-sequencer.base.org",
"--rollup.disable-tx-pool-gossip",
"--disable-tx-gossip",
"--websocket-url=wss://mainnet.flashblocks.base.org/ws",
"--metrics",
"0.0.0.0:9001"Logs
Not much insight here, just a lot of noise. No errors/warnings.
This appears on every new block which I believe is expected until it has synced fully:
{"timestamp":"2025-10-21T19:51:21.268804Z","level":"ERROR","fields":{"message":"could not process Flashblock","error":"Failed to extract header for canonical block number 37143467"}}
Stages Config
[stages.headers]
downloader_max_concurrent_requests = 1000
downloader_min_concurrent_requests = 50
downloader_max_buffered_responses = 1000
downloader_request_limit = 1000
commit_threshold = 100000
[stages.bodies]
downloader_request_limit = 200
downloader_stream_batch_size = 10000
downloader_max_buffered_blocks_size_bytes = 4294967296
downloader_min_concurrent_requests = 50
downloader_max_concurrent_requests = 1000
[stages.sender_recovery]
commit_threshold = 50000000
[stages.execution]
max_blocks = 5000000
max_changes = 50000000
max_cumulative_gas = 15000000000000
max_duration = "100m"
[stages.prune]
commit_threshold = 10000000
[stages.account_hashing]
clean_threshold = 5000000
commit_threshold = 1000000
[stages.storage_hashing]
clean_threshold = 5000000
commit_threshold = 1000000
[stages.merkle]
clean_threshold = 50000
[stages.transaction_lookup]
chunk_size = 50000000
[stages.index_account_history]
commit_threshold = 1000000
[stages.index_storage_history]
commit_threshold = 1000000
[stages.etl]
file_size = 4294967296
[prune]
block_interval = 5
[prune.segments.receipts_log_filter]
[peers]
refill_slots_interval = "5s"
trusted_nodes = []
trusted_nodes_only = false
max_backoff_count = 5
ban_duration = "12h"
incoming_ip_throttle_duration = "30s"
[peers.connection_info]
max_outbound = 100
max_inbound = 30
max_concurrent_outbound_dials = 15
[peers.reputation_weights]
bad_message = -16384
bad_block = -16384
bad_transactions = -16384
already_seen_transactions = 0
timeout = -4096
bad_protocol = -2147483648
failed_to_connect = -25600
dropped = -4096
bad_announcement = -1024
[peers.backoff_durations]
low = "30s"
medium = "3m"
high = "15m"
max = "1h"
[sessions]
session_command_buffer = 32
session_event_buffer = 260
[sessions.limits]
[sessions.initial_internal_request_timeout]
secs = 20
nanos = 0
[sessions.protocol_breach_request_timeout]
secs = 120
nanos = 0
[sessions.pending_session_timeout]
secs = 20
nanos = 0