hiro99ma blog

Bitcoin Core(bitcoind) を regtest で動かす

目次 (最終更新日:2025/08/23)

はじめに

よほど野心的でない限り Bitcoin のフルノードを自作しようとは思わないだろう。
ここでは最も一般的と思われる Bitcoin Core(bitcoind) のビルドとオプションについてメモを残す。
Ubuntu 22.04 (WSL2) で確認しているが、既にいろいろインストールされているのでビルドに不足しているツールがあるかもしれない。

現時点で Bitcoin Core の最新バージョンは v29.0 のためそれを使っていく。
以前のバージョン表記は v0.XX.YY(v0.21.2まで) だったが、比較的最近から vXX.YY(v22.0~) に変わった。 もし「v0.」で始まっている記事があっても、それがものすごく古いとは限らないことは覚えておいて良いだろう。 ただ記事の更新日時が新しいのに「v0.」の場合は単に日付だけ新しいだけなので気をつけよう。
基本的に、周辺アプリの互換性の都合以外で Bitcoin Core の古いバージョンを使う必要はほぼない。

Bitcoin Core インストール

Bitcoin Core(bitcoind) のインストール 参照

設定と実行

ノードとして動作する bitcoind や 操作する bitcoin-cli は設定ファイル bitcoin.conf を参照する。
設定ファイルを使わず引数にしても同じことができるので、その辺りは自身の判断で。

regtest でしか使わないならこんな感じでよいだろう。

server=1
txindex=1
regtest=1

zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333

[regtest]
#rpcuser=testuser
#rpcpassword=testpass
rpcauth=testuser:90d538109436dcea4d3da67f65d6aa00$21214960fe9d1bbd9d5f40ab16212fe9aa3d87a59e2cfef91232729c5de00657
fallbackfee=0.000001

blockfilterindex=1
peerblockfilters=1

rpcuserrpcpassword は JSON-RPC で通信したい場合に設定する。

$ curl --user testuser:testpass --data-binary '{"jsonrpc": "2.0", "id": "curltest", "method": "getblockcount", "params": []}' -H 'content-type: application/json' http://127.0.0.1:18443/
{"jsonrpc":"2.0","result":0,"id":"curltest"}

rpcauth

rpcuserrpcpasswordは推奨されておらず、rpcauthを使う方が望ましい。

$ ./share/rpcauth/rpcauth.py user pass
String to be appended to bitcoin.conf:
rpcauth=user:<省略>
Your password:
pass

出力された rpcauth の行を bitcoin.conf に貼り付ける。

rpcauth は複数設定することができる。
また、electrs などのツールで参照する cookieファイル(~/.bitcoin/regtest/.cookieなど)はrpcauthを設定した場合しか生成されない。

ウォレットの作成

デフォルトでは bitcoind を立ち上げてもウォレットが存在しない。
regtest の場合はブロック生成した報酬を使ってテストをするので、ウォレットを作るのが楽である。

$ bitcoin-cli createwallet ""
{
  "name": ""
}

ウォレットに受け取り用アドレスを作ってブロック生成する。

$ addr=`bitcoin-cli -regtest getnewaddress`
$ bitcoin-cli -regtest generatetoaddress 150 $addr
$ bitcoin-cli -regtest getbalance

おまけ

私が使っている設定やスクリプト。

おまけ(Polar)

Polar という、Lightning Network の regtest 環境を立ち上げるプロジェクトがある。
GUI で操作は比較的簡単である。
Lightning Network 開発用だが、Bitcoin Core だけを立ち上げることもできる。

おまけ(Nigiri)

Polar と同じようなプロジェクトで Nigiri がある。
こちらは GUI ではなく CUIで、主に環境の立ち上げを行ってくれる。
それほど使ったことがないので、ここでは紹介だけしておく。

おわりに

regtest で bitcoind を立ち上げる手順を説明した。

関連ページ

writer: hiro99ma
tags: Bitcoin開発  

 < Top page

コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage

About me