Develop with pleasure!

福岡でCloudとかBlockchainとか。

Segwitのテスト環境”segnet”に接続

techmedia-think.hatenablog.com

4月に導入が予定されている↑のSegwitのテスト環境であるsegnetが2015年12月末にデプロイされているので、試しに接続してみた。

segnet環境のビルド

現在公開されているBitcoin Coreでは当然ながらsegnetには接続できないので、現状は以下の方法でBitcoin Coreビルドする。

ソースコードの取得

Segwitは現在以下のリポジトリで公開されている。

GitHub - sipa/bitcoin at segwit: Bitcoin integration/staging tree

リポジトリをcloneしてsegwitブランチに切り替える。

$ git clone git@github.com:sipa/bitcoin.git
...
$ cd bitcoin
$ git checkout segwit

ビルド

後は通常のBitcoin Coreのビルドと同じ。

$ ./autogen.sh
...
$ ./configure 
...
$ make
...

makeが終わるのsrc直下にbitcoindやbitcoin-cliの実行ファイルが生成される。
(make installしてもいいけど、既存の環境があるので省略)

起動

testnetと同様↓のオプションで起動する。

$ cd src
$ ./bitcoind -segnet -daemon
Bitcoin server starting
$ ./bitcoin-cli -segnet getinfo
{
  "version": 120000,
  "protocolversion": 70012,
  "walletversion": 60000,
  "balance": 0.00000000,
  "blocks": 0,
  "timeoffset": 0,
  "connections": 0,
  "proxy": "",
  "difficulty": 1,
  "testnet": true,
  "keypoololdest": 1456491784,
  "keypoolsize": 101,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

デフォルトで作成されてるアドレスを確認してみる↓

$ ./bitcoin-cli -segnet getaddressesbyaccount ""
DCuW1xKEETkYFnJswRR5RcUq6T4k2vAae8

segnetのBitcoinの入手

segnetで使えるBitcoinは以下のサイトから入手できる。

SegWit Faucet

先ほど確認したアドレス”DFXAMMBDsG166ftgbb11A9mzujt2EfoUzL”に↑サイトからBitcoinを送付してみる。
送付されたトランザクションは↓

$ ./bitcoin-cli -segnet getrawtransaction 1f58ae0e8b9ebb60a0060d1c7bab980ad02ca941e4f8fdf5308e7d07e1fc903d 1
{
  "hex": "010000000148afba57ee1def1384f96dcd174e219c05c4f7c2546ae1e4d3acc9348eb43f03010000006a4730440220454cc986d9348d70ce31884248a3b09811fe7b4590f5ee99ccc4ef1af3ca048302200e89a9a71ec23bc1b5a647f1d8524f9c2f7d1bc27420594c2c9706b3a45e61ac0121031545f24f0fe2380d215c6ad64842aacc6eb45eb06290328d3cba9998595e8a8afeffffff02e0b88042170000001976a914be35ff9f333c389267ef2449518e7114e6c95cf788ac80f0fa02000000001976a91471dd974c89ee98d5e077d7f28df369052977b72b88acae560000",
  "txid": "1f58ae0e8b9ebb60a0060d1c7bab980ad02ca941e4f8fdf5308e7d07e1fc903d",
  "size": 225,
  "version": 1,
  "locktime": 22190,
  "vin": [
    {
      "txid": "033fb48e34c9acd3e4e16a54c2f7c4059c214e17cd6df98413ef1dee57baaf48",
      "vout": 1,
      "scriptSig": {
        "asm": "30440220454cc986d9348d70ce31884248a3b09811fe7b4590f5ee99ccc4ef1af3ca048302200e89a9a71ec23bc1b5a647f1d8524f9c2f7d1bc27420594c2c9706b3a45e61ac[ALL] 031545f24f0fe2380d215c6ad64842aacc6eb45eb06290328d3cba9998595e8a8a",
        "hex": "4730440220454cc986d9348d70ce31884248a3b09811fe7b4590f5ee99ccc4ef1af3ca048302200e89a9a71ec23bc1b5a647f1d8524f9c2f7d1bc27420594c2c9706b3a45e61ac0121031545f24f0fe2380d215c6ad64842aacc6eb45eb06290328d3cba9998595e8a8a"
      },
      "sequence": 4294967294
    }
  ],
  "vout": [
    {
      "value": 998.99980000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 be35ff9f333c389267ef2449518e7114e6c95cf7 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914be35ff9f333c389267ef2449518e7114e6c95cf788ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "DNUqcb8taimUi7YAPVuWzezssJ6cPfCTJy"
        ]
      }
    }, 
    {
      "value": 0.50000000,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 71dd974c89ee98d5e077d7f28df369052977b72b OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a91471dd974c89ee98d5e077d7f28df369052977b72b88ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "DFXAMMBDsG166ftgbb11A9mzujt2EfoUzL"
        ]
      }
    }
  ],
  "blockhash": "000000006eaec83d855b50e0fa3afebd70eb915570b48ddff98088f6e03d5443",
  "confirmations": 1,
  "time": 1456493593,
  "blocktime": 1456493593
}
$ ./bitcoin-cli -segnet listunspent 
[
  {
    "txid": "1f58ae0e8b9ebb60a0060d1c7bab980ad02ca941e4f8fdf5308e7d07e1fc903d",
    "vout": 1,
    "address": "DFXAMMBDsG166ftgbb11A9mzujt2EfoUzL",
    "account": "",
    "scriptPubKey": "76a91471dd974c89ee98d5e077d7f28df369052977b72b88ac",
    "amount": 0.50000000,
    "confirmations": 1,
    "spendable": true
  }
] 

とsegnetのBitcoinが入手できる。

ちなみに、segnetのBitcoin CoreのRPCサーバに接続する際のポートは28332(testnetは18332)。


segnetへ接続する環境はできたので、segnet環境でのopenassets-rubyのテストでもするかなー。