- 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>
106 lines
3.2 KiB
Markdown
106 lines
3.2 KiB
Markdown
# 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
|
|
|
|
### 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:sync` to `fast:async:250000000bytes`
|
|
- `safe:sync` - Slowest but safest (original setting)
|
|
- `fast:async` - Much faster, slight risk if power loss during sync
|
|
- `fastest:async` - Maximum speed but highest risk (not recommended)
|
|
|
|
## Configuration File
|
|
Location: `/opt/btcpayserver-docker/docker-compose.override.yml`
|
|
```yaml
|
|
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: `assumevalid` implemented
|
|
- Monero: Built-in checkpoints used automatically
|
|
|
|
## Monitoring Commands
|
|
|
|
### Check Sync Progress
|
|
```bash
|
|
# Bitcoin
|
|
sudo docker exec btcpayserver_bitcoind bitcoin-cli getblockchaininfo | grep -E "blocks|progress"
|
|
|
|
# Monero
|
|
sudo docker exec btcpayserver_monerod monerod status
|
|
```
|
|
|
|
### View Sync Speed
|
|
```bash
|
|
# 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:async` mode 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-*`
|
|
```bash
|
|
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
|
|
``` |