ビットコインピアと直接通信してみたい

タイトルでビットコインピアと直接通信してみたいと書いてみましたが、実はすでにアルトコインとはDNS Seedというサービスで通信しております。

http://seed.sighash.info/

ソースはこれ。

https://github.com/ohac/dnsseed-ruby

これはdnsseedというPHPで書かれているコードをRubyに移植したものです。

ただ、これで通信しているのは以下のような流れで、ほんの少ししかコマンドを使っていないのです。

  • version, verack でバージョンと最大ブロック高を送受信
  • getaddr で既知のピアの情報をもらう

一方、bootstrap.datを作成するためのblockchain2torrentというのがあります。

https://github.com/ohac/blockchain2torrent

これはRPCで通信しているので、自分で立ち上げたノードとしか普通は通信できません。

これは以下のRPCコマンドを使っています。

  • getinfo - 最大ブロック高を得るためだけに使用
  • getblockhash - 指定したブロック高のハッシュ値を得る
  • getblock - 指定したハッシュ値からブロックそのものを得る

これら3つのコマンドをRPCなしで得られれば、自分でノードを立ち上げる必要がなくなります。

ノードが信頼できるかどうか分かりませんので、なんらかの基準を設けて選定し、さらに複数ノードでベリファイするような処理が必要ですが、実験やbootstrap.datを得るためだけであればあまり慎重にならなくてもよいかもしれません。

さらにbitcoin-abeやelectrum-serverを動かすには下記RPCコマンドも必要となります。

  • bitcoin-abe, electrum-serverに必要
  • electrum-serverに必要
    • sendrawtransaction - 送金などのbroadcastで必要
    • estimatefee - feeの計算で必要
    • getinfo - relayfeeも見る必要がある

ここまでサポートできたらSPVが各種コアデーモンを立ち上げずに実現できるのでうれしいかもしれません。

にほんブログ村 その他生活ブログ 仮想通貨へ
にほんブログ村