When `peers.dat` is corrupted an error message is shown: `Invalid or corrupt peers.dat (Checksum mismatch, data corrupted).` then the node restart.

Most of our users aren't really tech enough to manually delete the `peers.dat` files, nor can we detect it for them. It means that this error give us lot's of work on our support team when somebody is impacted.

`peers.dat` isn't an essential file, as such Bitcoin Core should just be fine restarting without crashing.

A bash workaround to detect the checksum mismatch would also considerably help us.
{
    fs::path streams_test_filename = m_args.GetDataDirBase() / "streams_test_tmp";
    FILE* file = fsbridge::fopen(streams_test_filename, "w+b");
    
    for (uint8_t j = 0; j < 40; ++j) {
        fwrite(&j, 1, 1, file);
    }
    rewind(file);
    
    
    try {
        CBufferedFile bfbad(file, 25, 25, 222, 333);
        BOOST_CHECK(false);
    } catch (const std::exception& e) {
        BOOST_CHECK(strstr(e.what(),
                        "Rewind limit must be less than buffer size") != nullptr);
    }
    
    CBufferedFile bf(file, 25, 10, 222, 333);
    BOOST_CHECK(!bf.eof());
    
    BOOST_CHECK_EQUAL(bf.GetType(), 222);
    BOOST_CHECK_EQUAL(bf.GetVersion(), 333);
    uint8_t i;
    bf >> i;