Edited at

ブロックチェーン上の情報をGETする方法(gethの場合)


はじめに

初投稿です。

今回は、BCからデータを吸い取る方法を載せます。


コード

多分見れば、分かりますw

実行環境として

Gethを使用しています。

ビットコインの場合はまた違うと思います。


bcCheck.js

var Web3 = require('web3');

var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

var blockNumber = web3.eth.blockNumber;
console.log("blockNumber: " + blockNumber);

for(var i = 0;i <blockNumber;i++){
if(web3.eth.getTransactionFromBlock(i) != null){
var getInputSlice = web3.eth.getTransactionFromBlock(i).input.substr(0,10);
if(getInputSlice == "0x42f09166"){
var getInput = web3.eth.getTransactionFromBlock(i).input

console.log("getInput: " + i + ": " + JSON.stringify(getInput));
}
console.log("getInput: " + i + ": " + JSON.stringify(getInputSlice));
}
}



コード説明

ここでweb3でGethと接続する

var Web3 = require('web3');

var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

(web3.eth.getTransactionFromBlock(i) != null)でそのブロックにトランザクションがあるかどうかが分かる。


トランザクションがないブロックにはinputがないため

ここで、(web3.eth.getTransactionFromBlock(i).input != null)と書くと、エラーが出る。


for(var i = 0;i <blockNumber;i++){

if(web3.eth.getTransactionFromBlock(i) != null){
var getInputSlice = web3.eth.getTransactionFromBlock(i).input.substr(0,10);
if(getInputSlice == "0x42f09166"){
var getInput = web3.eth.getTransactionFromBlock(i).input

console.log("getInput: " + i + ": " + JSON.stringify(getInput));
}
console.log("getInput: " + i + ": " + JSON.stringify(getInputSlice));
}
}


終わり

今回はこれくらいで終わりです。

分かりにくかったらすいません。

何か疑問点があれば、質問などしてくれたら返事します。