hasCheckpoint
True only when BOTH halves of a checkpoint are present — cheaper than loadCheckpoint (no deserialize) for a presence test. A half-written checkpoint reads as absent, forcing a clean genesis sync.
True only when BOTH halves of a checkpoint are present — cheaper than loadCheckpoint (no deserialize) for a presence test. A half-written checkpoint reads as absent, forcing a clean genesis sync.