diff --git a/dot/node.go b/dot/node.go index 92e0e8f19f..31f09222d8 100644 --- a/dot/node.go +++ b/dot/node.go @@ -166,7 +166,7 @@ func (*nodeBuilder) initNode(cfg *Config) error { LogLevel: cfg.Global.LogLvl, PrunerCfg: state.PrunerConfig{ Enabled: cfg.Global.Pruning, - RetainBlocks: uint32(cfg.Global.RetainBlocks), + RetainBlocks: cfg.Global.RetainBlocks, }, Telemetry: telemetryMailer, Metrics: metrics.NewIntervalConfig(cfg.Global.PublishMetrics), diff --git a/dot/services.go b/dot/services.go index bbb4999d91..fb1048b03a 100644 --- a/dot/services.go +++ b/dot/services.go @@ -66,7 +66,7 @@ func (nodeBuilder) createStateService(cfg *Config) (*state.Service, error) { LogLevel: cfg.Log.StateLvl, PrunerCfg: state.PrunerConfig{ Enabled: cfg.Global.Pruning, - RetainBlocks: uint32(cfg.Global.RetainBlocks), + RetainBlocks: cfg.Global.RetainBlocks, }, Metrics: metrics.NewIntervalConfig(cfg.Global.PublishMetrics), } diff --git a/internal/pruner/full/pruning.go b/internal/pruner/full/pruning.go index 268c5f9039..8305fa8951 100644 --- a/internal/pruner/full/pruning.go +++ b/internal/pruner/full/pruning.go @@ -50,6 +50,11 @@ func (p *Pruner) pruneAll(journalDBBatch PutDeleter) (err error) { func prune(blockNumberToPrune uint32, journalDB Getter, journalDBBatch Deleter, storageBatch Deleter) (err error) { + if blockNumberToPrune == 0 { + // There is no deletion in the first block, so nothing can be pruned. + return nil + } + blockHashes, err := loadBlockHashes(blockNumberToPrune, journalDB) if err != nil { return fmt.Errorf("loading block hashes for block number to prune: %w", err) diff --git a/internal/pruner/full/pruning_test.go b/internal/pruner/full/pruning_test.go index 28043c61c3..1ca7ad759c 100644 --- a/internal/pruner/full/pruning_test.go +++ b/internal/pruner/full/pruning_test.go @@ -250,6 +250,12 @@ func Test_prune(t *testing.T) { errWrapped error errMessage string }{ + "nothing to do for block number 0": { + blockNumberToPrune: 0, + journalDBBuilder: func(ctrl *gomock.Controller) Getter { return nil }, + journalBatchBuilder: func(_ *gomock.Controller) Deleter { return nil }, + storageBatchBuilder: func(_ *gomock.Controller) Deleter { return nil }, + }, "load block hashes error": { blockNumberToPrune: 1, journalDBBuilder: func(ctrl *gomock.Controller) Getter {