Harden the SRS download of `TrustedSetupProvider`
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- rust, wasm
- Domain
- cryptography
Research direction
Start with circuits/trusted_setup.rs, then inventory every TrustedSetupProvider caller and the parameters each would need to provide. Assess the wasm target and mithril-stm feature flags before choosing whether SRS acquisition moves out. Done means the target location and parameters-provider interface are recorded, streaming and retry behavior are defined, cached data is re-verified, and network and hash errors are distinct.
Written by the indexing model from the issue text.
Description
Why
The SRS is downloaded in a single blocking request, fully buffered in memory before being hashed, with no retry. A transient network error fails the whole startup, and the memory peak is proportional to the SRS size.
The same code pulls reqwest and a TLS backend into a cryptographic library, which drives the feature complexity of mithril-stm and its wasm story. Deciding where the SRS acquisition belongs shapes how the hardening is done, so both are handled together.
What
Make the download resilient and bounded in memory, re-verify what is served from the cache, and settle whether the SRS acquisition stays in mithril-stm.
How
- Inventory the callers of
TrustedSetupProviderand what they would need to provide instead - Assess the impact on the wasm target and on the feature flags of
mithril-stm - Decide whether the SRS acquisition moves out of
mithril-stm, and record the decision with a target location and an interface for the parameters provider - Stream the download and compute the SHA-256 hash incrementally (
circuits/trusted_setup.rs) - Add bounded retries with backoff on a transient download error
- Re-verify the hash of a cached SRS file, if the cost is acceptable, and decide whether it is done on every load or on a schedule
- Report a clear error distinguishing a network failure from a hash mismatch
- Dominant language
- Rust
- Stars
- 155
- Forks
- 52
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 37
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from IntersectMBO/mithril
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
IntersectMBO/mithril#1605 · 2 comments ·
Maintainers usually reply within 2 days
-
spike :satellite:
Difficulty 5/5 Over a week Newbie friendliness 10/100
IntersectMBO/mithril#3701 ·
Maintainers usually reply within 2 days
-
Publish a DNSLink record of the immutable archives IPNS name in the Mithril networks DNS zonesPossibly taken @jpraynaud claimed this 2 days ago. Openfeature :rocket:
IntersectMBO/mithril#3700 · 1 assignee ·
Maintainers usually reply within 2 days
-
feature :rocket:
Difficulty 4/5 3-5 days Newbie friendliness 25/100
IntersectMBO/mithril#3699 ·
Maintainers usually reply within 2 days
-
feature :rocket:
Difficulty 4/5 3-5 days Newbie friendliness 35/100
IntersectMBO/mithril#3698 ·
Maintainers usually reply within 2 days
All issues in IntersectMBO/mithril
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
storytold/photocraft#14822 ·
Maintainers usually reply within 1 day
-
bug css
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
dginev/latexml-oxide#853 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 2 days
-
[Bug] export_build_environment admits its output directory only after the export ran in the build computerPossibly taken @viniciusdsandrade claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day