Skip to content

test(protocol): publish a black-box conformance suite for independent implementations #133

Description

@enliven17

Summary

Publish implementation-neutral fixtures and a runner that verifies complete Harpocrates protocol behavior at public boundaries.

Motivation

Harpocrates needs this capability to become a production-grade, interoperable evidence protocol while preserving privacy, deterministic verification, and safe failure behavior. The implementation must reuse existing metadata, manifest, ZK, backend, frontend, and Soroban boundaries instead of creating parallel truth sources.

Scope

  • Cover metadata envelopes, proof manifests, public inputs, receipts, Stellar encodings, events, status semantics, revocation/expiry, lineage-ready extension handling, and network guards.
  • Provide positive, negative, boundary, malformed, and unsupported-version vectors.
  • Define machine-readable expected outcomes and stable reason/error codes.
  • Run the suite against frontend libraries, backend, CLI/SDK, and deployed test harnesses where applicable.
  • Version fixtures and prevent silent regeneration.

Acceptance criteria

  • A third-party implementation can run the suite without repository-internal imports.
  • Cross-language encoding differences and canonicalization bugs are detected.
  • Fixtures contain only synthetic non-sensitive evidence.
  • CI publishes a conformance report and compatibility matrix.
  • Existing lint, type checks, tests, builds, contract checks, and privacy guarantees remain green.

Engineering expectations

Use versioned canonical encodings, explicit error/status types, bounded resource consumption, idempotent operations, and privacy-safe observability. Schema, contract, circuit, or artifact changes require migration and compatibility analysis. Cryptographic changes require stable vectors and a written threat model.

Out of scope

Live production deployment, real credentials or sensitive media, unrelated visual redesigns, and broad dependency upgrades not required by this objective.

Definition of done

A maintainer can reproduce success and adversarial failure paths locally, understand the trust and privacy boundaries, operate the feature safely, and roll it back without undocumented state repair.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar Wave programarea/backendFlask backend under backend/complexity/trivial100 points - small, bounded changehelp wantedExtra attention is neededtype/testTests and coverage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions