From 8074a9d418e6641ca9616e9a32d914d698edd19c Mon Sep 17 00:00:00 2001 From: clabby Date: Mon, 15 Jan 2024 16:09:27 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/fault/README.md | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/crates/fault/README.md b/crates/fault/README.md index b0af44d..019afa1 100644 --- a/crates/fault/README.md +++ b/crates/fault/README.md @@ -5,11 +5,12 @@ This crate contains an implementation of a solver for the [OP Stack][op-stack]'s `FaultDisputeGame`. This implementation is currently generic over the `TraceProvider`, `ClaimSolver`, and local resolution algorithm. This allows for expanding the solver to support multiple -backends, such as [Asterisc][asterisc] or [Cannon][cannon], as well as multiple local resolution algorithms, such as @inphi's -new sub-game resolution mechanism. +backends, such as [Asterisc][asterisc] or [Cannon][cannon], as well as multiple local resolution algorithms. ## Solvers -* [`AlphaClaimSolver`](./src/solvers/alpha.rs) - The first iteration of the Fault dispute game solver used in the alpha release of the Fault proof system on Optimism. + +- [`AlphaClaimSolver`](./src/solvers/alpha.rs) - [DEPRECATED] The first iteration of the Fault dispute game solver used in the alpha release of the Fault proof system on Optimism. +- [`ChadClaimSolver`](./src/solvers/alpha_chad.rs) - The second iteration of the Fault dispute game solver used in the alpha chad release of the Fault proof system on Optimism. ### Rules @@ -17,18 +18,27 @@ new sub-game resolution mechanism. expected behavior of all possible state transitions that the solver can suggest to the game's state. ## Trace Providers -* [`AlphabetTraceProvider`](./src/providers/alphabet.rs) - A mock trace provider for the `AlphabetVM` used for testing. + +- [`CannonTraceProvider`] - A trace provider that can issue state witnesses and memory access proofs for instructions within a `cannon` trace. +- [`OutputTraceProvider`] - A trace provider that can issue output roots for L2 block numbers. + +### Mock Trace Providers + +- [`AlphabetTraceProvider`](./src/providers/mocks/alphabet.rs) - A mock trace provider for the `AlphabetVM` used for testing. +- [`MockOutputTraceProvider`](./src/providers/mocks/mock_output.rs) - A mock trace provider for output roots used for testing. ## Resolution Functions -* *todo* -* [`(Planned) Sweep`] - "Sweep" resolution is the first implementation of a global resolution algorithm for the fault dispute game. In reverse - chronological order, the algorithm looks for the left-most uncountered instruction in the game DAG and compares its - agreement with the root claim to determine the outcome of the game. -* [`(Planned) @inphi's Sub-Game Resolution`] - @inphi's sub-game resolution algorithm is a new resolution algorithm that allows for - the resolution of a game to be split into multiple sub-games. This allows for the solver to reduce the amount of - moves necessary to resolve a game as well as enforce incentive compatibility in bond payouts. + +- _todo_ +- [`(Planned) Sweep`] - "Sweep" resolution is the first implementation of a global resolution algorithm for the fault dispute game. In reverse + chronological order, the algorithm looks for the left-most uncountered instruction in the game DAG and compares its + agreement with the root claim to determine the outcome of the game. +- [`(Planned) @inphi's Sub-Game Resolution`] - @inphi's sub-game resolution algorithm is a new resolution algorithm that allows for + the resolution of a game to be split into multiple sub-games. This allows for the solver to reduce the amount of + moves necessary to resolve a game as well as enforce incentive compatibility in bond payouts. + [op-stack]: https://github.com/ethereum-optimism/optimism [cannon]: https://github.com/ethereum-optimism/optimism/tree/develop/cannon [asterisc]: https://github.com/protolambda/asterisc