diff --git a/arbnode/node.go b/arbnode/node.go index d7b1d83ba3..e52a698e4e 100644 --- a/arbnode/node.go +++ b/arbnode/node.go @@ -786,8 +786,23 @@ func (n *Node) Start(ctx context.Context) error { return fmt.Errorf("error starting inbox reader: %w", err) } } + // must init broadcast server before trying to sequence anything + if n.BroadcastServer != nil { + err = n.BroadcastServer.Start(ctx) + if err != nil { + return fmt.Errorf("error starting feed broadcast server: %w", err) + } + } if n.SeqCoordinator != nil { n.SeqCoordinator.Start(ctx) + } else { + if n.DelayedSequencer != nil { + err := n.DelayedSequencer.ForceSequenceDelayed(ctx) + if err != nil { + return fmt.Errorf("error initially sequencing delayed instructions: %w", err) + } + } + n.Execution.Activate() } if n.MaintenanceRunner != nil { n.MaintenanceRunner.Start(ctx) @@ -834,12 +849,6 @@ func (n *Node) Start(ctx context.Context) error { if n.L1Reader != nil { n.L1Reader.Start(ctx) } - if n.BroadcastServer != nil { - err = n.BroadcastServer.Start(ctx) - if err != nil { - return fmt.Errorf("error starting feed broadcast server: %w", err) - } - } if n.BroadcastClients != nil { go func() { if n.InboxReader != nil { diff --git a/arbnode/seq_coordinator.go b/arbnode/seq_coordinator.go index 1e8405e01a..cb6f4fe502 100644 --- a/arbnode/seq_coordinator.go +++ b/arbnode/seq_coordinator.go @@ -156,9 +156,6 @@ func NewSeqCoordinator( config: config, signer: signer, } - if sequencer != nil { - sequencer.Pause() - } streamer.SetSeqCoordinator(coordinator) return coordinator, nil } diff --git a/execution/gethexec/sequencer.go b/execution/gethexec/sequencer.go index e1b55b6ce2..51e946eedf 100644 --- a/execution/gethexec/sequencer.go +++ b/execution/gethexec/sequencer.go @@ -322,6 +322,7 @@ func NewSequencer(execEngine *ExecutionEngine, l1Reader *headerreader.HeaderRead containers.NewLruCacheWithOnEvict(config.NonceCacheSize, s.onNonceFailureEvict), func() time.Duration { return configFetcher().NonceFailureCacheExpiry }, } + s.Pause() execEngine.EnableReorgSequencing() return s, nil }