From fbed86935a32ad21c3c830dfb1b3922dcb31076e Mon Sep 17 00:00:00 2001 From: Vlad <13818348+walldiss@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:39:19 +0500 Subject: [PATCH 1/4] enable Light node pruner service --- cmd/util.go | 10 ++-------- nodebuilder/pruner/module.go | 32 +++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/cmd/util.go b/cmd/util.go index cf48b00e78..805f67b7eb 100644 --- a/cmd/util.go +++ b/cmd/util.go @@ -119,20 +119,14 @@ func PersistentPreRunEnv(cmd *cobra.Command, nodeType node.Type, _ []string) err rpc_cfg.ParseFlags(cmd, &cfg.RPC) gateway.ParseFlags(cmd, &cfg.Gateway) + pruner.ParseFlags(cmd, &cfg.Pruner) switch nodeType { - case node.Light: + case node.Light, node.Full: err = header.ParseFlags(cmd, &cfg.Header) if err != nil { return err } - case node.Full: - err = header.ParseFlags(cmd, &cfg.Header) - if err != nil { - return err - } - pruner.ParseFlags(cmd, &cfg.Pruner) case node.Bridge: - pruner.ParseFlags(cmd, &cfg.Pruner) default: panic(fmt.Sprintf("invalid node type: %v", nodeType)) } diff --git a/nodebuilder/pruner/module.go b/nodebuilder/pruner/module.go index d6234e258b..2ffc25e012 100644 --- a/nodebuilder/pruner/module.go +++ b/nodebuilder/pruner/module.go @@ -20,8 +20,7 @@ func ConstructModule(tp node.Type, cfg *Config) fx.Option { availWindow(tp, cfg.EnableService), ) - fullAndBridgeComponents := fx.Options( - baseComponents, + prunerService := fx.Options( fx.Provide(fx.Annotate( newPrunerService, fx.OnStart(func(ctx context.Context, p *pruner.Service) error { @@ -34,31 +33,42 @@ func ConstructModule(tp node.Type, cfg *Config) fx.Option { // This is necessary to invoke the pruner service as independent thanks to a // quirk in FX. fx.Invoke(func(_ *pruner.Service) {}), - fx.Provide(func(store *eds.Store) pruner.Pruner { - return full.NewPruner(store) - }), ) switch tp { // TODO: Eventually, light nodes will be capable of pruning samples // in which case, this can be enabled. case node.Light: + if cfg.EnableService { + return fx.Module("prune", + baseComponents, + prunerService, + fx.Provide(light.NewPruner), + ) + } return fx.Module("prune", baseComponents, fx.Provide(light.NewPruner), ) case node.Full: - opts := baseComponents if cfg.EnableService { - opts = fullAndBridgeComponents + return fx.Module("prune", + baseComponents, + prunerService, + fx.Provide(func(store *eds.Store) pruner.Pruner { + return full.NewPruner(store) + }), + ) } - return fx.Module("prune", - opts, - ) + return fx.Module("prune", baseComponents) case node.Bridge: if cfg.EnableService { return fx.Module("prune", - fullAndBridgeComponents, + baseComponents, + prunerService, + fx.Provide(func(store *eds.Store) pruner.Pruner { + return full.NewPruner(store) + }), fx.Provide(func(window pruner.AvailabilityWindow) []core.Option { return []core.Option{core.WithAvailabilityWindow(window)} }), From 2ecb6797adc687ba0291027f474b1b781a1b866f Mon Sep 17 00:00:00 2001 From: Vlad <13818348+walldiss@users.noreply.github.com> Date: Mon, 3 Jun 2024 18:27:09 +0500 Subject: [PATCH 2/4] enable Light node pruner service --- nodebuilder/pruner/module.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/nodebuilder/pruner/module.go b/nodebuilder/pruner/module.go index 2ffc25e012..48b5363f88 100644 --- a/nodebuilder/pruner/module.go +++ b/nodebuilder/pruner/module.go @@ -2,6 +2,7 @@ package pruner import ( "context" + "github.com/celestiaorg/celestia-node/libs/fxutil" "go.uber.org/fx" @@ -11,7 +12,6 @@ import ( "github.com/celestiaorg/celestia-node/pruner/archival" "github.com/celestiaorg/celestia-node/pruner/full" "github.com/celestiaorg/celestia-node/pruner/light" - "github.com/celestiaorg/celestia-node/share/eds" ) func ConstructModule(tp node.Type, cfg *Config) fx.Option { @@ -48,16 +48,13 @@ func ConstructModule(tp node.Type, cfg *Config) fx.Option { } return fx.Module("prune", baseComponents, - fx.Provide(light.NewPruner), ) case node.Full: if cfg.EnableService { return fx.Module("prune", baseComponents, prunerService, - fx.Provide(func(store *eds.Store) pruner.Pruner { - return full.NewPruner(store) - }), + fxutil.ProvideAs(full.NewPruner, new(pruner.Pruner)), ) } return fx.Module("prune", baseComponents) @@ -66,9 +63,7 @@ func ConstructModule(tp node.Type, cfg *Config) fx.Option { return fx.Module("prune", baseComponents, prunerService, - fx.Provide(func(store *eds.Store) pruner.Pruner { - return full.NewPruner(store) - }), + fxutil.ProvideAs(full.NewPruner, new(pruner.Pruner)), fx.Provide(func(window pruner.AvailabilityWindow) []core.Option { return []core.Option{core.WithAvailabilityWindow(window)} }), From f6f4dd0795f38163b508801134558e2ea65abdaa Mon Sep 17 00:00:00 2001 From: Vlad <13818348+walldiss@users.noreply.github.com> Date: Mon, 3 Jun 2024 21:48:31 +0500 Subject: [PATCH 3/4] fix lint --- nodebuilder/pruner/module.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodebuilder/pruner/module.go b/nodebuilder/pruner/module.go index 48b5363f88..3bb2c2b33c 100644 --- a/nodebuilder/pruner/module.go +++ b/nodebuilder/pruner/module.go @@ -2,11 +2,11 @@ package pruner import ( "context" - "github.com/celestiaorg/celestia-node/libs/fxutil" "go.uber.org/fx" "github.com/celestiaorg/celestia-node/core" + "github.com/celestiaorg/celestia-node/libs/fxutil" "github.com/celestiaorg/celestia-node/nodebuilder/node" "github.com/celestiaorg/celestia-node/pruner" "github.com/celestiaorg/celestia-node/pruner/archival" From 750e1c12531433dd058d70637cf1f950546b5416 Mon Sep 17 00:00:00 2001 From: Vlad <13818348+walldiss@users.noreply.github.com> Date: Tue, 4 Jun 2024 13:11:37 +0500 Subject: [PATCH 4/4] remove comment --- nodebuilder/pruner/module.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/nodebuilder/pruner/module.go b/nodebuilder/pruner/module.go index 3bb2c2b33c..aeae1cfca3 100644 --- a/nodebuilder/pruner/module.go +++ b/nodebuilder/pruner/module.go @@ -36,8 +36,6 @@ func ConstructModule(tp node.Type, cfg *Config) fx.Option { ) switch tp { - // TODO: Eventually, light nodes will be capable of pruning samples - // in which case, this can be enabled. case node.Light: if cfg.EnableService { return fx.Module("prune",