- BTCPay Server integration - TeleBot Telegram bot - Review system - Admin area - Docker deployment configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
3.2 KiB
3.2 KiB
Fast Sync Optimization for BTCPay Server
Date: September 16, 2025
Optimizations Applied
Bitcoin Core Fast Sync
- dbcache: Increased from 1000MB to 2000MB for faster processing
- assumevalid: Added recent block hash to skip signature verification for known-good blocks
- Hash:
00000000000000000002a23d6df20eecec15b21d32c75833cce28f113de888b7 - This significantly speeds up initial sync by skipping cryptographic verification
- Hash:
Monero Fast Sync
- fast-block-sync: Enabled for faster block processing
- block-sync-size: Set to 20 blocks per batch
- max-concurrency: Increased from 2 to 4 threads
- db-sync-mode: Changed from
safe:synctofast:async:250000000bytessafe:sync- Slowest but safest (original setting)fast:async- Much faster, slight risk if power loss during syncfastest:async- Maximum speed but highest risk (not recommended)
Configuration File
Location: /opt/btcpayserver-docker/docker-compose.override.yml
version: "3.6"
services:
bitcoind:
environment:
BITCOIN_EXTRA_ARGS: |
prune=10000
maxmempool=300
dbcache=2000
maxconnections=40
rpcthreads=6
assumevalid=00000000000000000002a23d6df20eecec15b21d32c75833cce28f113de888b7
monerod:
environment:
MONERO_EXTRA_ARGS: |
--prune-blockchain
--sync-pruned-blocks
--fast-block-sync=1
--block-sync-size=20
--max-concurrency=4
--db-sync-mode=fast:async:250000000bytes
Expected Sync Times (With Optimizations)
Before Optimizations
- Bitcoin: 24-36 hours
- Monero: 48-72 hours
After Optimizations
- Bitcoin: 8-12 hours (from current 43% progress)
- Monero: 18-24 hours (from current 0.2% progress)
Alternative Fast Sync Options
1. Bootstrap Files (Not Used)
- Download pre-synced blockchain data
- Pros: Very fast (2-4 hours)
- Cons: Trust required, large download (50GB+)
2. Remote Node (Not Used)
- Connect to existing synced node
- Pros: Instant availability
- Cons: Less privacy, dependency on external service
3. Checkpoint Sync (Partially Used)
- Bitcoin:
assumevalidimplemented - Monero: Built-in checkpoints used automatically
Monitoring Commands
Check Sync Progress
# Bitcoin
sudo docker exec btcpayserver_bitcoind bitcoin-cli getblockchaininfo | grep -E "blocks|progress"
# Monero
sudo docker exec btcpayserver_monerod monerod status
View Sync Speed
# Bitcoin (blocks per minute)
sudo docker logs btcpayserver_bitcoind --tail 100 | grep UpdateTip
# Monero (blocks per second)
sudo docker logs btcpayserver_monerod --tail 100 | grep Synced
Safety Notes
fast:asyncmode trades some safety for speed- After sync completes, mode automatically becomes safer
- Power loss during sync may require resync of recent blocks
- Pruning remains active to limit disk usage
Rollback if Needed
Backup saved at: /opt/btcpayserver-docker/docker-compose.override.yml.backup-*
sudo cp /opt/btcpayserver-docker/docker-compose.override.yml.backup-* /opt/btcpayserver-docker/docker-compose.override.yml
cd /opt/btcpayserver-docker
sudo docker-compose restart bitcoind monerod