1

I’m running into a persistent blocker while trying to export Ethereum token transfer data using ethereum-etl. I’ve been able to export blocks and transactions successfully, but export_token_transfers always fails with the following error:

ValueError: {'code': -32000, 'message': 'invalid block range params'} 

🧠 Setup Details Geth Command:

geth --datadir "/media/dheeman/Seagate Backup Plus Drive1/geth-new" \ --syncmode snap --gcmode full --cache 4096 \ --history.state=0 --history.transactions=0 --history.logs=0 \ --http --http.addr 127.0.0.1 --http.port 8545 \ --http.api eth,net,web3,debug,txpool \ --ws --ws.addr 127.0.0.1 --ws.port 8546 \ --ws.api eth,net,web3,debug,txpool \ --rpc.batch-request-limit 2000 --rpc.batch-response-max-size 100000000 \ --authrpc.addr 127.0.0.1 --authrpc.port 8551 \ --authrpc.jwtsecret /home/dheeman/ethereum_node/jwtsecret 

Lighthouse Command:

lighthouse bn --network mainnet \ --datadir /home/dheeman/ethereum_node/lighthouse \ --execution-endpoint http://127.0.0.1:8551 \ --execution-jwt /home/dheeman/ethereum_node/jwtsecret \ --checkpoint-sync-url https://beaconstate.info \ --http --http-address 127.0.0.1 --http-port 5052 \ --debug-level debug 

⚙️ EthereumETL Command that fails

ethereumetl export_token_transfers \ --start-block 23424771 \ --end-block 23424771 \ --provider-uri http://127.0.0.1:8545 \ --output /tmp/23424771.csv 

This command immediately throws:

ValueError: {'code': -32000, 'message': 'invalid block range params'} 

📊 Node Status (from geth attach http://127.0.0.1:8545)

> eth.blockNumber 0 > eth.syncing { currentBlock: 23516603, highestBlock: 23516710, txIndexFinishedBlocks: 0, txIndexRemainingBlocks: 1, syncedAccounts: 430328452, syncedStorageBytes: 304799056700 } 

So eth.syncing progresses, but eth.blockNumber stays at 0.

✅ What Works ethereumetl export_blocks_and_transactions → ✅ Works perfectly ethereumetl export_token_transfers → ❌ Fails every time

🧩 Environment

Ubuntu 20.04 (64-bit)

Python 3.8.5

Geth Version: 1.15.11-stable

Lighthouse v7.1.0-cfb1f73

Why does ethereumetl return “invalid block range params” when the node seems synced and works fine for other exports? Could this be because: eth.blockNumber = 0 while still healing trie nodes? Or --history.transactions=0 and --history.logs=0 preventing access to past logs? Or maybe snap sync doesn’t expose full historical logs to JSON-RPC yet? Any help or suggestions (Geth flags, sync mode, or alternate approaches) would be appreciated.

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.