BitcoinCoreを実行する環境

BitcoinCoreをインストールして、あまり考えずに適当にconfigファイルを作成してただ単に実行するとmainnetに繋がる。つまり実際に取引が行われていて、マイナーがマイニングをしている環境に繋がる。

ウォレットとして運用するとか、現在のbitcoinネットワークの状況を見たいとか、マイニングを実施するのであれば、mainnetで全然構わないと思うんだけど、色々とコマンドを実行したり、bitcoinのネットワークと連携するプログラムを作って試したいのであれば、mainnetで実行するのはちょっと辛い。

実際にトランザクションを発生させるのにBTCが必要だし、ちょっとコマンド間違えて「GOXしちゃったw」みたいなことが起こったら結構残念だと思う。僕は4、5年前だったら、取引所でbitcoinを調達して、それを使って「10BTC消えちゃった」とかやってそうですw

でも、常にmainnetを使う必要はなくて、mainnetと同様に他のユーザが参加している”testnet”という環境と、自分の環境に閉じたプライベートな”regtest”という環境も使うことができるので、色々試すならこの2つの環境を使うのがいいんだろうな。ちなみに、regtestはリグレッションテスト (regression test)の略である。

testnet環境を利用する

利用する方法は2パターン。

bitcoin.confに記述する

bitcion.conf内のどこでもいいので、以下を追記すれば常にtestnetへの接続になる。

# 以下をbitcoin.confへ記述
testnet=3

この場合、bitcoindの起動は通常通り行う。(下記1行目)
もし、mainnetとは別のファイルで管理するのであれば、confファイルの配置場所を指定して起動する。(下記2行目)

# confファイルを書き換えた場合
bitcoind -daemon
# confファイルをmainnetとは別に用意した場合
bitcoind -conf=<fileパス> -daemon

数字が3なのは何か意味があったと思うが忘れてしまった…多分、3代目のテスト環境なんだと思う。

bitcoindを起動する時にオプションをつける

confファイルをmainnetと分ける必要がなく、同じ設定内容で利用するのであれば、bitcoindを起動する時のオプションで指定することもできる。

# 起動時のオプションでtestnetを起動する
bitcoind -testnet -daemon

testnet用のコイン取得とか

テスト環境とはいえ、mainnetと同じように稼働しているので、コインの取得はマイニングをしなければならない。が、いちいちマイニングするつもりはない人向けに無償でコインを配布するサイト(下記)を利用する。

https://coinfaucet.eu/en/btc-testnet/
http://tpfaucet.appspot.com/

善意で運営しているサイトみたいなので、使えなくなる可能性もあるからその時は自分で探そう!

また、testnet用のblockchain.info(testnet)があるので、ここでブロックやトランザクションをチェックすることもできる。

regtest環境を利用する

利用するパターンはtestnetと同じく2パターン。

bitcoin.confに記述する

bitcion.conf内のどこでもいいので、以下を追記すれば常にregtestへの接続になる。

# 以下をbitcoin.confへ記述
regtest=1

testnetと同様、bitcoindの起動は通常通り行う。(下記1行目)
もしくは、confファイルの配置場所を指定して起動する。(下記2行目)

# confファイルを書き換えた場合
bitcoind -daemon
# confファイルをmainnetとは別に用意した場合
bitcoind -conf=<fileパス> -daemon

bitcoindを起動する時にオプションをつける

confファイルをmainnetと分ける必要がなく、同じ設定内容で利用するのであれば、bitcoindを起動する時のオプションで指定することもできる。

# 起動時のオプションでregtestを起動する
bitcoind -regtest -daemon

bitcoin-cliでのコマンド実行方法

bitcoin-cliを使って、”getblock”などのコマンドを実行する時に、どうするのか?というのがあると思う。思うというか僕はそうだったのだ!
confファイルを書き換えて、オプションなしでbitcoindを実行した場合は、通常通りコマンドを実行すればその時に稼働している環境に向けてコマンドが実行される。

# オプションなしで実行した場合
bitcoin-cli <command>

confファイル指定で実行した場合と、起動時のオプションで “-testnet” や “-regtest” を指定した場合は以下のようにコマンドを実行すれば、指定した環境に向けてコマンドが発行される。

# testnet の場合
bitcoin-cli -testnet <command>
# regtest の場合
bitcoin-cli -regtest <command>

単純にコマンドの動きを確かめたいとかの場合は、オプション指定で起動した方がフットワークが軽くていいけど、mainnetで実行するようなアプリケーションを作ってregtestやtestnet環境で動きを確かめたい時は、confファイルの設定を変更して起動した方がいいんだろうなと思ったよ(。・ω・)ノ゙