1 year ago

#205023

test-img

Proton

How are blocks processed while syncing Ethereum blockchain in full sync mode?

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).

Output:

{"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 192 were executed before opcodes of block number 191. 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 192 needs an initial state trie(which is state trie generated after processing all the data of block 191) to process the transactions.

blockchain

ethereum

opcode

geth

evm

0 Answers

Your Answer

Accepted video resources