optimism icon indicating copy to clipboard operation
optimism copied to clipboard

Sanitize the op-program for non-determinsm

Open Inphi opened this issue 1 year ago • 1 comments

Related to https://github.com/orgs/ethereum-optimism/projects/76/views/1?pane=issue&itemId=70514271.

Detect uses of go keyword or goroutine usage from mutator code in the block building code path. This lets us detect non-deterministic preimage lookups early (see https://github.com/ethereum-optimism/op-geth/pull/373) where native and cannon execution reference different sets of preimages.

I'm not sure if we can sanitize for go statically, but one way to do this is to run a program via cannon while looking for runtime.newproc related calls by the Go runtime.

Inphi avatar Aug 28 '24 23:08 Inphi

Let's spike out how this would work statically. Alternatively, we can add periodic e2e tests on fuller blocks to detect non-determinism in the block building path.

Inphi avatar Oct 23 '24 15:10 Inphi