こんにちは。
泡アハです。
皆様の中には、新たな技術トレンドであるブロックチェーンに魅力を感じている方もいらっしゃるのではないでしょうか?
この革新的な技術のルーツとも言える存在、それがビットコインです。
ビットコインは、暗号資産としてその名を広く知られていますが、エンジニアの視点から見ると、その背後の技術と理論は圧倒的な魅力があります。
ブロックチェーンに興味をお持ちの方々、まずはこのビットコインから始めてみてはいかがでしょうか?
そんな皆さんのために、今回は手軽に使えるdockerを使ってビットコインノード(bitcoind)を立ち上げる方法をご紹介します。
これを通して、ブロックチェーンの深淵に一歩踏み込むきっかけを提供できればと思います。
結論
とにかく立ち上げたいんだ!という方もいらっしゃると思いますので、先に記載しておきます。
各コマンドの詳しいところは、記事後半をご覧ください。
また、Githubでも公開していますので、そちらもご確認いただければと思います。
なお、今回は、regtestモードたてるようにしています。
regtestモードは、ローカルでブロックチェーンネットワークを構築できるモードのことです。
もしmainnet(本番のブロックチェーンネットワーク)、testnet(テスト用のブロックチェーンネットワーク)を立てたい場合は、bitcoin.confで調整してみてください。
https://github.com/nogu3/bitcoincorefordocker
フォルダ構成
├── conf
│ └── bitcoin.conf
├── docker-compose.yml
├── Dockerfile
└── README.md
Dockerfile
FROM ubuntu:22.04
ARG BITCOIN_CORE_VERSION=25.0
RUN apt update -y && apt upgrade -y
RUN apt install -y wget
# install bitcoin
RUN wget -q https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_CORE_VERSION}/bitcoin-${BITCOIN_CORE_VERSION}-x86_64-linux-gnu.tar.gz
RUN tar -zxvf bitcoin-${BITCOIN_CORE_VERSION}-x86_64-linux-gnu.tar.gz
RUN install -m 0755 -o root -g root -t /usr/local/bin bitcoin-${BITCOIN_CORE_VERSION}/bin/*
RUN rm -r bitcoin-${BITCOIN_CORE_VERSION}*
# copy conf
ADD ./conf/bitcoin.conf /root/.bitcoin/bitcoin.conf
CMD bitcoind
docker-compose.yml
services:
bitcoind:
build: .
volumes:
- bitcoin_data:/root/.bitcoin/blocks
tty: true
volumes:
bitcoin_data:
bitcoin.conf
regtest=1
解説
それぞれ重要な部分のみを抜粋していきたいと思います。
bitcoin coreのインストール
bitcoin coreとは、bitcoinネットワークに接続するノードをたてることができるクライアントソフトのことです。
このbitcoin coreをインストールすることで、bitcoind(※1)をたてることができ、bitcoin-cli(※2)を使うことができるようになります。
※1…bitcoinネットワークに接続するノードのプロセスのこと
※2…ブロックチェーンの情報やトランザクション(アドレス間の取引のこと)の情報など取得するコマンドのこと
Dockerfile内で実際にbitcoin coreをインストールしているのは、以下の箇所です。
各コマンドの意味は、コメントで記載しています。
# wgetを利用し、bitcoin coreのバイナリを取得する
RUN wget -q https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_CORE_VERSION}/bitcoin-${BITCOIN_CORE_VERSION}-x86_64-linux-gnu.tar.gz
# バイナリ(tar.za)を解凍する
RUN tar -zxvf bitcoin-${BITCOIN_CORE_VERSION}-x86_64-linux-gnu.tar.gz
# installコマンドを利用し、/usr/local/binにコピーする
RUN install -m 0755 -o root -g root -t /usr/local/bin bitcoin-${BITCOIN_CORE_VERSION}/bin/*
# インストールに使用した媒体を削除する
RUN rm -r bitcoin-${BITCOIN_CORE_VERSION}*
bitcoindの起動
bitcoindを起動するためには、bitcoin-cliのインストール後、bitcoind
を実行するだけで良いです。
bitcoindにはオプションで-regtest
などあり、それでもregtestモードで起動することは可能ですが、
今回は設定内容をbitcoin.confにまとめたいため、bitcoin.confに記載し、bitcoind起動前にbitcoin.confをコピーしています。
# copy conf
ADD ./conf/bitcoin.conf /root/.bitcoin/bitcoin.conf
CMD bitcoind
まとめ
いかがでしたでしょうか?
自分もつい先日までbitcoin初心者だったのですが、
これからbitcoinを始めてみたいという方のご参考になればと思い、書いてみました。
まだまたbitcoinビギナーなので、これからも精進していきたいと思います。
次は、コンテナを2つたててそれぞれのアドレスに送金するデモの記事でも書こうかな。