hiro99ma blog

rust: BDK で Bitcoin Core RPC を使う

2025/10/20

libwally-core になくて BDK にある機能の 1 つに、 bitcoin ネットワークへのアクセスがある。
名前からするとこれらだろう。

現時点での Cookbook からすると、neutrino というか Block Filter を使うこともできそうだ。
まずはすぐに使うことができる Bitcoin Core RPC を使ってみよう。
接続先はローカルで動かしている regtest ノードとする。

Bitcoin Core RPC

この章の前に Electrum と Esplora の説明がある。
bdk_wallet::Walletstart_full_scan()apply_update() を使うのだが、 bdk_bitcoind_rpc はちょっと扱いが違っていた。

書いてあるサンプルを動かすと、ブロック0 から順番に現在のブロックまで見ていくようだった。
私は regtest で試したのですぐ終わったが、mainnet ではかなり時間がかかりそうだ。

Electrum API を使うと ScriptPubKey で問い合わせができる。
HD wallet でインデックス値を増やしながら ScriptPubKey で検索していき、 残高が入っていない状態が GapLimit などで決めた数だけ続いたら検索を打ち切るのが一般的なので、 おそらくそちらの方が早く終わるだろう。

Compact Block Filter を使うタイプが次の章の Kyoto だろう。
多少は早くなるのかな? ただ bitcoin.conf で設定されていないと使えないので、そこだけ注意がいる。

writer: hiro99ma


 <🏠 Top page
コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage

About me