Skip to content

vectors: add L0 conformance corpus + spec reference#275

Open
topocount wants to merge 1 commit into
mainfrom
kjs/neyn-12044-l0-conformance-vectors
Open

vectors: add L0 conformance corpus + spec reference#275
topocount wants to merge 1 commit into
mainfrom
kjs/neyn-12044-l0-conformance-vectors

Conversation

@topocount

Copy link
Copy Markdown

Adds a versioned, checked-in set of golden conformance vectors for the
message cryptographic layer (canonical data_bytes serialization, BLAKE3-160
hash, Ed25519 signature, signer), generated by the reference implementation
(farcasterxyz/snapchain) and mirrored here as the cross-client source of
truth for FIP validator-onboarding gate L0.

  • vectors/v1/: manifest.json (hex of every field + semantic input) plus
    messages/.pb (authoritative wire bytes) and messages/.pb.txt
    (reviewable wire disassembly). 10 message types.
  • vectors/README.md: corpus format + the language-agnostic verification
    algorithm (verify hash/signature against the carried data_bytes; do not
    re-encode, since protobuf serialization is not canonical across impls).
  • SPECIFICATION.md §2: a "Conformance Vectors" subsection pointing at them.

Post-state merkle roots are intentionally omitted: §4.2's trie spec is
stale relative to the reference implementation's sharded trie. Reconciling
that (and then adding state-root vectors) is tracked separately.

Adds a versioned, checked-in set of golden conformance vectors for the
message cryptographic layer (canonical data_bytes serialization, BLAKE3-160
hash, Ed25519 signature, signer), generated by the reference implementation
(farcasterxyz/snapchain) and mirrored here as the cross-client source of
truth for FIP validator-onboarding gate L0.

- vectors/v1/: manifest.json (hex of every field + semantic input) plus
  messages/<id>.pb (authoritative wire bytes) and messages/<id>.pb.txt
  (reviewable wire disassembly). 10 message types.
- vectors/README.md: corpus format + the language-agnostic verification
  algorithm (verify hash/signature against the carried data_bytes; do not
  re-encode, since protobuf serialization is not canonical across impls).
- SPECIFICATION.md §2: a "Conformance Vectors" subsection pointing at them.

Post-state merkle roots are intentionally omitted: §4.2's trie spec is
stale relative to the reference implementation's sharded trie. Reconciling
that (and then adding state-root vectors) is tracked separately.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant