wouldn't "emit numBlocksChanges(newNumBlocks, std::max(newNumBlocksOfPeers, newNumBlocks))" be the same?