[Bug]: Bitcoind is slow #4

Closed
opened 2026-05-19 04:22:56 +00:00 by ssmithx · 2 comments

Description

IBD is taking forever

Steps to Reproduce

start bitcoin knots and analyze the IPD

Expected Behavior

Should be relatively fast

Actual Behavior

The logs confirm three overlapping problems.

  1. No parallel validation (-par=0 not set)
    The logs show txindex is catching up on block notifications repeatedly. The node is validating blocks sequentially on only one core instead of using all cores in parallel. On a slow dual-core laptop this is catastrophic.

  2. cache=2016.5MiB - the database cache is only ~2 GiBiB. According to the deploy-bitcoin-knots.sh script, it should be set to -dbcache=4096 (4 GiB). The config isn't being applied correctly.

  3. txindex is enabled. The deploy script uses txindex=1 instead of prune=550. This doubles the write workload during IBD as every index entry is stored.

Hardware limitations

This is a Lenovo ThinkPad X250 with an Intel Core i7-5600U (2-core / 4-thread laptop CPU). Combined with a SATA SSD (not NVMe), the I/O-bound single-threaded validation is the bottleneck.

Solutions (in order of impact)

  1. Set -dbcache=4096 — doubles cache from 2GB to 4GB
  2. Set prune=550 instead of txindex=1 — halves IBD write volume
  3. Restart the node with the new settings — force IBD to complete with optimized params

Archipelago Version

1.7.67

Hardware

x86_64 (Intel/AMD)

Relevant Logs

No response

Screenshots

No response

### Description IBD is taking forever ### Steps to Reproduce start bitcoin knots and analyze the IPD ### Expected Behavior Should be relatively fast ### Actual Behavior The logs confirm three overlapping problems. 1. **No parallel validation (`-par=0` not set)** The logs show `txindex is catching up on block notifications` repeatedly. The node is validating blocks sequentially on **only one core** instead of using all cores in parallel. On a slow dual-core laptop this is catastrophic. 2. **`cache=2016.5MiB`** - the database cache is only **~2 GiBiB**. According to the `deploy-bitcoin-knots.sh` script, it should be set to `-dbcache=4096` (4 GiB). The config isn't being applied correctly. 3. **`txindex` is enabled.** The deploy script uses `txindex=1` instead of `prune=550`. This **doubles the write workload** during IBD as every index entry is stored. ### **Hardware limitations** This is a **Lenovo ThinkPad X250** with an Intel Core i7-5600U (2-core / 4-thread laptop CPU). Combined with a SATA SSD (not NVMe), the I/O-bound single-threaded validation is the bottleneck. ### **Solutions (in order of impact)** 1. **Set `-dbcache=4096`** — doubles cache from 2GB to 4GB 2. **Set `prune=550`** instead of `txindex=1` — halves IBD write volume 3. **Restart the node** with the new settings — force IBD to complete with optimized params ### Archipelago Version 1.7.67 ### Hardware x86_64 (Intel/AMD) ### Relevant Logs _No response_ ### Screenshots _No response_
Owner

Believe this is fixes, need to confirm with testing

Believe this is fixes, need to confirm with testing
Owner

Verified fixed in code: bitcoind/knots launch args now set -dbcache=4096 and -par=0 (use all cores) — core/archipelago/src/api/rpc/package/config.rs (~L692-693, documented L677-680). Parallel validation + larger UTXO cache address the slow-IBD root causes. Closing as implemented.

Verified fixed in code: bitcoind/knots launch args now set `-dbcache=4096` and `-par=0` (use all cores) — `core/archipelago/src/api/rpc/package/config.rs` (~L692-693, documented L677-680). Parallel validation + larger UTXO cache address the slow-IBD root causes. Closing as implemented.
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lfg2025/archy#4
No description provided.