Bitcoinのデータはどこにあるのか?
Bitcoinのデータが実際どこに入っているのか。調べたのでメモ。
Bitcoin Coreをダウンロードし、ファイルを調べる。
Bitcoin Coreの説明は以下のページがわかりやすい。
speakerdeck.com
データが保存されているファイル、ディレクトリは次のようになっている。
blocks/blk*.dat
実際のブロックチェーンのデータが格納される。ウォレットで欠如しているトランザクションを再スキャンしたり、同期中の他のノードにブロックを提供するのに使われる。
DBになっておらず、追記専用ファイルとして保存される。
chainstate
UTXOとトランザクションのメタデータをコンパクトにしたDB(LevelDB)。
新しく受信したブロック、トランザクションの検証に使われる。
新しいブロックを受信すると、そのブロック内に含まれたトランザクションによって消費されたUTXOを削除し、そのアウトプットを追加する。
ただ、デフォルトでは、自分に関連したUTXOしか保存されていない。
そこで、任意のトランザクションを見ることができるようにするには、Bitcoin Coreにtxindexというオプションを設定する必要がある。
ビットコインコア設定ファイルbitcoin.confでtxindex=1とし、再起動すると全てのUTXOのダウンロードが開始される。
gettransactionコマンドで、確認できると思う。