Dockerでbitcoindをたてる

Blockchain

こんにちは。
泡アハです。

皆様の中には、新たな技術トレンドであるブロックチェーンに魅力を感じている方もいらっしゃるのではないでしょうか?
この革新的な技術のルーツとも言える存在、それがビットコインです。

ビットコインは、暗号資産としてその名を広く知られていますが、エンジニアの視点から見ると、その背後の技術と理論は圧倒的な魅力があります。

ブロックチェーンに興味をお持ちの方々、まずはこのビットコインから始めてみてはいかがでしょうか?
そんな皆さんのために、今回は手軽に使える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つたててそれぞれのアドレスに送金するデモの記事でも書こうかな。

コメント

タイトルとURLをコピーしました