Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion op-challenger/game/fault/trace/super/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ var (
)

const (
StepsPerTimestamp = 1024
StepsPerTimestamp = 128
)

type PreimagePrestateProvider interface {
Expand Down
2 changes: 1 addition & 1 deletion op-challenger/game/fault/trace/super/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ func TestComputeStep(t *testing.T) {
} else {
require.Equal(t, prevTimestamp+1, timestamp, "Incorrect timestamp at trace index %d", traceIndex)
require.Zero(t, step, "Incorrect step at trace index %d", traceIndex)
require.Equal(t, uint64(1023), prevStep, "Should only loop back to step 0 after the consolidation step")
require.Equal(t, uint64(StepsPerTimestamp-1), prevStep, "Should only loop back to step 0 after the consolidation step")
}
prevTimestamp = timestamp
prevStep = step
Expand Down
73 changes: 39 additions & 34 deletions op-e2e/actions/interop/proofs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ import (
"github.com/stretchr/testify/require"
)

const (
stepsPerTimestamp = 128
consolidateStep = stepsPerTimestamp - 1
)

func TestInteropFaultProofs_TraceExtensionActivation(gt *testing.T) {
t := helpers.NewDefaultTesting(gt)
system := dsl.NewInteropDSL(t)
Expand All @@ -37,7 +42,7 @@ func TestInteropFaultProofs_TraceExtensionActivation(gt *testing.T) {
agreedClaim := system.Outputs.SuperRoot(endTimestamp).Marshal()
disputedClaim := system.Outputs.TransitionState(endTimestamp, 1,
system.Outputs.OptimisticBlockAtTimestamp(system.Actors.ChainA, endTimestamp+1)).Marshal()
disputedTraceIndex := int64(1024)
disputedTraceIndex := int64(stepsPerTimestamp)
tests := []*transitionTest{
{
name: "CorrectlyDidNotActivate",
Expand Down Expand Up @@ -115,16 +120,16 @@ func TestInteropFaultProofs_ConsolidateValidCrossChainMessage(gt *testing.T) {
tests := []*transitionTest{
{
name: "Consolidate-AllValid",
agreedClaim: paddingStep(1023),
agreedClaim: paddingStep(consolidateStep),
disputedClaim: end.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: true,
},
{
name: "Consolidate-AllValid-InvalidNoChange",
agreedClaim: paddingStep(1023),
disputedClaim: paddingStep(1023),
disputedTraceIndex: 1023,
agreedClaim: paddingStep(consolidateStep),
disputedClaim: paddingStep(consolidateStep),
disputedTraceIndex: consolidateStep,
expectValid: false,
},
}
Expand Down Expand Up @@ -236,9 +241,9 @@ func TestInteropFaultProofs(gt *testing.T) {
},
{
name: "LastPaddingStep",
agreedClaim: paddingStep(1022),
disputedClaim: paddingStep(1023),
disputedTraceIndex: 1022,
agreedClaim: paddingStep(consolidateStep - 1),
disputedClaim: paddingStep(consolidateStep),
disputedTraceIndex: consolidateStep - 1,
expectValid: true,
},
{
Expand All @@ -252,7 +257,7 @@ func TestInteropFaultProofs(gt *testing.T) {
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainA, endTimestamp+1),
).Marshal(),
proposalTimestamp: endTimestamp + 100,
disputedTraceIndex: 1024,
disputedTraceIndex: consolidateStep + 1,
expectValid: true,
},
{
Expand All @@ -269,23 +274,23 @@ func TestInteropFaultProofs(gt *testing.T) {
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainB, endTimestamp+1),
).Marshal(),
proposalTimestamp: endTimestamp + 100,
disputedTraceIndex: 1025,
disputedTraceIndex: consolidateStep + 2,
expectValid: true,
},
{
// The proposed block timestamp is after the unsafe head block timestamp.
// Expect to transition to invalid because the unsafe head is reached but challenger needs to handle
// not having any data at the next timestamp because the chain doesn't extend that far.
name: "DisputeTimestampAfterChainHeadConsolidate",
agreedClaim: system.Outputs.TransitionState(endTimestamp, 1023,
agreedClaim: system.Outputs.TransitionState(endTimestamp, consolidateStep,
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainA, endTimestamp+1),
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainB, endTimestamp+1),
).Marshal(),
// With 2 second block times, we haven't yet reached the next block on either chain so it's still valid
// It will have an incremented timestamp but the same chain output roots
disputedClaim: system.Outputs.SuperRoot(endTimestamp + 1).Marshal(),
proposalTimestamp: endTimestamp + 100,
disputedTraceIndex: 2047,
disputedTraceIndex: 2*stepsPerTimestamp - 1,
expectValid: true,
},
{
Expand All @@ -297,7 +302,7 @@ func TestInteropFaultProofs(gt *testing.T) {
// Timestamp has advanced enough to expect the next block now, but it doesn't exit so transition to invalid
disputedClaim: interop.InvalidTransition,
proposalTimestamp: endTimestamp + 100,
disputedTraceIndex: 2048,
disputedTraceIndex: 2 * stepsPerTimestamp,
expectValid: true,
},
{
Expand All @@ -306,7 +311,7 @@ func TestInteropFaultProofs(gt *testing.T) {
agreedClaim: interop.InvalidTransition,
disputedClaim: interop.InvalidTransition,
proposalTimestamp: endTimestamp + 100,
disputedTraceIndex: 3071,
disputedTraceIndex: 4*stepsPerTimestamp - 1,
expectValid: true,
},
{
Expand All @@ -315,7 +320,7 @@ func TestInteropFaultProofs(gt *testing.T) {
agreedClaim: interop.InvalidTransition,
disputedClaim: interop.InvalidTransition,
proposalTimestamp: endTimestamp + 100,
disputedTraceIndex: 3072,
disputedTraceIndex: 4*stepsPerTimestamp + 1,
expectValid: true,
},

Expand Down Expand Up @@ -423,16 +428,16 @@ func TestInteropFaultProofs_Cycle(gt *testing.T) {
tests := []*transitionTest{
{
name: "Consolidate-AllValid",
agreedClaim: paddingStep(1023),
agreedClaim: paddingStep(consolidateStep),
disputedClaim: end.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: true,
},
{
name: "Consolidate-AllValid-InvalidNoChange",
agreedClaim: paddingStep(1023),
disputedClaim: paddingStep(1023),
disputedTraceIndex: 1023,
agreedClaim: paddingStep(consolidateStep),
disputedClaim: paddingStep(consolidateStep),
disputedTraceIndex: consolidateStep,
expectValid: false,
},
}
Expand Down Expand Up @@ -491,7 +496,7 @@ func TestInteropFaultProofs_CascadeInvalidBlock(gt *testing.T) {
startTimestamp := endTimestamp - 1
optimisticEnd := system.Outputs.SuperRoot(endTimestamp)

preConsolidation := system.Outputs.TransitionState(startTimestamp, 1023,
preConsolidation := system.Outputs.TransitionState(startTimestamp, consolidateStep,
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainA, endTimestamp),
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainB, endTimestamp),
).Marshal()
Expand All @@ -510,7 +515,7 @@ func TestInteropFaultProofs_CascadeInvalidBlock(gt *testing.T) {
name: "Consolidate-ExpectInvalidPendingBlock",
agreedClaim: preConsolidation,
disputedClaim: optimisticEnd.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: false,
// TODO(#14306): Support cascading re-orgs in op-program
skipProgram: true,
Expand All @@ -520,7 +525,7 @@ func TestInteropFaultProofs_CascadeInvalidBlock(gt *testing.T) {
name: "Consolidate-ReplaceInvalidBlocks",
agreedClaim: preConsolidation,
disputedClaim: crossSafeEnd.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: true,
// TODO(#14306): Support cascading re-orgs in op-program
skipProgram: true,
Expand Down Expand Up @@ -572,7 +577,7 @@ func TestInteropFaultProofs_MessageExpiry(gt *testing.T) {
startTimestamp := endTimestamp - 1
optimisticEnd := system.Outputs.SuperRoot(endTimestamp)

preConsolidation := system.Outputs.TransitionState(startTimestamp, 1023,
preConsolidation := system.Outputs.TransitionState(startTimestamp, consolidateStep,
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainA, endTimestamp),
system.Outputs.OptimisticBlockAtTimestamp(actors.ChainB, endTimestamp),
).Marshal()
Expand All @@ -588,14 +593,14 @@ func TestInteropFaultProofs_MessageExpiry(gt *testing.T) {
name: "Consolidate-ExpectInvalidPendingBlock",
agreedClaim: preConsolidation,
disputedClaim: optimisticEnd.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: false,
},
{
name: "Consolidate-ReplaceInvalidBlocks",
agreedClaim: preConsolidation,
disputedClaim: crossSafeEnd.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: true,
},
}
Expand Down Expand Up @@ -705,23 +710,23 @@ func TestInteropFaultProofsInvalidBlock(gt *testing.T) {
},
{
name: "LastPaddingStep",
agreedClaim: paddingStep(1022),
disputedClaim: paddingStep(1023),
disputedTraceIndex: 1022,
agreedClaim: paddingStep(consolidateStep - 1),
disputedClaim: paddingStep(consolidateStep),
disputedTraceIndex: consolidateStep - 1,
expectValid: true,
},
{
name: "Consolidate-ExpectInvalidPendingBlock",
agreedClaim: paddingStep(1023),
agreedClaim: paddingStep(consolidateStep),
disputedClaim: end.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: false,
},
{
name: "Consolidate-ReplaceInvalidBlock",
agreedClaim: paddingStep(1023),
agreedClaim: paddingStep(consolidateStep),
disputedClaim: crossSafeSuperRootEnd.Marshal(),
disputedTraceIndex: 1023,
disputedTraceIndex: consolidateStep,
expectValid: true,
},
{
Expand Down
2 changes: 1 addition & 1 deletion op-program/client/interop/interop.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ var (
)

const (
ConsolidateStep = 1023
ConsolidateStep = 127
)

type taskExecutor interface {
Expand Down