Skip to content

M1 STF Conformance Vectors #21

Open
@davxy

Description

@davxy

IMPORTER: State-transitioning conformance tests pass and can import blocks.

  • Test Vectors: Data designed to rigorously exercise specific subsystems during the development phase.
  • Conformance Tool: A tool used to verify an implementation's capability to meet M1 requirements.

Test Vectors

Codec

STF

Super PR #28

  • Section 6 - Block Production and Chain Growth
  • Section 7 - Recent History
  • Section 8 - Authorization
  • Section 10 - Disputes, Verdicts and Judgements
  • Section 11 - Reporting and Assurance
  • Section 12
    • Accumulation
    • Preimages
  • Section 13 - Activity Statistics

Other

Conformance Tool

Upon completion of the M1 Test Vectors, the plan is to provide a procedural conformance testing tool.

This tool is intended to determine whether an implementation adheres to the specified expectations concerning M1.

It will engage with a JAM process, which embodies a JAM implementation capable of fulfilling M1 requirements. This interaction will occur through a minimal protocol, utilizing simple I/O mechanisms, such as pipes or networking.

Starting from a well-defined genesis state, the tool will deliver a procedurally generated stream of blocks to the implementation and then read back the expected state root hash.

The test will be reproducible using a seed provided to the conformance testing tool at startup.

In the event of a failure, the tool will output:

  • The prior state (i.e., the most recent state read from the implementation under test)
  • The input block that caused the issue

When relevant, the vector responsible for triggering the failure will be added to the STF vector set to target the specific subsystem associated with the fault.

See also: #7


🎁 While the vector PRs are under review, you may use the following repository for a single branch containing all the provided test vectors: https://github.com/davxy/jam-test-vectors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions