Skip to content

Commit

Permalink
fix(share/pruner) enable Light node pruner service (#3455)
Browse files Browse the repository at this point in the history
Fixes 2 issues that prevented Light pruner service from launching:
- pruning flag was not parsed by Light node
- Pruner service was not provided to Light node
  • Loading branch information
walldiss authored and ramin committed Jun 6, 2024
1 parent 96bd76a commit 6c11eb9
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 23 deletions.
10 changes: 2 additions & 8 deletions cmd/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}
Expand Down
33 changes: 18 additions & 15 deletions nodebuilder/pruner/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ import (
"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"
"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 {
Expand All @@ -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 {
Expand All @@ -34,31 +33,35 @@ 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,
fxutil.ProvideAs(full.NewPruner, new(pruner.Pruner)),
)
}
return fx.Module("prune",
opts,
)
return fx.Module("prune", baseComponents)
case node.Bridge:
if cfg.EnableService {
return fx.Module("prune",
fullAndBridgeComponents,
baseComponents,
prunerService,
fxutil.ProvideAs(full.NewPruner, new(pruner.Pruner)),
fx.Provide(func(window pruner.AvailabilityWindow) []core.Option {
return []core.Option{core.WithAvailabilityWindow(window)}
}),
Expand Down

0 comments on commit 6c11eb9

Please sign in to comment.