0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerでbitcoindをたてる

Posted at

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

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

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

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?