はじめに
環境設定はMacにbitcoindとbitcoin-cliをインストールして、Bitcoinの環境を構築するを参照。
今回はbitcoindとbitcoin-cliを使って、Regression Testネット環境にてBitcoinの送金を行います。
手順
-
RPCサーバーを起動する
mkdir ~/bitcoin-test && echo 'fallbackfee=0.0002' > ~/bitcoin-test/v bitcoind -regtest -daemon -conf=~/bitcoin-test/bitcoin.conf bitcoin-cli -version※ 0.20.0以降は、bitcoin.confにfallbackfeeを指定しないと途中でエラーとなります。
-
regtestの設定ファイルを確認する
ll ~/Library/Application\ Support/Bitcoin/regtest※ これからコマンドを実行した設定内容は全てこのディレクトリに格納されます。
※ 途中で失敗した場合は、bitcoin-cli -regtest stopを実行して、RPCサーバーを停止します。rm -rf ~/Library/Application\ Support/Bitcoin/regtestにて設定を内容を削除後、最初からやり直してください。 -
ブロックチェーンの情報を確認する
bitcoin-cli -regtest getblockchaininfo -
my_walletというウォレットを作成するbitcoin-cli -regtest createwallet my_wallet -
ウォレットの情報を確認する
bitcoin-cli -regtest getwalletinfo -
ウォレットに
user1というユーザーを作成する$ bitcoin-cli -regtest getnewaddress user1 <user1のアドレス>※
<user1のアドレス>が発行される -
ウォレットに
user1が作成されていることを確認する[ "user1" ] -
user1の残高を確認する$ bitcoin-cli -regtest getbalance 0.00000000 -
user1で101回マイニングするbitcoin-cli -regtest generatetoaddress 101 <user1のアドレス>※ Regression Testネット環境は100回を超えないと報酬が発生しない。
-
再度、
user1の残高を確認する$ bitcoin-cli -regtest getbalance 50.00000000 -
送金先として、ウォレットに
user2というユーザーを作成する$ bitcoin-cli -regtest getnewaddress user2 <user2のアドレス>※
<user2のアドレス>が発行される -
ウォレットに
user2が作成されていることを確認する[ "user1", "user2" ] -
user1からuser2に10BTC送金するbitcoin-cli -regtest sendtoaddress <user2のアドレス> 10.0 -
再度、
user1の残高を確認する$ bitcoin-cli -regtest getbalance 49.99997180※ マイニングで新しいブロックが生成されていないため、送金情報が反映されていないが、手数料が引かれている。
-
user2の残高を確認する$ bitcoin-cli -regtest getreceivedbyaddress <user2のアドレス> 00.00000000※ マイニングで新しいブロックが生成されていないため、送金情報が反映されていない。
-
user1でマイニングする$ bitcoin-cli -regtest generatetoaddress 1 <user1のアドレス> <送金ブロックのID> -
user2の残高を確認する$ bitcoin-cli -regtest getreceivedbyaddress <user2のアドレス> 10.00000000 -
送金ブロックの情報を確認する
bitcoin-cli -regtest getblock <送金ブロックのID>※
txに送金したトランザクションが記録されている -
送金トランザクションの情報を確認する
bitcoin-cli -regtest gettransaction <送金トランザクションのID>※ <送金トランザクションのID>は、
txに送金したトランザクションが記録されているIDを設定する -
RPCサーバーを停止する
bitcoin-cli -regtest stop