From afcad258bb7a6f467c483fa50992ac9bce65abf5 Mon Sep 17 00:00:00 2001 From: Calin Martinconi Date: Tue, 11 Aug 2026 13:17:37 +0300 Subject: [PATCH] feat(cmd): add --light-node-limit CLI and config option --- cmd/bee/cmd/cmd.go | 2 ++ cmd/bee/cmd/start.go | 1 + packaging/bee.yaml | 2 ++ packaging/homebrew-amd64/bee.yaml | 2 ++ packaging/homebrew-arm64/bee.yaml | 2 ++ packaging/scoop/bee.yaml | 2 ++ pkg/node/node.go | 2 ++ 7 files changed, 13 insertions(+) diff --git a/cmd/bee/cmd/cmd.go b/cmd/bee/cmd/cmd.go index b9aab6f75b2..658012fabce 100644 --- a/cmd/bee/cmd/cmd.go +++ b/cmd/bee/cmd/cmd.go @@ -60,6 +60,7 @@ const ( optionNameChequebookVerification = "chequebook-verification" optionNameChequebookMinBalance = "chequebook-min-balance" optionNameFullNode = "full-node" + optionNameLightNodeLimit = "light-node-limit" optionNamePostageContractAddress = "postage-stamp-address" optionNamePostageContractStartBlock = "postage-stamp-start-block" optionNamePriceOracleAddress = "price-oracle-address" @@ -361,6 +362,7 @@ func (c *command) setAllFlags(cmd *cobra.Command) { cmd.Flags().Bool(optionNameChequebookVerification, false, "reject full-node hive/handshake records that carry no chequebook address") cmd.Flags().String(optionNameChequebookMinBalance, "110000000000000000", "minimum chequebook token balance required for verification, in token small units (default 11 BZZ)") cmd.Flags().Bool(optionNameFullNode, false, "cause the node to start in full mode") + cmd.Flags().Int(optionNameLightNodeLimit, 100, "light node limit") cmd.Flags().String(optionNamePostageContractAddress, "", "postage stamp contract address") cmd.Flags().Uint64(optionNamePostageContractStartBlock, 0, "postage stamp contract start block number") cmd.Flags().String(optionNamePriceOracleAddress, "", "price oracle contract address") diff --git a/cmd/bee/cmd/start.go b/cmd/bee/cmd/start.go index 8e7b9e0356c..7e7ab4a27cd 100644 --- a/cmd/bee/cmd/start.go +++ b/cmd/bee/cmd/start.go @@ -325,6 +325,7 @@ func buildBeeNode(ctx context.Context, c *command, cmd *cobra.Command, logger lo AutoTLSDomain: c.config.GetString(optionAutoTLSDomain), AutoTLSRegistrationEndpoint: c.config.GetString(optionAutoTLSRegistrationEndpoint), FullNodeMode: fullNode, + LightNodeLimit: c.config.GetInt(optionNameLightNodeLimit), Logger: logger, MinimumGasTipCap: c.config.GetUint64(optionNameMinimumGasTipCap), GasLimitFallback: c.config.GetUint64(optionNameGasLimitFallback), diff --git a/packaging/bee.yaml b/packaging/bee.yaml index 228d8402178..b52934faefb 100644 --- a/packaging/bee.yaml +++ b/packaging/bee.yaml @@ -151,3 +151,5 @@ password-file: "/var/lib/bee/password" # autotls-ca-endpoint: "" ## SIMD BMT hashing opt-in flag (only available on linux amd64) # use-simd-hashing: false +## limit of possible connected light nodes (default: 100) +# light-node-limit: 100 diff --git a/packaging/homebrew-amd64/bee.yaml b/packaging/homebrew-amd64/bee.yaml index b315896d50a..095e53a6047 100644 --- a/packaging/homebrew-amd64/bee.yaml +++ b/packaging/homebrew-amd64/bee.yaml @@ -151,3 +151,5 @@ password-file: "/usr/local/var/lib/swarm-bee/password" # autotls-ca-endpoint: "" ## SIMD BMT hashing opt-in flag (only available on linux amd64) # use-simd-hashing: false +## limit of possible connected light nodes (default: 100) +# light-node-limit: 100 diff --git a/packaging/homebrew-arm64/bee.yaml b/packaging/homebrew-arm64/bee.yaml index 4c5d92353ed..25e5594caec 100644 --- a/packaging/homebrew-arm64/bee.yaml +++ b/packaging/homebrew-arm64/bee.yaml @@ -151,3 +151,5 @@ password-file: "/opt/homebrew/var/lib/swarm-bee/password" # autotls-ca-endpoint: "" ## SIMD BMT hashing opt-in flag (only available on linux amd64) # use-simd-hashing: false +## limit of possible connected light nodes (default: 100) +# light-node-limit: 100 diff --git a/packaging/scoop/bee.yaml b/packaging/scoop/bee.yaml index 06344080b39..a9596776257 100644 --- a/packaging/scoop/bee.yaml +++ b/packaging/scoop/bee.yaml @@ -151,3 +151,5 @@ password-file: "./password" # autotls-ca-endpoint: "" ## SIMD BMT hashing opt-in flag (only available on linux amd64) # use-simd-hashing: false +## limit of possible connected light nodes (default: 100) +# light-node-limit: 100 diff --git a/pkg/node/node.go b/pkg/node/node.go index 05977d35bf9..b04a05a5a30 100644 --- a/pkg/node/node.go +++ b/pkg/node/node.go @@ -165,6 +165,7 @@ type Options struct { AutoTLSDomain string AutoTLSRegistrationEndpoint string FullNodeMode bool + LightNodeLimit int GasLimitFallback uint64 Logger log.Logger MinimumGasTipCap uint64 @@ -733,6 +734,7 @@ func NewBee( AutoTLSCAEndpoint: o.AutoTLSCAEndpoint, WelcomeMessage: o.WelcomeMessage, FullNode: o.FullNodeMode, + LightNodeLimit: o.LightNodeLimit, Nonce: nonce, AllowPrivateCIDRs: o.AllowPrivateCIDRs, Registry: registry,