I am syncing a Geth client in full sync mode and also have made some changes in the client to log the execution time , time stamp and block number of all the opcodes executed in the Ethereum virtual machine(EVM).


{"block_no":191,"opcode":"Swap1","execution_time":69,"time_stamp":"2022-02-14 20:41:37.34015876 +0000 UTC m=+150.233632791"}
{"block_no":191,"opcode":"Return","execution_time":137,"time_stamp":"2022-02-14 20:41:37.340165417 +0000 UTC m=+150.233639449"}

{"block_no":192,"opcode":"Push1","execution_time":106,"time_stamp":"2022-02-14 20:34:44.425052394 +0000 UTC m=+11.426059327"}
{"block_no":192,"opcode":"Push1","":119,"time_stamp":"2022-02-14 20:34:44.425097606 +0000 UTC m=+11.426104535"}

I can see that some opcodes of block number 128 were executed before opcodes of block number 127. How that can be possible? or how are the data of blocks processed while syncing in a full sync mode.

Reason why that can't be possible: There is only one state trie(which gets updated after every block) that acts as a single global truth in full node unlike archive node which has many state trie . So the block number 128 needs an initial state trie(which is state trie generated after processing all the data of block 127) to process the transactions.


Your Answer

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

Browse other questions tagged or ask your own question.