アルゴリズムとかオーダーとか

仕事で勉強したことなどをまとめてます

segwitのtransactionをsendできた!

sendrawtransactionでエラー出ずに送信できました!
ので手順を載せます。

1. addwitnessaddress (bitcoin address) して作ったwitnessaddressあてにコインを送る。以下は送った結果

< listunspent
>
[
  {
    "txid": "0bfbc74a43d5ef0ed1cfa300e58f96c0ad0d0ec1f15bc22d22427895f642e09f",
    "vout": 0,
    "address": "2MznHrWSfVoF1LcJsYafu6WfvENs4dRkq94",
    "redeemScript": "00149cdfeea35b451d741f9d68c5ed4f3c7701d9abd9",
    "scriptPubKey": "a91452a9009ef8da4d55ea6c735c747ec90b3662a12887",
    "amount": 0.01000000,
    "confirmations": 481,
    "spendable": true,
    "solvable": true
  }
]

2. 上記のトランザクションをinputにしてコインを送るトランザクションを作る

< getaccountaddress test2
> msGSDwk552AdhSDCpfsZ1pnf6PCCkZE3yK

< createrawtransaction '[{"txid":"0bfbc74a43d5ef0ed1cfa300e58f96c0ad0d0ec1f15bc22d22427895f642e09f","vout":0}]' '{"msGSDwk552AdhSDCpfsZ1pnf6PCCkZE3yK":0.009}'
> 01000000019fe042f6957842222dc25bf1c10e0dadc0968fe500a3cfd10eefd5434ac7fb0b0000000000ffffffff01a0bb0d00000000001976a91480e29584d0f376e1942d69fc5f1d7a5ac3977ef988ac00000000

3. 特にオプションとかつけずにsignrawtransactionする

< signrawtransaction 01000000019fe042f6957842222dc25bf1c10e0dadc0968fe500a3cfd10eefd5434ac7fb0b0000000000ffffffff01a0bb0d00000000001976a91480e29584d0f376e1942d69fc5f1d7a5ac3977ef988ac00000000
> 
{
  "hex": "010000000001019fe042f6957842222dc25bf1c10e0dadc0968fe500a3cfd10eefd5434ac7fb0b00000000171600149cdfeea35b451d741f9d68c5ed4f3c7701d9abd9ffffffff01a0bb0d00000000001976a91480e29584d0f376e1942d69fc5f1d7a5ac3977ef988ac02483045022100a40682ec887453708d7d5a56d0411964daa783ddcb0a12c3cb60ba1420827044022057d0fe5bffdf03c208b1c14a9718a243211ca0e7a14fab87ee5f51ca180782e3012102497853b84512513d4e55524c67e188c099369411186d085a708d8317d73183a700000000",
  "complete": true
}

4. そのままsendrawtransactionする

< sendrawtransaction 010000000001019fe042f6957842222dc25bf1c10e0dadc0968fe500a3cfd10eefd5434ac7fb0b00000000171600149cdfeea35b451d741f9d68c5ed4f3c7701d9abd9ffffffff01a0bb0d00000000001976a91480e29584d0f376e1942d69fc5f1d7a5ac3977ef988ac02483045022100a40682ec887453708d7d5a56d0411964daa783ddcb0a12c3cb60ba1420827044022057d0fe5bffdf03c208b1c14a9718a243211ca0e7a14fab87ee5f51ca180782e3012102497853b84512513d4e55524c67e188c099369411186d085a708d8317d73183a700000000

> c7ae294802fa5ebb391015a38034602575c0188acacba71906a73c3b84d8110c

無事sendrawtransactionできました。前までは4.実行したらエラー(スクリプトの最後がerrorになってておかしいよ?的な感じの)になってたので一歩前進できたかな。

相変わらずスクリプトの中身見たらerrorとかなってて心配にはなる。。。。

< decodescript 3045022100a40682ec887453708d7d5a56d0411964daa783ddcb0a12c3cb60ba1420827044022057d0fe5bffdf03c208b1c14a9718a243211ca0e7a14fab87ee5f51ca180782e301
> 
{
  "asm": "45022100a40682ec887453708d7d5a56d0411964daa783ddcb0a12c3cb60ba1420827044022057d0fe5bffdf03c208b1 OP_UNKNOWN [error]",
  "type": "nonstandard",
  "p2sh": "2MxJYB5bZRBQQANiTD7rAX22X85FHVcSTdf"
}