I have been trying to sync an ethereum node with geth for quite a while. Therefore I am evaluating alternative node clients to install on my server. I’ve read that nethermind is faster as it does not store and process receipts and block headers. I was wondering what were the trade offs of not storing such pieces of data. Thanks for the help
1 Answer
Each Ethereum node stores:
- state (data about Ethereum accounts and smart contracts)
- block headers (basic block metadata)
- block bodies (all transactions in the block)
- receipts (transaction receipts with info about the the execution results and generated logs)
without block bodies you cannot retrieve historical transactions
without receipts you cannot query your node about the logs from the past
without headers you do not verify PoW before the pivot block that you configure in the config file
===
without receipts you cannot serve other fast syncing clients (assuming they need receipts)
without bodies you cannot serve any fast syncing client (assuming it requires bodies) and you cannot serve any node that tries to build an archive state
without headers you cannot serve any nodes syncing from 0
you can also set ReceiptsBarrier and BodiesBarrier to only sync bodies and receipts up to some point in time in the past -> many users do that when they only need recent receipts to serve Eth2 nodes
-
Welcome to the Ethereum Stack Exchange! Can you clarify in answer if Nethermind stores headers and receipts? Is it appropriate to ask a separate question about why is Nethermind faster?– eth ♦Commented Feb 19, 2021 at 4:12
-
not downloading receipts makes the sync faster and the disk space used lower Commented Feb 22, 2021 at 15:23
-
headers are stored by default in Nethermind for all networks Commented Feb 22, 2021 at 15:23
-
also receipts and bodies are by default stored by Nethermind for Mainnet but with barriers set to the Eth2 genesis block Commented Feb 22, 2021 at 15:24