rubyのsimpleなwalletをまずは動かす2 〜 bitcoinのsimpleなwalletをpythonで実装を試みる

技術メモ

前回の記事で、財布の残高を確認するコマンドでエラーが発生したのでそれを解決していく。

# ruby bcwallet.rb balance
bcwallet.rb:415:in `read': invalid message type (RuntimeError)
 from bcwallet.rb:1104:in `dispatch_message'
 from bcwallet.rb:899:in `block (2 levels) in sync'
 from bcwallet.rb:898:in `loop'
 from bcwallet.rb:898:in `block in sync'

の、部分。

    unless @message_definitions.has_key?(packet[:command])
      raise 'invalid message type'
    end

どうも、意図せぬコマンドが送られてきている。
やっぱ、古いのかなぁ実装、、、

  def dispatch_message
    message = @message.read(@socket)
    p message

のように
https://github.com/peryaudo/bcwallet/blob/master/bcwallet.rb#L1104
の箇所でメッセージ出力するようにしたところ、、、

# ruby bcwallet.rb balance
{:version=>70015, :services=>13, :timestamp=>1494496695, :your_addr=>nil, :my_addr=>nil, :nonce=>7682805865688576756, :agent=>"/Satoshi:0.14.0/", :height=>1122141, :relay=>1, :command=>:version}
{:command=>:verack}
bcwallet.rb:415:in `read': invalid message type (RuntimeError)
 from bcwallet.rb:1104:in `dispatch_message'
 from bcwallet.rb:899:in `block (2 levels) in sync'
 from bcwallet.rb:898:in `loop'
 from bcwallet.rb:898:in `block in sync'

のようなコマンドがやりとりされていた。

とおもったら、、、しばらくしたら 残高確認成功してしまった(汗

# ruby bcwallet.rb balance
{:version=>70015, :services=>13, :timestamp=>1494497049, :your_addr=>nil, :my_addr=>nil, :nonce=>6101898014053307904, :agent=>"/Satoshi:0.14.0/", :height=>1122141, :relay=>1, :command=>:version}
connection establishing ... done.
Block chain synchronized.

Balances for available Bitcoin addresses:
    hoge: 0.00000000 BTC

たぶん、ブロック同期している最中に bcwallet.rb を動かしたらダメなんでしょうね。
この辺りはpythonで実装するときにエラー処理してもよさそうだ。

あと残りは、コインの送金を次に試してみるか。
今日は時間があまりないのでここまで。あんまり検証できなかったが毎日コツコツ続けていく。

Sponsored Link
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


仮想通貨全般
TendermintをDocker使って起動してみる

以前、勉強会に行ってきた際にTendermintの事を聞いて ブロックチェーンプロトコルが実装できる …

仮想通貨全般
Bitcoinのdifficultyを決めるnBitsを理解する

マイニングする際の理解を深めようと思い、マイニング難易度(difficulty)を決めるnBitsに …

仮想通貨全般
EOS Night Meetupにいってきた

今回は、以前からEOSに興味があったので EOS Night Meetupにいってきました。 暗号通 …