You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.
The current plan is to bisect the execution of minigeth to go from an output root to the next, spanning all L2 blocks submitted during the root submission interval (currently 1hr on testnet).
This is a lot of computation done inefficiently (MIPS emulation). Worse than this imho are the memory concerns. First, running for long makes it more likely we run out of memory, as GC is disabled (cf. #88). Next, each step in the bisection needs to create a Merkle root of the entire minigeth memory, which is very expensive.
There is an easy solution to this, which is to bisect on block hashes before bisecting the execution itself. This means the computation part is now bounded to validating a single block. This is what Arbitrum does too.
Note that doing this includes a special case: challenger and defender may agree on all blocks, but not on the output root, in which case it's necessary to show on-chain that the agreed-upon block blockhash leads to one of the claimed output roots.
The text was updated successfully, but these errors were encountered:
The current plan is to bisect the execution of minigeth to go from an output root to the next, spanning all L2 blocks submitted during the root submission interval (currently 1hr on testnet).
This is a lot of computation done inefficiently (MIPS emulation). Worse than this imho are the memory concerns. First, running for long makes it more likely we run out of memory, as GC is disabled (cf. #88). Next, each step in the bisection needs to create a Merkle root of the entire minigeth memory, which is very expensive.
There is an easy solution to this, which is to bisect on block hashes before bisecting the execution itself. This means the computation part is now bounded to validating a single block. This is what Arbitrum does too.
Note that doing this includes a special case: challenger and defender may agree on all blocks, but not on the output root, in which case it's necessary to show on-chain that the agreed-upon block blockhash leads to one of the claimed output roots.
The text was updated successfully, but these errors were encountered: