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.
{
    AssertLockHeld(cs);
    if (!addr.IsRoutable())
        return false;
    int nId;
    AddrInfo* pinfo = Find(addr, &nId);
    
    if (addr == source) {
        time_penalty = 0s;
    }
    if (pinfo) {
        
        const bool currently_online{NodeClock::now() - addr.nTime < 24h};
        const auto update_interval{currently_online ? 1h : 24h};
        if (pinfo->nTime < addr.nTime - update_interval - time_penalty) {
            pinfo->nTime = std::max(NodeSeconds{0s}, addr.nTime - time_penalty);
        }
        
        pinfo->nServices = ServiceFlags(pinfo->nServices | addr.nServices);
        
        if (addr.nTime <= pinfo->nTime) {
            return false;
        }
        
        if (pinfo->fInTried)
            return false;
        
        if (pinfo->nRefCount == ADDRMAN_NEW_BUCKETS_PER_ADDRESS)
            return false;