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
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
reqwestand a TLS backend into a cryptographic library, which drives the feature complexity ofmithril-stmand 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
TrustedSetupProviderand what they would need to provide insteadmithril-stmmithril-stm, and record the decision with a target location and an interface for the parameters providercircuits/trusted_setup.rs)