bitcoinの起動と初期採掘

前回Bitcoinのインストールまで終わったので起動させていきましょう。

bitcoinには2つのテストモードがあるらしい。

  1. Testnet

テストようの仮想ネット。価値がないのでいろいろ失敗したりしても大丈夫。
バーチャルFXみたいなものか

  1. Regtest Mode

自分しか参加できない仮想ネットワークを作ってその中でテストします。

仕組みを学ぶなためにRegtest Modeから始めることにします。
以下のチュートリアルに従いながらやっていきます。
Developer Examples - Bitcoin

RegTestModeの起動と初期採掘

まずRegTestModeでデーモンを起動します

$ /usr/local/bin/bitcoind -regtest -daemon
Bitcoin server starting

そうしたら最初の101個のBlockを作ります。

bitcoin-cli -regtest generate 101
[
  "7849010159c75b2e3c991a175c985bcbe33a732aeabe482cef44dc636ea876fc",
  "209af3eaa5d74f02393f6d6d7f5f017479ae8c3e5ffcb3e1508dadcb18716e14",
・・・・
  "6fda9ac651e0cef149af54befa9d8e6abc9a98e08367862092ab42cee7183d81"
]

この100このブロックがこれからの基礎として動きます。
またビットコインの採掘をしたことになるのでリワードとして50コインが貰えます。
みてみましょう。

 $ bitcoin-cli -regtest getbalance
 50.00000000

きたー!!今の[相場:http://ビットコイン相場.com/]だと5万円ぐらいなので現実世界だったら250万Get!!!
こりゃ皆さん頑張ってマイニングするわけですね。

bitcoinの使用

さて、リワードで50コイン貰ったので、さっそく使ってみましょう。
まず新しいアドレスを作ってShell変数の中に保存します。

[ec2-user@ip-172-31-18-152 bitcoin]$ bitcoin-cli -regtest getnewaddress
mnUCSdxQVL53Xkuo27yXhyLnK5Cbn9aPta
[ec2-user@ip-172-31-18-152 bitcoin]$
[ec2-user@ip-172-31-18-152 bitcoin]$ NEW_ADDRESS=mnUCSdxQVL53Xkuo27yXhyLnK5Cbn9aPta

そして保存した送信先に10コイン送付してみます。

bitcoin-cli -regtest sendtoaddress $NEW_ADDRESS 10.00
96aed86c1683f8a4251607672c032d8eb8ee249f99d0b48f09713e59f0bfee62

返ってきたhexはBitcoinトランザクションIDです。

さておくれたかどうか見てみましょう。

$ bitcoin-cli -regtest listunspent
[
]

空っぽですね。なぜかというとlistunspentは確定したものしか見れないからです。
そこで引数に0を追加して実行して未確定のものも表示させましょう。

$ bitcoin-cli -regtest listunspent 0
[
  {
    "txid": "96aed86c1683f8a4251607672c032d8eb8ee249f99d0b48f09713e59f0bfee62",
    "vout": 0,
    "address": "mhJsk49f56j3aUJuWTceNtLtAo6ZEQk8WP",
    "scriptPubKey": "76a91413a775e04db5bcf70ee5db5e771a84baa2b69c8c88ac",
    "amount": 39.99999808,
    "confirmations": 0,
    "spendable": true
  },
  {
    "txid": "96aed86c1683f8a4251607672c032d8eb8ee249f99d0b48f09713e59f0bfee62",
    "vout": 1,
    "address": "mnUCSdxQVL53Xkuo27yXhyLnK5Cbn9aPta",
    "account": "",
    "scriptPubKey": "76a9144c4371587653acbaa2ae78ab40650651fd8193e588ac",
    "amount": 10.00000000,
    "confirmations": 0,
    "spendable": true
  }
]

未確定として見れましたね。
自分の口座が39.99999808になっているのは手数料を引かれているからでしょう。

$  bitcoin-cli -regtest getbalance
49.99999808

と確認してみると、トランザクションが未確定なので送金は行われていないがすでに手数料は取られているような扱いになってい模様。

ではトランザクションをブロックに書き込んでみてみましょう。

$ bitcoin-cli -regtest generate 1
[
  "7962caa5b84f6bc2f31e1f070ea793da8c872e2deefd6b4b85ad2ff84c7a54d2"
]
[ec2-user@ip-172-31-18-152 bitcoin]$ bitcoin-cli -regtest listunspent
[
  {
    "txid": "96aed86c1683f8a4251607672c032d8eb8ee249f99d0b48f09713e59f0bfee62",
    "vout": 0,
    "address": "mhJsk49f56j3aUJuWTceNtLtAo6ZEQk8WP",
    "scriptPubKey": "76a91413a775e04db5bcf70ee5db5e771a84baa2b69c8c88ac",
    "amount": 39.99999808,
    "confirmations": 1,
    "spendable": true
  },
  {
    "txid": "96aed86c1683f8a4251607672c032d8eb8ee249f99d0b48f09713e59f0bfee62",
    "vout": 1,
    "address": "mnUCSdxQVL53Xkuo27yXhyLnK5Cbn9aPta",
    "account": "",
    "scriptPubKey": "76a9144c4371587653acbaa2ae78ab40650651fd8193e588ac",
    "amount": 10.00000000,
    "confirmations": 1,
    "spendable": true
  },
  {
    "txid": "e4b8dfaee1494c0e1edcc87a29e54af18f4d7271e89fe97dfcb3a0af1bb033d2",
    "vout": 0,
    "address": "mqwdetiuWtCC4d1ZfNUGtHUVdpWtfz3YRC",
    "scriptPubKey": "2103602d4367713ca52d595683265345e8af899aeb2a90d7ff39f72b59c3c77079a7ac",
    "amount": 50.00000000,
    "confirmations": 101,
    "spendable": true
  }
]

無事にかけました、そしてトランザクションが確定しました。
そして採掘したので50コイン貰えたことがわかります。

おもしろですねー。