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

技術メモ

前回は一旦動いた

ruby bcwallet.rb balance

がまた、動かなくなった。
ので再調査。

balanceコマンドを打った後に debug.logを見ると

2017-05-12 09:39:19 receive version message: /bcwallet.rb:1.00/: version 70002, blocks=-1, us=0.0.0.0:8333, peer=33
2017-05-12 09:39:19 socket recv error Connection reset by peer (104)

がでる。どうもpeerサーバーと繋がっていない。

blocks=-1,

ってそもそもなんだ?
調べてみると、どうも blockchainの長さらしいがこれが上手く取得できていないみたいだ。

あと

us=0.0.0.0:8333

これ、testnetではなくてmainnetのpeerポートだぞ。
こちらの帰ってくるメッセージ、何かおかしい。

http://bitcoin.peryaudo.org/implement.html#ハンドシェイク(version・verack)

をみると、

bcwallet.rbはruby bcwallet.rb balanceとして実行されると、自動的にブロックチェーンの同期をはじめる。

とのこと。同期がうまくいっていない。
socketのつなぎ先がメインネットになってるのが原因でハンドシェイクがうまくいっていないのか??

{:command=>:verack}

を投げたあとに応答がなくなる。
そもそも、最後エラーになっているときは何のメッセージが帰ってきている?

{:command=>:verack}

のあとのread_packetの部分を見てみると

https://github.com/peryaudo/bcwallet/blob/master/bcwallet.rb#L401

の部分の packet を出力してみたら

{:magic=>"vx11ta", :command=>:alert, :checksum=>"exF9xAAxEA", :payload=>"`x01x00x00x00x00x00x00x00x00x00x00x00xFFxFFxFFx7Fx00x00x00x00xFFxFFxFFx7FxFExFFxFFx7Fx01xFFxFFxFFx7Fx00x00x00x00xFFxFFxFFx7Fx00xFFxFFxFFx7Fx00/URGENT: Alert key compromised, upgrade requiredx00F0Dx02 e?xEBxD6Ax0FGx0FkxAEx11xCAxD1x9CHA;xECxB1xAC,x17xF9bxFDx0FxD5;xDC:xBDRx02 mx0Ex9Cx96xFEx88xD4xA0xF0x1ExD9xDExDAxE2xB6xF9xE0rxA9LxADx0FxECxAAxE6nxCFhx9BxF7eP"}

と帰ってきていて、 command が alert 。
payload は、よくはわかってないが「Alert key compromised, upgrade required」が読み取れるのでググってみると

https://bitcoin.stackexchange.com/questions/51056/alert-key-compromised-upgrade-required

The network wide Alert system is being retired. No Bitcoins are at risk and this warning may be safely ignored. Upgrade to the newest version of your wallet software to no longer see the alert.

ようは「警告でないようwalletをアップグレードしましょう」ってことらしい。
bcwallet.rb をじゃぁアップグレードする必要があるが、どこをどう修正すればいいんだ??

ちなみに、bcwallet.rbが落ちているのはこのalertレスポンスを受け取る処理がないため落ちているような気がする。

Sponsored Link

ビットコイン(Bitcoin)、イーサリアム(Ethereum)、リップル(Ripple)、ネム(NEM)などの仮想通貨を買うならZaifがおすすめです。

特に国内でETHを購入するなら、アルトコインでも板取引に対応しているZaif(ザイフ)が割安なのでよいですよ。

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

コメントを残す

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

CAPTCHA


Dapps
ERC721のサンプルコード上を使ってデータを譲渡してみる

前回の記事からの続きです。 テストまで前回通したので、いよいよ送金をやってみます。 Sponsore …

Ethereum(イーサリアム)
ERC721のサンプルコードを動かしてみる

以前ERC721を紹介しましたが今回はその際に紹介したサンプルコードを動かしてみようと思います。 S …

Bitcoin(ビットコイン)
Bitcoinをカスタマイズする際にエラーで落ちて出力されたCoreファイルをトレースする

bitcoinの開発を行なっているとどうしてもセグメンテーションエラーなどでプログラムがとまってCo …