文章是本人学习过程翻译,原文来自官方文档:https://web3j.readthedocs.io/en/latest/#
官网:https://web3j.io/
官方GitHub:https://github.com/web3j/web3j
官方demo:https://github.com/web3j/web3j/tree/master/integration-tests
文档版本v3.4.0。
web3j是一个高度模块化、反应性、类型安全的Java和Android库,与智能合约、以太坊网络客户端节点交互。
特点
- 完全实现以太坊JSON-RPC客户端API,包括HTTP和IPC接口
- Ethereum wallet support
- 自动生成java智能合约类包,使用native java代码来创建、部署、交易、调用智能合约(支持solidity和truffle定义格式)
- Reactive-functional API for working with filters
- 支持Ethereum Name Service (ENS)
- 支持Parity的personal和geth的personal客户端APIs
- 支持Infura,你不用自己去运行一个ethereum客户端
- Comprehensive integration tests demonstrating a number of the above scenarios
- 命令行工具
- 兼容Android
- 提供了支持JP Morgan's Quorum项目的java api(web3j-quorum)
Quorum:摩根大通的区块链项目Quorum,是一个基于以太坊的分布式账本协议,其具有交易与合约隐私功能 ,它是通过一种新的共识机制来实现的。
infura: 官网https://infura.io/,本地安装geth的方法需要花比较多的时间和空间来同步区块,利用infura可以简单很多,infura提供公开以太坊和测试节点,可以利用infura提供的api访问以太坊以及IPFS。去官网只需要提供email注册得到链接即可。
RxJava:是一个实现异步操作的库
依赖
有5个运行时依赖包
- RxJava for its reactive-functional API
- OKHttp for HTTP connections
- Jackson Core for fast JSON serialisation/deserialisation
- Bouncy Castle (Spongy Castle on Android) for crypto
- Jnr-unixsocket for *nix IPC (not available on Android)
还有,使用JavaPoet来生成智能合约类包。