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.
if (!RenameOver(pathTmp, path)) {
        remove(pathTmp);
        return error("%s: Rename-into-place failed", __func__);
    }
    return true;
}
template <typename Stream, typename Data>
void DeserializeDB(Stream& stream, Data& data, bool fCheckSum = true)
{
    CHashVerifier<Stream> verifier(&stream);
    
    unsigned char pchMsgTmp[4];
    verifier >> pchMsgTmp;
    
    if (memcmp(pchMsgTmp, Params().MessageStart(), sizeof(pchMsgTmp))) {
        throw std::runtime_error{"Invalid network magic number"};
    }
    
    verifier >> data;
    
    if (fCheckSum) {
        uint256 hashTmp;
        stream >> hashTmp;
        if (hashTmp != verifier.GetHash()) {
            throw std::runtime_error{"Checksum mismatch, data corrupted"};
        }
    }
}
template <typename Data>
void DeserializeFileDB(const fs::path& path, Data& data, int version)