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(イーサリアム)
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を使用して支払いを …