Integrity
No quorum, no commit.
Why it matters
An RPC provider is a single party you decide to trust. Sieve has no such party. It pulls blocks from anonymous peers on the P2P network, any of which could lie, stall, or serve a body that does not match the header it claims.
So Sieve trusts none of them individually. Every block passes a fixed set of checks before a single row is written, and Sieve stops rather than write data it could not verify.
What happens before a commit
The canonical hash of each segment has to be confirmed by an absolute number of distinct peers (3 by default). Empty replies and timeouts never count toward the quorum.
The full header chain up to the agreed tip is fetched and checked link by link, every parent hash, ending on the quorum hash.
Transaction, receipt, ommer, and chain-specific withdrawals roots are recomputed from the block body and matched against the header. A forged body is rejected and re-fetched from another peer.
Blocks are written in strict order and the checkpoint always equals the highest committed block, so a crash or a kill never leaves holes or half-written ranges.
A database is pinned to its chain on the first run. Reusing it for a different chain is refused.
Reorgs of up to 64 blocks roll back only when a peer quorum agrees on the new canonical tip.
The verified frontier
Alongside the checkpoint, Sieve keeps a verified-frontier marker that advances atomically with the highest committed block. On startup it re-verifies that frontier against the network, which is how Sieve recovers from a reorg that happened while it was stopped.
This is also why databases created by 0.1.x are refused: they carry no frontier marker and no chain binding. Upgrading means a fresh database or sieve reset. From then on, changes to Sieve's own internal metadata schema migrate automatically. Your config-driven tables are created with CREATE TABLE IF NOT EXISTS, so adding or retyping a column on a table that already exists is still on you.
What gets stored
Unmatched log and payload data is discarded. You store the events you asked for, plus the block hashes and checkpoints Sieve needs to verify the chain and resume cleanly.