-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
questionFurther information is requestedFurther information is requested
Description
It seems that Plasma Cash is going to be a foundation for our implementation of other Plasma flavors. Our decision on how it is going to be implemented in our projects is really important. We currently have 2 choices, to go with the Loom's approach, or Lucidity's approach.
Loom
Pros:
- Seems more standard
- Only stores one exit per coin
Cons:
- Has 3 different challenge functions
challengeInvalidHistoryneeds a response from the operator which also brings more contract functions and makes the code more complicated.- Just figured out that in Loom's implementation, instead of storing all exits, we are storing all challenges done on an exit (Challenge matrix 😃 ). That means we should have a separate struct for challenges. Again, more complexity.
Considerations:
- Current Loom's implementation seems to have a bug, where you could reset the maturity time of a block by overwriting on an existing Exit record. @nginnever 's proposal on adding
if(exitSlots[slot] != empty) throwseems to work.
Lucidity
Pros:
- Somehow seems simpler than Loom's approach as it has only a single exit & challenge function
Cons:
- Has smaller community than Loom
- Stores all Exits which seems redundant (Actually in both cases all exits are actually stored on the blockchain, it just makes the contract look messy)
Tradeoff
The question is if we want have less contract functions but store all exits or we want to have more contract functions but store only the latest exit.
Metadata
Metadata
Labels
questionFurther information is requestedFurther information is requested