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


Ethereum(イーサリアム)
Ethereumの開発用ツールリストが公開されていた!

ALISのCTO石井さんがつぶやいてたんですが とてもありがたい #Ethereum 開発ツールの一 …

技術メモ
Counterpartyの環境構築が大変という話

暗号通貨の独自通貨を作ろうとするとEthereumが有名で簡単ですが、BitcoinでもCounte …

Ethereum(イーサリアム)
Error: The contract code couldn’t be stored, please check your gas amount.

ALISのICOソースのzeppelinバージョンを1.2から1.8にあげようとしたときにはまったエ …