
eth
a person~~
I am a person
展开
-
eth2.0共识层打包一个新的区块流程
eth2.0共识层打包一个新的区块流程:原创 2023-06-14 22:21:03 · 310 阅读 · 0 评论 -
eth s.snaps.Cap(root, 128) 和 TriesInMemory
Geth 在处理每个新区块时,会创建一个新的状态树,为了优化性能,Geth 会将最近的状态树保留在内存中,而不是立即写入磁盘。当发生链重组(reorg)时,Geth 可能需要回滚到一个旧的状态,如果 Geth 在内存中保留了足够的状态树,它就可以快速地回滚到旧的状态,而不需要从磁盘中读取数据。s.snaps.Cap(root, 128) 是 Geth 的一个实际的函数调用,它在 writeBlockWithState 函数中被调用,用于在处理新的区块时修剪(pruning)旧的状态数据。原创 2023-06-14 00:48:20 · 170 阅读 · 0 评论 -
eth blockChain.go::BlockChain:writeBlockWithState
这个函数是Geth处理新区块的核心部分,但是它是一个内部函数,不会被直接暴露给用户。每当一个新的区块被网络传播到你的节点,你的节点需要将这个区块以及由这个区块引发的所有状态变化(比如账户余额的变化,智能合约的变化等等)保存到本地数据库。是一个非常重要的内部函数。这个函数的职责是将一个新的区块以及与之对应的状态更新写入到Geth的本地数据库中。将区块中的每个交易引发的状态变化写入到数据库的状态部分。将区块链的“头”(也就是最新的区块)更新为新的区块。将区块的数据写入到本地数据库的区块链部分。原创 2023-06-14 00:03:45 · 110 阅读 · 0 评论