IntersectMBO / IntersectMBO/mithril

Remove `future_snark` feature

Open
#3,150 0 comments 0 reactions 0 assignees View on GitHub
cryptography :closed_lock_with_key: refactoring :hammer_and_wrench: to-groom :thinking:
Dominant language
Rust
Stars
154
Forks
51
Avg merge
1d 23h
Merged PRs (30d)
38

Description

## Why

The `future_snark` feature gates the SNARK support while it is experimental. It has a high maintenance cost: around 870 `cfg` sites, feature plumbing in ten crate manifests, a dedicated CI job and cargo profile, duplicated golden vectors, a duplicated `getrandom` dependency in the WASM client, and a series of `allow(dead_code)` directives waiting for the feature to be activated. Once the SNARK support is enabled by default, all of this can go away.

## What

Remove the `future_snark` feature and everything that exists only to support it.

## How

- [ ] Remove the feature from all the crate manifests and the workspace cargo profiles
- [ ] Remove the `cfg(feature = "future_snark")` gates in the code, the tests, the benches, and the examples
- [ ] Remove all TODOs
- [ ] Keep a single set of golden vectors and update `CODEC.md`
- [ ] Merge the dedicated CI job into the standard Rust test jobs
- [ ] "Later" steps of #3151:
- [ ] Run multiple tiers of e2e tests (depending on which files have been modified)
- [ ] Use the binaries of the last merge on main in the SNARK nightly end-to-end tests

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.