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(イーサリアム)
Error: The contract code couldn’t be stored, please check your gas amount.

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

Dapps
日本の都道府県を所有できるDApps & ERC721 のサンプルを公開してみました

最近、Ethereum上でカードなどを所有できるdAppsが流行っているので、試しに日本の都道府県を …

Ethereum(イーサリアム)
TX doesn’t have the correct nonce – Metamask

EthereumのdAppsを作ろうとしていてはまったのでメモ。 Metamaskを使用して支払いを …