web3j 简介
web3j 是一个轻量级、高度模块化、响应式、类型安全的 Java 和 Android 类库提供丰富 API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。
可以通过它进行以太坊区块链的开发,而无需为你的 java 应用平台编写集成代码。
快速启动
想要快速启动的话,有一个Web3j demo 示例项目可用,演示了通过 Web3j 开发以太坊的许多核心特征,其中包括:
连接到以太网网络上的节点
加载一个以太坊钱包文件
将以太币从一个地址发送到另一个地址
向网络部署智能合约
从部署的智能合约中读取值
更新部署的智能合约中的值
查看由智能合约记录的事件
web3j 入门
首先将最新版本的 web3j 安装到项目中。
Maven
Java 8:
org.web3j
core
3.4.0
Android:
org.web3j
core
3.3.1-android
Gradle
Java 8:
compile ('org.web3j:core:3.4.0')
Android:
compile ('org.web3j:core:3.3.1-android')
启动客户端
需要启动一个以太坊客户端,当然如果你已经启动了就不需要再次启动。
如果是geth的话这么启动:
$ geth --rpcapi personal,db,eth,net,web3 --rpc --rinkeby
如果是Parity启动:
$ parity --chain testnet
如果使用Infura客户端提供的免费的云端服务,这么启动:
Web3j web3 = Web3j.build(new HttpService("https://morden.infura.io/your-token"));
当不需要 Web3j 实例时,需要调用shutdown方法来释放它所使用的资源。
web3.shutdown()
发送请求
发送同步请求
Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/
Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send();
String clientVersion = web3ClientVersio