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