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は以下のサイトから入手できる。
先ほど確認したアドレス”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のテストでもするかなー。