如何在web3j中使用Infura

签名

ConsenSysInfura服务提供了在云端运行的以太坊客户端的能力,所以你不必自己运行一个独立的以太坊客户端以便与以太坊一起工作。

当你注册这个服务时,你可以提供一个token令牌,你可以使用它连接到相关的以太坊网络:

以太网网络/公有链:

https://mainnet.infura.io/<your-token>

以太坊测试网络/测试链(Rinkeby):

https://rinkeby.infura.io/<your-token>

以太坊测试网络/测试链(Kovan):

https://kovan.infura.io/<your-token>

以太坊测试网络/测试链 (Ropsten):

https://ropsten.infura.io/<your-token>

为了获得以太网在这些网络中的使用,你可以参考以太坊交易中以太坊测试网/测试链相关内容。

Infura Http 客户端

web3j Infura 模块提供了一个Infura Http 客户端(InfuraHttpService),它为Infura特定的Infura-Ethereum-Preferred-Client提供支持。这允许你指定是否希望geth或Parity客户端响应你的请求。你可以像普通的HTTPClient一样创建客户端:

1
2
3
Web3j web3 = Web3j.build(new HttpService("https://rinkeby.infura.io/<your-token>"));
Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send();
System.out.println(web3ClientVersion.getWeb3ClientVersion());
1
Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9.1

如果你想测试一些JSON-RPC对Infura的调用,请更新你的集成测试CoreIT用Infura URL并运行它。

有关进一步的信息,请参阅infura文档

交易

为了与Infura节点进行交易,需要在发送它们之前离线创建交易和签名,因为Infura节点没有加密的以太坊密钥文件的访问权限,这是需要通过geth或者Parity管理命令来解锁帐户。

有关详细信息,请参阅以太坊交易中离线交易和签名部分和web3j如何使用管理APIs

  • web3j教程,主要是针对java和android程序员进行区块链以太坊开发的web3j开发详解。
  • 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。

汇智网原创翻译,转载请标明出处。这里是原文