web3j学习笔记

Overview

web3j是以太坊的jsonrpc的一个java封装,实现java程序与以太坊的交互。
这篇笔记并不单纯的讲web3j,甚至涉及的内容只是比较基础的一部分。主要的内容是如何用java写一个基于以太坊的应用
(helloworld程度),会涉及以太坊测试链、infura、solidity。

以太坊测试链

以太坊是通过以太币进行交易的,每次触发合约几乎都会产生交易,也就是要消耗一定的以太币,这在应用开发阶段是不能
接受的,所以以太坊官方创造了一些测试链,测试链几乎和真正的链(称为主链)相同,只是在上面的交易不会真正花费
以太。目前以太坊测试链有三个:

  • Ropsten
  • Kovan
  • Rinkeby – 目前最常用的测试网络
    这里也基于Rinkeby实现这个应用。

infura

一个完整的以太坊节点要保存所有的账本数据,通常有几十G,第一次同步的时候会花费很长时间。如果仅仅做一些测试和
验证,可以用infura提供的节点,不必在本地同步所有数据。之后会详细说明infura的应用。

以太坊钱包

以太坊钱包有很多,官方提供的实现有geth\aleth,都是命令行界面的,完整实现了以太坊的功能。也有一些图形界面的实现,
如:MyEtherWallet、Parity、Mist等,这里选用Mist,他的后端使用的是geth。