ブロックチェーンに詳しいフリーのエンジニアのIT備忘録

ブロックチェーンに魅了されフリーのITエンジニアに転身した元暗号理論研究者のブログです。

bitcoindに秘密鍵をインポートしたのに残高が反映されない件

表題の通りなのですが、
bitcoindに秘密鍵をインポートしたのに、
残高が0のままで焦りました。
その対応の記録です。

同じ問題で困っている方の一助になればと思います。

(1)秘密鍵をインポートする

念の為、秘密鍵のインポートの仕方を記載します。
bitcoindを立ち上げた後、以下のコマンドでインポートされます。

 $bitcoin-cli importprivkey "bitcoinprivkey" ( "label" rescan)

引数に関して以下に解説を加えます。

引数名 解説
bitcoinprivkey 秘密鍵のこと。ただしWIF形式で指定します。
label (任意) アカウント名を指定します。
rescan(任意) ブロックチェーンを再読込する場合はtrueを指定します。

というところです。
最初rescanのことをうまく認識できておらず、
これが今回の問題の一番の要因となりました。。。

(2)秘密鍵をインポートしても残高が反映されない。

上記のコマンドで、
秘密鍵をインポートしても
残高が0のままなのです。。。

(3)ウォレットは秘密鍵をインポートした後の取引しか見ない

焦りながら情報を調べていった結果、
以下の記事を見つけ、
bitcoin coreのウォレットは、
"秘密鍵をインポートした後の取引しか見ない"ということが分かりました。
bitcoin.stackexchange.com

(4)インポートの前の履歴や残高を取得する場合

bitcoindにブロックチェーンを再読込するように
教えてあげないといけません。

コマンドは簡単で、

$ bitcoind -rescan

です。



再読込のため、
私のメモリ8GBのPCでは、
2時間弱かかりましたが、無事残高を正しく表示できました。



なお、bitcoin-cli importprivkey の引数の一つであるrescanについてです。
ここをtrueで指定してやると、勝手にブロックチェーンを再読込しそうなのですが、
機能しないようです。



以下の記事でそのようなことが報告されています。
github.com




これで無事、秘密鍵と残高が反映されました^^