ビットコインのブロックチェーン上に保存された取引データを抽出


日付: 2021-03-07 閲覧数: 144



ビットコインの基盤となるネットワークに誰でも接続することができるが、ブロックチェーン上に保存されたデータを抽出する為に数年前に遡る取引情報を同期しなければならない。全体のブロックチェーンをダウンロードしようとすると2021年3月に300Gbくらいの空き容量が必要となってくるので古いパソコンでの同期は失敗する可能性がある。今回はアマゾンクラウドで仮想マシンを立ち上がて同期作業を行った。同期に使ったソフトウェアのインストール方法とブロックチェーン上に保存された取引データをどのように抽出するのかを説明したいと思う。

第一にGitHubからビットコインのブロックチェーンを同期するソフトウェアのソースコードをダウンロードする:$ git clone https://github.com/bitcoin/bitcoin.git。そしてダウンロードしたフォルダに移動する:$ cd bitcoin。次にコンパイル時に必要なソフトウェアをインストールしなければならない:$ sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3 autoconf libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libboost-iostreams-dev libevent-dev


今は$ ./autogen.shコマンドを使ってコンパイル時に必要なファイルを生成させる。


次に$ ./configureを使ってMakefileを作る。


ウォレット機能も使いたいならコンパイル時にウォレット機能を有効にしなければならない。このコマンドが無事に終了すると$ make -j7を使ってビットコインクライエントをコンパイル。文字Jの後にコンパイル時に使いたいスレッド数を指定できる。コンパイルが完了するのに相当な時間がかかるので辛抱強く待とう!


コンパイルが終了すると、$ ./bitcoind -daemonを使ってブロックチェーンを同期するデーモンを裏で立ち上がよう。


実行後、膨大な情報をダウンロードするので全体のブロックチェーンを同期するには数時間かかる。私はおよそ350Gbのブロックチェーン情報を同期した時に半日くらい待っていた。


ビットコインデーモンの進捗状況を確認したいならホームの下に.bitcoinに移動して、その下にある“debug.log”を開けてください。ダウンロード済みのブロックチェーンデータは.bitcoinの下にあるblocksフォルダで確認できる。


ビットコインデーモンの同期の結果は以下のようになっている:



ブロックチェーンの同期が完了すると、次のコマンドを使ってウォレットを作成できる:$ ./bitcoin-cli createwallet "[ウォレット名]"。そしてこのウォレットに関する情報を表示したいなら$ ./bitcoin-cli getwalletinfoを使おう。残念ながらこのコマンドで自分のウォレット以外のウォレットの残高などが確認できない。その理由は、ビットコインのブロックチェーン上に取引情報しか保存されず、ウォレット残高がブロックチェーン上に書き込まれない。つまり、特定のウォレットの残高を確認したいならブロックチェーンを最初から読み取ってそのアカウントに送金か出金があった場合、その情報を保存して取引情報を一つづつ足し算と引き算することで実際の残高を得ることができる。この計算に相当な時間がかかるが。



今回の目的はブロックチェーン上に書き込まれたトランザクションデータをアクセスすることだった。bitcoin-cliそのままで使おうとするとブロックチェーンがダウンロードされるが、取引情報のインデックスが生成されない。この結果、特定のトランザクションのハッシュを使ってもその情報を検索することが出来ない。この機能を有効にしたいなら.bitcoinフォルダの下にbitcoin.confファイルを作って一行目にtxindex=1を書く必要がある。この後にブロックチェーンを再読込みしなければならない:$ ./bitcoind -rescan


この作業が終了すると$ ./bitcoin-cli getrawtransaction “[トランザクションハッシュ]” trueを使って特定のトランザクションデータをJSON形式で抽出できるようになる。


画像:pixabay.com


出典:How to extract transaction data from the bitcoin blockchain using bitcoin-cli?



コメント (0)


記事特選