What is IBD?
When you first start Bitcoin Core, it needs to:- Download all blocks from the network
- Validate each transaction in every block
- Build the UTXO (Unspent Transaction Output) database
- Verify the proof-of-work for each block
Bitcoin Core validates the entire blockchain history, ensuring that every transaction and block follows consensus rules. This makes it a fully validating node.
How Long Does IBD Take?
The synchronization time varies significantly based on:- Hardware: CPU speed, disk I/O performance, available RAM
- Network: Download speed and latency
- Configuration: dbcache size and other settings
Typical Timeline
- Fast system (SSD, 16GB+ RAM, fast internet): 4-8 hours
- Average system (SSD, 8GB RAM, moderate internet): 12-24 hours
- Slower system (HDD, 4GB RAM, slow internet): Several days
Monitoring IBD Progress
Check synchronization status using the RPC interface:- blocks: Number of validated blocks
- headers: Number of downloaded block headers
- verificationprogress: Estimated completion (0.0 to 1.0)
- initialblockdownload: Whether still in IBD mode
IBD Phases
Header Download
Bitcoin Core first downloads all block headers from peers. This is fast and completes in minutes.
Block Download
Full blocks are downloaded from peers. The node requests blocks from multiple peers in parallel.You’ll see rapid progress initially, then it slows down as blocks become larger and more complex.
Block Validation
Each block is validated:
- Verify proof-of-work
- Validate all transactions
- Check consensus rules
- Update the UTXO database
Storage Requirements
See the Pruning documentation to reduce storage requirements.Network Usage During IBD
IBD requires downloading the entire blockchain:- Download: 500+ GB of block data
- Upload: Varies based on peers requesting data from you
Reducing Network Traffic
If bandwidth is limited:Optimizing IBD Performance
Increase Database Cache
The most effective optimization is increasing the dbcache:Use an SSD
SSD storage dramatically improves IBD speed compared to traditional hard drives:- SSD: 10-20x faster random I/O
- HDD: Slower but adequate if you’re patient
Adjust Script Verification Threads
Checking If IBD is Complete
IBD is complete when:Troubleshooting IBD Issues
IBD Appears Stuck
-
Check network connectivity:
- Verify disk space: Ensure adequate free space in your data directory
-
Check logs:
Look for errors in
debug.login your data directory
Slow Progress
- Increase
-dbcacheif you have available RAM - Ensure using SSD storage if possible
- Check CPU usage - should be high during validation
- Verify network peers are connected
Database Corruption
If you suspect corruption:Assumeutxo (Fast Sync)
Bitcoin Core supports assumeutxo for faster bootstrapping:- Load a UTXO snapshot to quickly get a validating node running
- Background IBD continues to validate the full history
- Requires downloading a trusted snapshot
AssumeUTXO snapshots are hardcoded in Bitcoin Core and validated against known hashes. The node still performs full validation in the background.
After IBD
Once IBD completes:- Your node validates new blocks as they arrive (every ~10 minutes)
- You can enable transaction indexing, wallets, and other features
- The node contributes to the network by relaying transactions and blocks
- You have a fully validating, trustless Bitcoin node
Next Steps
Performance Optimization
Tune your node after IBD
Pruning
Enable pruning to save disk space
Reduce Traffic
Optimize bandwidth usage
Running Bitcoin Core
Learn basic node operation