### Motivation

This should be done before the branch-off, and can be done by anyone, as the steps are  reproducible and reviewable.

### Possible solution

Follow the documentation: https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#before-branch-off

### Useful Skills

* Compiling Bitcoin Core from source
* Running the C++ unit tests and the Python functional tests
* ...


### Guidance for new contributors

Want to work on this issue?

For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request.

if (received_headers.empty()) return ret;
    Assume(m_download_state != State::FINAL);
    if (m_download_state == State::FINAL) return ret;
    if (m_download_state == State::PRESYNC) {
        
        
        
        ret.success = ValidateAndStoreHeadersCommitments(received_headers);
        if (ret.success) {
            if (full_headers_message || m_download_state == State::REDOWNLOAD) {
                
                
                
                ret.request_more = true;
            } else {
                Assume(m_download_state == State::PRESYNC);
                
                
                
                LogPrint(BCLog::NET, "Initial headers sync aborted with peer=%d: incomplete headers message at height=%i (presync phase)\n", m_id, m_current_height);
            }
        }
    } else if (m_download_state == State::REDOWNLOAD) {
        
        
        
        
        ret.success = true;
        for (const auto& hdr : received_headers) {
            if (!ValidateAndStoreRedownloadedHeader(hdr)) {