Commit 9d5c144d authored by Adrian Sutton's avatar Adrian Sutton

op-node: Persist initial sequencer state

Log info about loaded sequencer state
parent a370ecf3
...@@ -92,6 +92,19 @@ func (s *Driver) Start() error { ...@@ -92,6 +92,19 @@ func (s *Driver) Start() error {
s.derivation.Reset() s.derivation.Reset()
log.Info("Starting driver", "sequencerEnabled", s.driverConfig.SequencerEnabled, "sequencerStopped", s.driverConfig.SequencerStopped) log.Info("Starting driver", "sequencerEnabled", s.driverConfig.SequencerEnabled, "sequencerStopped", s.driverConfig.SequencerStopped)
if s.driverConfig.SequencerEnabled {
// Notify the initial sequencer state
// This ensures persistence can write the state correctly and that the state file exists
var err error
if s.driverConfig.SequencerStopped {
err = s.sequencerNotifs.SequencerStopped()
} else {
err = s.sequencerNotifs.SequencerStarted()
}
if err != nil {
return fmt.Errorf("persist initial sequencer state: %w", err)
}
}
s.wg.Add(1) s.wg.Add(1)
go s.eventLoop() go s.eventLoop()
......
...@@ -37,7 +37,7 @@ func NewConfig(ctx *cli.Context, log log.Logger) (*node.Config, error) { ...@@ -37,7 +37,7 @@ func NewConfig(ctx *cli.Context, log log.Logger) (*node.Config, error) {
configPersistence := NewConfigPersistence(ctx) configPersistence := NewConfigPersistence(ctx)
driverConfig, err := NewDriverConfig(ctx, configPersistence) driverConfig, err := NewDriverConfig(ctx, log, configPersistence)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to load driver config: %w", err) return nil, fmt.Errorf("failed to load driver config: %w", err)
} }
...@@ -156,18 +156,25 @@ func NewConfigPersistence(ctx *cli.Context) node.ConfigPersistence { ...@@ -156,18 +156,25 @@ func NewConfigPersistence(ctx *cli.Context) node.ConfigPersistence {
return node.NewConfigPersistence(stateFile) return node.NewConfigPersistence(stateFile)
} }
func NewDriverConfig(ctx *cli.Context, config node.ConfigPersistence) (*driver.Config, error) { func NewDriverConfig(ctx *cli.Context, log log.Logger, config node.ConfigPersistence) (*driver.Config, error) {
sequencerEnabled := ctx.Bool(flags.SequencerEnabledFlag.Name)
sequencerStopped := ctx.Bool(flags.SequencerStoppedFlag.Name) sequencerStopped := ctx.Bool(flags.SequencerStoppedFlag.Name)
if state, err := config.SequencerState(); err != nil { if state, err := config.SequencerState(); err != nil {
return nil, err return nil, err
} else if state != node.StateUnset { } else if state != node.StateUnset {
sequencerStopped = state == node.StateStopped stopped := state == node.StateStopped
if stopped != sequencerStopped && sequencerEnabled {
log.Warn(fmt.Sprintf("Overriding %v with persisted state", flags.SequencerStoppedFlag.Name), "stopped", stopped)
}
sequencerStopped = stopped
} else {
log.Info("No persisted sequencer state loaded")
} }
return &driver.Config{ return &driver.Config{
VerifierConfDepth: ctx.Uint64(flags.VerifierL1Confs.Name), VerifierConfDepth: ctx.Uint64(flags.VerifierL1Confs.Name),
SequencerConfDepth: ctx.Uint64(flags.SequencerL1Confs.Name), SequencerConfDepth: ctx.Uint64(flags.SequencerL1Confs.Name),
SequencerEnabled: ctx.Bool(flags.SequencerEnabledFlag.Name), SequencerEnabled: sequencerEnabled,
SequencerStopped: sequencerStopped, SequencerStopped: sequencerStopped,
SequencerMaxSafeLag: ctx.Uint64(flags.SequencerMaxSafeLagFlag.Name), SequencerMaxSafeLag: ctx.Uint64(flags.SequencerMaxSafeLagFlag.Name),
}, nil }, nil
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment