This is a short outline of features and changes needed to ship Synthetic PoRep
Intro
- Between PreCommit and ProveCommit SPs have to bring over almost 400 GB for 150 epochs.
- We want to lower down this storage requirement by 90%+ reducing it to less than 25 GB.
Relevant docs/links:
Component implementation breakdown
Actors
- Add a new type of PoRep (Synthetic one) co-existing with the current one
Proofs
- New: Synthetic Challenge generation
- Add a separate step after PC2 which generate the Synthetic Challenges Superset (245k vanilla proofs)
- Audit
- Implementation
- New: write new challenge selection method for challenges to be selected among the Synthetic Challenges Superset
- Audit
- Implementation
- C1 with the synthetic challenge needs to select challenges from the Synthetic Challenge Superset and not accessing the 11 layers buffer
- Exposed APIs via Filecoin Proofs and FFI
Lotus
- Allow SPs to select which type of PoRep proof they want to use
- Run the Synthetic Challenge Generation step if SP opts into it
- Delete ~11 layers of the SDR graph and keep the Synthetic Challenge Superset only
- Handle the transfer of synthetic challenges between sealing (i.e. challenge generation) and proof creation (ProveCommit)
Audit
- We need an internal audit/review of both theory and implementation - It can be done right after the proofs implementation
Q1/Q2 Plan | ETA | Date | Dependency | Effort | DRI | Comments/Flags | Current status |
---|---|---|---|---|---|---|---|
3-4w | February 21, 2023 | Lotus | TBD | FilCrypto/nemo | Backlog | ||
1w | TBD | FilCrypto/CNL | Backlog | ||||
1w | TBD | FilCrypto/nemo | |||||
1w | TBD | TBD | Backlog | ||||
3d | TBD | TBD | Backlog | ||||
1w | TBD | TBD | Backlog | ||||
2d | TBD | Backlog | |||||
3d | TBD | TBD | Backlog | ||||
5d (if test vectors are available) | TBD | TBD | Challenge generation changes the verification performance carachteristics | Backlog | |||
1w | TBD | TBD | We can start the audit as soon as we have the proofs updates done | Backlog | |||
1w | TBD | TBD | Backlog | ||||
2w | TBD | TBD | Backlog |