以太坊区块链Java(EthereumJ)学习笔记:概述

本系列文章介绍以太坊区块链基于Java语言的解决方案。通过介绍EthereumJ定义的主要模块和Class,希望为大家学习和使用EthereumJ提供一些帮助。

整体架构

以太坊的Java解决方案主要是由两个项目来实现的:

l  EthereumJ(https://github.com/ethereum/ethereumj),实现了Ethereum定义的核心协议,完成了区块链的核心功能。

l  Ethereum Harmony(https://github.com/ether-camp/ethereum-harmony),提供了Ethereum用户访问层的功能。

 

下图描述了两个项目里的主要的模块。


在EthereumJ里面,

l  最底层的DataSource提供了数据的persistence。数据采用的是<key, value>格式,以byte的形式保存,缺省使用的是Facebook的RocksDB。

l  Blockchain Management实现了以太坊定义的Trie node,Transaction,Block,Blockchain等数据结构,以及这些数据结构的管理功能。

l  P2P Network实现了以太坊定义的devp2p协议,实现了以太坊的网络的,nodes之间的发现和nodes之间的通信功能。

l  Sync Management,实现了以太坊网络nodes之间同步blocks/Transactions的功能。

l  Block Mining实现了Ethash协议定义的block生成以及产生共识的功能。

l  Program/VM实现了Solidity的compile和prgram的执行功能。

 

在Ethereum Harmony里面,

l  Json RPC实现了以太坊定义的RPC接口,应用可以通过该RPC接口访问EthereumJ的数据,如Blocks,Transactions,Balance等。

l  Wallet实现了简单的Wallet功能,可以采用Ethereum Go相同的key store格式来保存Account的私钥。记录了Account的Balance余额。但是无法显示Account的Transactions的历史记录。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值