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.
BOOST_CHECK_THROW(bit_reader.Read(8), std::ios_base::failure);
}
BOOST_AUTO_TEST_CASE(streams_serializedata_xor)
{
    std::vector<std::byte> in;
    
    {
        CDataStream ds{in, 0, 0};
        ds.Xor({0x00, 0x00});
        BOOST_CHECK_EQUAL(""s, ds.str());
    }
    in.push_back(std::byte{0x0f});
    in.push_back(std::byte{0xf0});
    
    {
        CDataStream ds{in, 0, 0};
        ds.Xor({0xff});
        BOOST_CHECK_EQUAL("\xf0\x0f"s, ds.str());
    }
    
    in.clear();
    in.push_back(std::byte{0xf0});
    in.push_back(std::byte{0x0f});
    {
        CDataStream ds{in, 0, 0};
        ds.Xor({0xff, 0x0f});
        BOOST_CHECK_EQUAL("\x0f\x00"s, ds.str());
    }
}
BOOST_AUTO_TEST_CASE(streams_buffered_file)