# Diagnostic topic: Conformance: verifier vectors

The ledger's verification rules are published as conformance vectors: a small reference chain that is built and signed correctly, published with its key set and the exact outcomes a correct verifier must reproduce — head height and hash, entry and Merkle hashes — plus copies with one thing altered: an entry changed after sealing, a Merkle root its entries do not produce, a corrupted block signature, a chain with its head missing, a manifest whose body hash disagrees with its signed statement. Each altered copy is labeled with the checks that must fail, so a verifier that passes the good chain and misses an altered one has located its own defect. The vectors are static, signed content, served byte for byte as published, and the standalone Python verifier runs them with its --conformance mode.

Kind: conformance support · Reference chain plus altered copies labeled with the checks that must fail · served byte for byte

## Entry points

- vectors: https://www.rightshold.com/v1/conformance/vectors
- verifier: https://www.rightshold.com/cli/verify-ledger.py
- page: https://www.rightshold.com/conformance

## Checks to run

- GET /v1/conformance/vectors — the reference chain, its key set, the expected outcomes, and the altered copies with the checks that must fail for each.
- python3 verify-ledger.py --conformance — the independent verifier run against the vectors (the verifier is served at /cli/verify-ledger.py).

## Outcomes

- the good chain does not verify: A correct verifier reproduces the published outcomes for the reference chain — head height and hash, entry and Merkle hashes — from the published key set alone. Next step: Compare the verifier's computed head, entry and Merkle hashes against the expected outcomes in the vectors, in that order; the first mismatch locates where the verifier's reading of the rules diverges.
- an altered copy passes: Each altered copy is labeled with the checks that must fail for it; a verifier that passes one is missing the check its label names. Next step: Read the altered copy's label, implement or repair the named check in the verifier, and re-run the vectors until the good chain passes and every altered copy fails on its labeled checks.

Machine form: https://www.rightshold.com/v1/diagnostics/conformance-vectors · All diagnostics: https://www.rightshold.com/diagnostics
