EthereumJ是Ethereum协议的纯java实现。
在EthereumJ里面,
最底层的DataSource提供了数据的persistence。数据采用的是格式,以byte的形式保存,缺省使用的是Facebook的RocksDB。
Blockchain Management实现了以太坊定义的Trie node,Transaction,Block,Block chain等数据结构,以及这些数据结构的管理功能。
P2P Network实现了以太坊定义的devp2p协议,实现了以太坊的网络的,nodes之间的发现和nodes之间的通信功能。
Sync Management,实现了以太坊网络nodes之间同步blocks/Transactions的功能。
Block Mining实现了Ethash协议定义的block生成以及产生共识的功能。
Program/VM实现了Solidity的compile和prgram的执行功能。