qt: Preserve headers presync progress #938

pull djh58 wants to merge 1 commits into bitcoin-core:master from djh58:qt-preserve-headers-presync-progress changing 8 files +114 −5
  1. djh58 commented at 6:14 PM on June 3, 2026: none

    Summary

    During headers pre-sync, the pre-sync height and the accepted-header height can describe different phases of initial sync. The GUI previously allowed both HEADER_PRESYNC and normal header/block sync updates to repaint the same status and modal overlay labels.

    As a result, an active Pre-syncing Headers (...) display could be replaced by a lower Syncing Headers (...) accepted-header progress value while headers pre-sync was still active. The modal overlay could also continue showing normal block verification progress during headers pre-sync.

    This PR keeps the headers pre-sync display active until accepted headers catch up, then restores normal header/block sync display behavior. It also labels modal progress as headers pre-sync progress during that phase instead of showing stale block verification progress.

    This is a GUI display-only change. It does not change header validation, block validation, peer behavior, block download, or sync state.

    Testing

    • cmake -B build-qt -DCMAKE_BUILD_TYPE=Debug -DBUILD_GUI=ON -DBUILD_TESTS=ON -DBUILD_GUI_TESTS=ON -DBUILD_BENCH=OFF -DBUILD_FUZZ_BINARY=OFF
    • cmake --build build-qt --target test_bitcoin-qt -j"$(sysctl -n hw.ncpu)"
    • ulimit -n 10240 && ctest --test-dir build-qt -R test_bitcoin-qt --output-on-failure

    The new regression coverage is ModalOverlayTests::headersPresyncProgressStaysVisible.

  2. qt: Preserve headers presync progress
    Headers pre-sync and normal accepted-header updates can report different heights while initial sync is still in the pre-sync phase. Both notifications were allowed to repaint the same GUI labels, so a lower accepted-header update could replace the active pre-sync progress display.
    
    Track active headers pre-sync in the GUI and modal overlay until accepted headers catch up. During that phase, label modal progress as headers pre-sync progress instead of showing stale block verification progress.
    d0c219520d
  3. DrahtBot commented at 6:14 PM on June 3, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  4. djh58 marked this as ready for review on Jun 3, 2026
  5. pinheadmz commented at 6:18 PM on June 3, 2026: contributor

    Smells like AI. Do you, the human, understand the changes? Before we run CI can you post some screenshots of what you have done here and explain why the change is needed?

  6. djh58 commented at 6:25 PM on June 3, 2026: none

    I observed this in a local build while setting up a node from a fresh datadir. When it was syncing, the progress tracker would alternate b/t "Pre-syncing Headers" and "Syncing Headers", which are two separate phases of header sync to my understanding. I'll try to reproduce again and get screenshots or a recording.

  7. djh58 closed this on Jun 3, 2026


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-06-08 06:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me