天天看點

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")
});