I am trying to get all the transaction data from an old (ancient?) block to the current block using Web3.eth.getTransaction().

However, in the current version of geth, I can't do that without using --gcmode archive. Also, this requires a large capacity SSD (currently about 8TB), but I don't have such a large capacity SSD.

Is there any way to use geth without --gcmode archive to achieve the above with a not-so-large capacity SSD (up to about 2TB)?

I checked the history of chain data size for full nodes on etherscan.io. If the chain data size is increasing at the traditional pace and not decreasing, why is it no longer possible to get all the transaction data in the current version of geth? I remember that in the old version of geth, I could do that by using --syncmode full, without using --gcmode archive.

My environment is following.

1 Answer 1


You don't need to run archival node in order to have ancient transactions. Blocks and Transactions from block 0 are present on every Full geth node without exception.

The only nuance here is that the index of transactions from older blocks was dropped to save on disk space (the default). To restore this index just run your geth with --txlookuplimit=0 option.

  • Thank you for your reply. I can get ancient transactions. Regarding --txlookuplimit option, I checked that it is described explanation on geth v1.10.0 in Releases page of github.
    – Pierogi
    Aug 26, 2021 at 0:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.