本文对EthereumJ的区块链相关的代码做一个简单的介绍。
以太坊区块链
以太坊区块链是在Bitcoin区块链的基础上发展起来的。区块链的数据结构既保留了Bitcoin区块链验证数据的真实性和完整性的功能。同时,以太坊在区块链里保存了Account的State,如nonce,balance等,可以实现更加先进的功能(详情可以参考:https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/)。
以太坊区块链采用了Merkle Patricia Tree的数据结构来保存数据(详情可以参考:https://github.com/ethereum/wiki/wiki/Patricia-Tree),简称为Trie结构。以太坊区块链采用Trie结构保存三种数据:
l Account state。
l 每一个block里的Transaction list。
l 每一个block里的TransactionReceipt list。
其中Transaction list和TransactionReceiptlist的Trie结构只需要临时创建以校验每一个block的真实性。而Account state的Trie结构需要保存起来。
Accountstate的Trie结构可以参考下面的简单示例图。