Reality Keysのsetupからclaimまで一連の流れ
はじめに
過去数回にわたってReality Keysの試行錯誤をダラダラ書いてきましたが、setupからclaimまで一連の流れが成功しましたので書きます。
Reality Keysの開発者Edmundに貴重なアドバイスをたくさん頂きました。ありがとうございます。
目次
- 動作確認した環境情報
- claimが動かなかった理由
- pybitcointoolsの再インストール
- test.py実行
- realitykeysdemo.py再実行
- ブロードキャスト後のブロックチェーン
- Non-Standardトランザクションのブロードキャスト
動作確認した環境情報
動作確認できた環境はこれです。
pybitcointools 1.1.15 bitcoid 90200 Python 2.7.6 realitykeysdemo.py(2016/2/7時点)
claimが動かなかった理由
Edmundからの情報によると、最新のpybitcointoolsはマルチシグのアドレス生成に関するissueがあるとのこと。
Wrong MultiSignature Address Generation #71
私が使っていたバージョンは1.1.25。Githubから最新ソースをダウンロードしていました。Edmundと同じバージョン1.1.15(pipインストール)に変更することにしました。
pybitcointoolsの再インストール
pipインストールの手順はこれです。(INSTALLED: 1.1となっているのは、いろいろなバージョンを試してたからです。気にしないでください)
// 検索 $ pip search pybitcointools pybitcointools - Python Bitcoin Tools INSTALLED: 1.1 LATEST: 1.1.15 // インストール $ sudo pip install pybitcointools --upgrade // インストール結果確認 $ pip search pybitcointools pybitcointools - Python Bitcoin Tools INSTALLED: 1.1.15 (latest)
test.py実行
realitykeysdemo.pyにはテストクラスがあります。テストを実行して以下結果が出れば問題ありません。(バージョンは1.1.25の時はエラーが出ていました)
$ python test.py ...... ---------------------------------------------------------------------- Ran 6 tests in 9.800s OK
以下エラーが出たら、
ImportError: No module named simplejson
jsonのimport部分を修正してください。
#import simplejson import json as simplejson
realitykeysdemo.py再実行
実行結果は以下です。
// 1. makekeys python ./realitykeysdemo.py makekeys --seed [Aliceのseed] // Alice python ./realitykeysdemo.py makekeys --seed [Bobのseed] // Bob // 2. send some bitcoins to generated address pybtctool unspent 1E4rzbdkH2aemsbxhTUJHypdEqhEiQSNR5 pybtctool unspent 12ppqR5u96dWP4VNNj4j38m2j515GyYwzv $ pybtctool unspent 1E4rzbdkH2aemsbxhTUJHypdEqhEiQSNR5 [{"output": "900e89d5fef26c950178a53b812b67f8262f86772c8a7264541181eca81332fb:0", "value": 35000}] $ pybtctool unspent 12ppqR5u96dWP4VNNj4j38m2j515GyYwzv [{"output": "77c7c1c1d2382edb3f7e5d2ab1a887316c49a4529a72802e465e57a29b1b230a:0", "value": 35000}] // 3. setup ./realitykeysdemo.py setup 1 04fb77357e489693971dbc8f569cb4231f4ee3f5bc4fe4135932885ace38b638cbd84ba0a89d6a9708980a972502609bad00395aa544b61fdf03013002ef292986 30000 0465254e8bc9a349e1d2629ad4771171585930403813d10d10e8fe21d8f2d54e45b245ed31244d2efb5172259efd45f047284bfee94064520a8caea0536f1060a8 30000 --seed [Aliceのseed] ./realitykeysdemo.py setup 1 04fb77357e489693971dbc8f569cb4231f4ee3f5bc4fe4135932885ace38b638cbd84ba0a89d6a9708980a972502609bad00395aa544b61fdf03013002ef292986 30000 0465254e8bc9a349e1d2629ad4771171585930403813d10d10e8fe21d8f2d54e45b245ed31244d2efb5172259efd45f047284bfee94064520a8caea0536f1060a8 30000 01000000020a231b9ba2575e462e80729a52a4496c3187a8b12a5d7e3fdb2e38d2c1c1c7770000000000fffffffffb3213a8ec81115464728a2c77862f26f8672b813ba57801956cf2fed5890e90000000008c493046022100b55cef707fb41ed722518d651f17bf3a44d1f2c5ef1bd19415228ba24ddaa289022100ef1c1f24a31ecc61d762e98155102aca5dc0902ae26287807043dbc6f2ca358701410465254e8bc9a349e1d2629ad4771171585930403813d10d10e8fe21d8f2d54e45b245ed31244d2efb5172259efd45f047284bfee94064520a8caea0536f1060a8ffffffff0160ea00000000000017a914db730bb1a762580f86d97927c2a5530166d2582a8700000000 --seed [Bobのseed] 3MhMj4vuaXX2Rh1Rdr59A4g1ncUmPK6U6W // generated P2SH address // 4. claim python ./realitykeysdemo.py claim 1 04fb77357e489693971dbc8f569cb4231f4ee3f5bc4fe4135932885ace38b638cbd84ba0a89d6a9708980a972502609bad00395aa544b61fdf03013002ef292986 0465254e8bc9a349e1d2629ad4771171585930403813d10d10e8fe21d8f2d54e45b245ed31244d2efb5172259efd45f047284bfee94064520a8caea0536f1060a8 -f 10000 -d 1Fcyh3T6zsQtwBpwpTADf6M24GY5CC4vbx --seed [Aliceのseed]
ブロードキャスト後のブロックチェーン
https://blockchain.info/address/3MhMj4vuaXX2Rh1Rdr59A4g1ncUmPK6U6W
通常のトランザクションに比べて承認が遅く感じます..
Non-Standardトランザクションのブロードキャスト
https://github.com/edmundedgar/realitykeys-examples/commit/d2c606be9e146016fe32b175ff0c419ad6c908a8
今日のコミットを見るとブロードキャスト先の優先度を、1.Blockchain.info、2.eligiusに変更していますね。
Blockchain.infoもNon-Standardトランザクションを受けつけるようになったということらしいです。
まとめ
pybitcointoolsはマルチシグのアドレス生成の問題も気になりますが、次回からはReality Keysを使った実際のサービスについて書きます。