bitcoincore フォルダ ブロックチェーン:データディレクトリ解説
Bitcoin Core のデータフォルダ(データディレクトリ)とブロックチェーンデータ
本文では「bitcoincore フォルダ ブロックチェーン」を中心に、Bitcoin Core(bitcoind / Bitcoin-Qt)がローカルに保持するデータディレクトリの構成と運用方法をわかりやすく解説します。初めてフルノードを立てる方やデータ移行・トラブル対応を行う運用者にとって実用的なガイドを提供します。
「bitcoincore フォルダ ブロックチェーン」は、Bitcoin Core が使用するデータディレクトリ(データフォルダ)と、その中に保存されるブロックチェーン関連ファイル(blocks、chainstate、wallet 等)を指します。本記事では、各ファイルの役割、OS別の既定パス、同期(IBD)時のディスク容量目安、プルーニングや再構築の手順、セキュリティ上の注意点まで網羅します。Bitget Wallet を用いた安全なウォレット管理の基本も触れます。
2025-12-27時点で、bitcoin.org のドキュメントによると、フルノード運用には数百ギガバイトのディスク容量が必要であり、同期時間や使用容量はノード設定やネットワーク状況に依存します(出典:bitcoin.org ドキュメント、2025-12-27)。
概要
- 定義:bitcoincore フォルダ ブロックチェーン とは、Bitcoin Core がローカルで保持するデータ(ブロック本体、UTXO チェーンステート、ピア情報、ウォレット等)を格納するデータディレクトリのことを指します。
- 役割:フルノードはブロックとトランザクションをダウンロード・検証し、その履歴と現在の UTXO(未使用トランザクション出力)をローカルに保持します。これによりネットワークの検証を独立して行えます。
用語解説(簡潔)
- datadir:Bitcoin Core のデータディレクトリ(デフォルトでは OS により場所が決まる)。
- IBD(Initial Block Download):初回起動時にブロックチェーン全体をダウンロードして同期するプロセス。
- chainstate:UTXO(未使用トランザクション出力)セットを保持するデータベース(通常 LevelDB ベース)。
- UTXO:現在使用可能なコインの一覧を示す概念。ノードがアドレスの残高を迅速に確認するために用いる。
- プルーニング(prune):古いブロックデータを削除してディスク容量を節約するモード。履歴の提供は行えなくなる。
デフォルトのフォルダ位置(OS別)
Linux
通常の既定パスはホームディレクトリ下の .bitcoin フォルダです。
- 既定:~/.bitcoin
- testnet 用:~/.bitcoin/testnet3
- カスタム:起動時に -datadir=/path/to/datadir を指定できます。
例:
Windows
Windows の既定パスはユーザープロファイルの AppData にあります。
- 既定:%APPDATA%\Bitcoin(例: C:\Users<ユーザー>\AppData\Roaming\Bitcoin)
- testnet 用:%APPDATA%\Bitcoin\testnet3
起動時にショートカットのプロパティやコマンドラインで -datadir を指定可能です。
macOS
macOS の既定パス:~/Library/Application Support/Bitcoin
- 既定:~/Library/Application Support/Bitcoin
- testnet 用:~/Library/Application Support/Bitcoin/testnet3
テストネットやカスタム datadir
- testnet を使う場合は起動オプションに -testnet を付けると testnet3 フォルダを使用します。
- regtest は別フォルダを使用し、開発時に便利です。
- 複数ノードを同じマシンで動かしたい場合は、それぞれに -datadir で別フォルダを割り当てます。
ディレクトリ内の主要フォルダとファイル(構成要素)
以下は典型的な datadir のファイル・フォルダです。実際の構成は Bitcoin Core のバージョンや設定によって一部異なります。
blocks/
- 内容:blk*.dat(ブロック本体のバイナリファイル)、rev*.dat(トランザクションリバーサル情報)、index(ブロックインデックス)など。
- 役割:実際のブロックデータを保持する。IBD 時にダウンロードされる大部分のデータがここに入る。
例:blk00000.dat, blk00001.dat, rev00000.dat
chainstate/
- 内容:UTXO セットを格納するデータベース(通常 LevelDB)。
- 役割:ノードがアカウント残高やUTXOの有無を高速に照会するための作業領域。
- 注意点:chainstate のフォーマットは Bitcoin Core のメジャーアップデートで変更されることがあり、互換性に注意が必要です。
wallets/ または wallet.dat
- 旧来の wallet.dat(単一ファイル)方式と、近年加わった descriptor ベースの wallets/ フォルダの両方が存在します。
- 役割:秘密鍵やウォレットに関するメタ情報を保持する。ウォレットは金銭的資産を復元する重要ファイルのため必ずバックアップする必要があります。
peers.dat、mempool.dat、banlist.dat、fee_estimates.dat、settings.json、debug.log
- peers.dat:接続済みピアの永続化データ(再起動時に接続候補を保持)。
- mempool.dat:メモリプール(未確認トランザクション)の永続化(起動・終了の高速化)。
- banlist.dat:接続禁止リスト。
- fee_estimates.dat:手数料推定値の永続化に使用。
- settings.json:GUI 設定などの保存先。
- debug.log:ノードの稼働ログ。トラブルシューティングに役立つ。
bitcoin.conf
- 内容:datadir に置ける設定ファイル。よく使う項目に rpcuser/rpcpassword、server=1(RPC を有効化)、prune=(プルーニングサイズ)、dbcache=(メモリ上限)等がある。
- 例:
ブロックチェーン同期(IBD)とディスク容量
同期の流れ
- 初回起動時(IBD)に最新ブロックまで過去すべてのブロックをダウンロードし、各ブロックの検証を行います。
- 検証には CPU、メモリ、ディスク IO が関わり、フル検証を行うことでノードは自己完結的な検証が可能になります。
ディスク使用量の目安
2025-12-27時点で、bitcoin.org のガイドラインに従うと、フルノードのディスク使用量は数百ギガバイトに達します。一般的な目安としては 300GB〜700GB(バージョンや設定により増減)を見込む必要があります(出典:bitcoin.org ドキュメント、2025-12-27)。
- getblockchaininfo RPC で同期状況を確認できます。
例:
出力の中の blocks、headers、verificationprogress、size_on_disk(実装による)等を確認します。
テストネットの違い
- testnet のブロックチェーンサイズは本番網より小さく、開発や実験に適しています。testnet はデフォルトで datadir/testnet3 を使うため本番データと混ざる心配はありません。
プルーニング(Pruning)とストレージ最適化
プルーニングの概要
- -prune=<サイズ> オプションにより、古いブロックデータを自動で削除することでディスク容量を節約できます(例:prune=550 で最低 550MB を保持)。
- 利点:ディスク容量が限られる環境でフルノードを動かせる。
- 欠点:古いブロックデータを提供できないため、ブロック履歴の完全な提供や一部機能に制限が出る。
dbcache やハードウェア選択
- -dbcache オプションで LevelDB のキャッシュサイズを増やすことで初回同期や再構築時の速度が向上します。ただしメモリ使用量が増えるため余裕がある場合のみ増やす。
- ストレージ:SSD を推奨します。HDD に比べてランダムアクセス性能が高く、同期や reindex 時の時間を大幅に短縮できます。
- 外付けストレージ:USB 接続やネットワークドライブを使う場合は書込みキャッシュや接続の安定性に注意してください。データ破損のリスクが増えます。
ブートストラップ/外部同期
- bootstrap.dat(古い手法)やトレント経由のブートストラップは初期同期を高速化する手段でしたが、現在は公式推奨の方法ではなく、セキュリティと整合性を確認した上で利用する必要があります。
chainstate とデータベースフォーマットの変化(互換性)
- Bitcoin Core のメジャーバージョンアップでは chainstate の内部フォーマットや mempool.dat の形式が変更されることがあります。
- 例:過去のリリースでは chainstate の構造が変更され、アップグレード時に自動変換が行われる一方、ダウングレードは困難であり、再構築(-reindex または -reindex-chainstate)やフル再ダウンロードが必要になる場合があります。
- アップグレード前にはリリースノートを確認し、重要なデータ(wallet)を必ずバックアップしてください(出典:bitcoincore.org リリースノート)。
ディレクトリ移動・指定とコマンド例
datadir の指定方法
- コマンドライン例(Linux/macOS):
- Windows のショートカットでは Target に以下を追加します:
- testnet と組み合わせる場合:
RPC / CLI による状態確認と基本操作
- 同期状況確認:
- 新しいアドレスを作る:
- ウォレット一覧:
- 再構築(reindex)の実行:
reindex は時間がかかるため、実行する前にデータのバックアップと運用影響を確認してください。
ウォレットとバックアップ運用
ウォレットのバックアップ方針
- wallet.dat や descriptors を定期的にバックアップしてください。ウォレットは秘密鍵を含むため、紛失や破損は資産喪失につながります。
- ウォレットは暗号化(walletpassphrase)して保護し、バックアップ時には暗号化状態での保存を検討しますが、パスフレーズ自体の管理も重要です。
- リカバリー時にはウォレットファイルの復元後に rescan(チェーンの再走査)が必要な場合があります。rescan は同期時間を長くすることがあるので注意。
ウォレットとブロックチェーンのバックアップの違い
- ブロックチェーンは公開データなので再ダウンロードでいつでも復元可能ですが、ウォレットは唯一の鍵情報です。優先してウォレットをバックアップしてください。
- 例:秘密鍵(WIF)、mnemonic(ニーモニック)や descriptors などを安全なオフライン媒体に保管。
Bitget Wallet の活用(推奨)
- ウォレット管理には信頼性の高いツールが重要です。Bitget Wallet はユーザー向けに設計された Web3 ウォレットとして、シードフレーズ管理やアドレス生成の補助を行います。ノードの wallet.dat と併用する際は復元手順や互換性を確認してください。
セキュリティと運用上の注意点
ファイル/フォルダ権限
- datadir は他ユーザーからのアクセスを制限すること。Linux では所有者と権限を適切に設定し、root での常時運用は避ける(サービスユーザーを使う)。
- 例:
RPC の保護
- RPC を公開すると遠隔からノードを操作される危険があります。rpcbind、rpcallowip、強力な rpcuser/rpcpassword を設定し、ファイアウォールで制限してください。
- server=1 を有効にすると RPC サーバが立ち上がります。外部に公開する必要がある場合は TLS と認証、IP 制限を必ず実施してください。
ログとディスク障害
- debug.log を定期的に確認して異常なログや頻繁なエラーを早期に検知してください。
- ディスク障害やファイル破損に備え、ウォレットのオフサイトバックアップ、または定期的なスナップショットを推奨します。
アップグレード/メンテナンスと注意事項
- バージョン間の互換性:major アップデートでは chainstate の形式変更や mempool 形式の変更があることに注意。必ずリリースノートを読んでからアップグレードを行ってください(出典:bitcoincore.org リリースノート)。
- ダウングレード対策:ダウングレードは一般に推奨されません。必要な場合は datadir のフルバックアップを取り、再構築の手順(-reindex)を用意してください。
- 定期メンテナンス:ログローテーションの設定、ディスク容量監視、定期バックアップを行うことで運用安定性が向上します。
トラブルシューティング(よくある問題と対処)
ディスク不足
対処法:
- プルーニングを有効化(-prune)して不要な blk*.dat を削除。
- 外付けドライブへ datadir を移動(事前にバックアップと検証を行う)。
- 不要ファイルや古いログを削除。
移動例:
blocks/ または chainstate の破損
対処法:
- debug.log を確認して原因を特定。
- -reindex または -reindex-chainstate を試す。
- 最終手段は blocks/ と chainstate/ を削除して再同期。
注意:blocks/ と chainstate/ を手動で削除する場合、ウォレットファイルを誤って消さないようにしてください。
同期が進まない/接続できない
確認項目:
- ネットワーク接続(ポート 8333 のブロックや NAT 設定)。
- peers.dat の状態、addnode や connect を使った接続試行。
- ファイアウォールや ISP が P2P 接続を制限していないか。
基本コマンド:
ベストプラクティス(運用ガイドライン)
- ハードウェア:SSD、十分なメモリ(dbcache を増やす余裕)、安定した電源を推奨。
- 常時稼働:フルノードは常時稼働させることでネットワーク貢献と迅速な同期を実現。
- バックアップ頻度:ウォレットは頻繁にバックアップ、datadir のスナップショットは重要なアップデート前に取得。
- 開発・テスト:testnet/regtest を利用し、本番データと明確に分離した datadir を使用する。
参考資料・公式ドキュメント
- Bitcoin Core 公式ドキュメント(version とリリースノート)を参照して最新の互換性情報やフォーマット変更を確認してください(出典:bitcoin.org / bitcoincore.org、2025-12-27)。
- 実践的な操作例や datadir 指定の実例はコミュニティのチュートリアル(Zenn 等)や GitHub の教材リポジトリが参考になります。
まとめと次のステップ
この記事では「bitcoincore フォルダ ブロックチェーン」を中心に、データディレクトリの構成、主要ファイル、同期と容量、プルーニング、chainstate の互換性、運用上の注意点、トラブルシューティングまで網羅的に解説しました。フルノード運用はネットワークに対する重要な貢献であり、ウォレットのバックアップや RPC の保護などセキュリティ対策が不可欠です。
運用を始める際は、まず小さな testnet ノードで手順を確認し、本番ノードを立てる際には datadir のバックアップ、適切な権限設定、Bitget Wallet など信頼できるウォレットの併用を検討してください。さらに詳しい操作例(datadir の移動、reindex の実行、prune の設定)を希望される場合は、該当の節を拡張して具体的なコマンドと実行手順を提示できます。Bitget のサービスに関して詳しく知りたい場合は、Bitget の公式資料やサポートも合わせてご利用ください。
さらに探索:Bitget Wallet を使ったウォレット復元や安全なキー管理について学び、あなたのノード運用と資産管理を次のレベルへ進めましょう。
暗号資産をすぐに入手したいですか?
関連記事
最新記事
もっと見る






















