Skip to content

[Stacks 2.1] Fuzz targets for 2.05 and 2.1 Clarity 1 VM #3428

Open
@jcnelson

Description

@jcnelson

To build confidence in our assessment that the Clarity 1 VM in Stacks 2.1 is truly compatible with the one in Stacks 2.05, we should set up and run fuzzing to check that the typechecked ASTs produced by both VM implementations are identical.

Unfortunately, this appears to be outside the scope of cargo-fuzz because it involves comparing the behaviors of two different git branches. But, we could still create a fuzzer that synthesizes random well-formed Clarity 1 contracts, feeds them into both the 2.05 and 2.1 VM implementations, and checks the resulting ASTs. A suggested implementation tactic would be to set up pipe servers for both 2.05 and 2.1 VMs (e.g. within clarity-cli), and have the fuzzer feed them the same random contract and check the resulting (serialized) annotated ASTs for compatibility.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Status: 🆕 New

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions