web3 通过 rpc 访问 以太坊 geth节点

web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等。

安装web3.js

web3.js Github地址

系统:Ubuntu 18.04

sudo apt-get update

sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm

局部安装web3.js

新建npm项目:
mkdir blockchain
cd  blockchain
npm init (填写相关信息后会在当前目录生成 package.json)

sudo npm install web3 --save(会在当前目录生成node-module文件夹,里面是很多模块)

安装成功后就可以编写js程序与geth节点交互了(geth 必须运行且打开rpc服务 geth --rpc --rpcapi 'db,eth,web3')

var Web3 = require('web3')
var web3 = new Web3()
web3.setProvider( new Web3.providers.HttpProvider('http://127.0.0.1:8545') )
var eth = web3.eth

var fs = require("fs");

console.log('Start')
for (i=0; i < 10; i++){
    eth.getBlock(i, 1, function(err, block) {
    if (err) return console.log(err);
    fs.appendFile('blocks/parse.json', JSON.stringify(block,null,2)+"\n",  function(err)         {
     if (err)  return console.error(err)
     })
     })
}
console.log("success")
});

 

你可能感兴趣的:(区块链)