SPVモードで自分のウォレットと関係ある取引だけ同期したい場合のやりとりを求める

技術メモ

今日は SPVモードで自分のウォレットと関係ある取引だけ同期したい場合のやりとりを求めてみる。

関係ある取引だけしたい場合は、filterloadを使うと思われる。

自信はないが以下2つの答えで迷っている。

S:version,R:verack,R:version,S:verack,S:filterload,S:getheaders,R:headers,{S:getdata,R:merkleblock}

もしくは

S:version,R:verack,R:version,S:verack,S:filterload,{S:getdata,R:merkleblock}

getheadersが必要なのかどうか。

上から順に解説していくと

version, verack
こちらは前回の記事でも記載していたので割愛。

filterload
BIP37を訳してくれているページ

filterloadのコマンドを実行すると、bloom filterで関連付けられたブロックのみ送られるようになる。
ここでわからないのが、いきなり getdata でよいのか、getblocks, getheaders を送信しなければあとの merkleblock は受信できないのかどうか。

この辺りは次回、なにかwalletソースを動かすか、サーバーソース見てみる。

そのあと、getdata を MSG_FILTERED_BLOCK (== 3) オプションでおくって
merkleblock を受けつける、、、はず。
特に順番に言及していないので実際の挙動見てみないとわからなさそう。

[追記]
S:version,R:verack,R:version,S:getheaders,R:headers,S:filterload,
{S:getblocks,R:inv,S:getdata,R:merkleblock,R:tx}
だそうです。

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にあげようとしたときにはまったエ …