SnapDeals have hit a snag on Tuesday (2021-08-24) (see SnagDeals: CommD-plosion )

Today (2021-08-26) it was discovered that the snag is worst than initially considered.

SHA inclusion proofs are 75% more expensive than number quoted previously (45,331 vs 25,840 constraints per layer).

This significantly changes proving costs for "Accept SHA solutions"

We have 3.5 high level paths to proceed:

**Option 0: Existing CommD + 1-message protocol, no optimisations**

- 22 to 24 partitions 220% of PoRep proof computation (2h+ of GPU compute)
- 2.5+ hours time to first deal

### Option 1: Existing CommD + 1-message protocol** **with optimisations

- Proving cost of 11 and 12 partitions (32 and 64GB) or 110% of PoRep proof computation (40-60min GPU)
- Increased proofs implementation time (2-4 weeks) due to need of circuit optimisations
- 1h-1.5h time to first deal

### Option 2: Existing CommD + 2-message protocol with optimisations

- Proving cost of 2 partitions, 20% of PoRep proof computation (10-15min GPU)
- Increased actors and lotus complexity
- Miners required to place collateral for the first message, returned after successful second message.
- 1.5h-1.75h time to first deal due to wait for randomness (1.25h)

**Option 2.5: Do both Option 1 and 2**

- Allowing it on actors side would not be significantly more complex than Option 2
- Lotus side implementation for choosing option 1 or 2 can be done latter
- Minimal complexity increase on proofs side (option 2 is one partition of option 1)

### Option 3: Change CommD, Deals v2

- Significant complexity on deal making side and lotus, client needs to decide on whether to perform Snap or normal deal before computing CommP or PieceID
- More computationally expensive CommP computation for the client but possible to reduce the impact with hybrid trees.
- The CommD v2 question is related to PoRep v2 so we would need to assess requirements of PoRep v2 for CommD.
- More complex circuit implementation, most likely variable mtree primitive needs to be created
- Significant effort and delay
- <30min time to first deal
- Low proving cost <10min of GPU compute