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:
- https://github.com/filecoin-project/FIPs/discussions/603
No Buffer PoRep: Removing 10 layers storage between PreCommit and ProveCommit ยท Discussion #603 ยท filecoin-project/FIPs
@Kubuxu @lucaniz @irenegia @nicola @rosariogennaro Problem The current interactive PoRep protocol (PreCommit + ProveCommit) requires to seal and keep a buffer of 12 layers (11 SDR layers + 1 data l...
github.com
- FIP-0059 (Synthetic PoRep)
Embed GitHub
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 |