Repository navigation
fix(config): disable options rejected by bee in light and ultra-light… - #621
Open
martinconic wants to merge 7 commits into
Open
martinconic wants to merge 7 commits into
martinconic wants to merge 7 commits into
Conversation
… profiles Light and ultra-light profiles inherit storage-incentives-enable: true (and, for ultra-light, chequebook-enable: true) from their full-node base profile. Bee rejects storage incentives outside full mode and chequebook without swap, so the light nodes in the local-dns cluster never became ready and the bee Beekeeper CI job failed at cluster setup. Set the inherited options to false where the mode does not support them.
martinconic
marked this pull request as ready for review
September 3, 2026 13:01
martinconic
requested review from
acud,
akrem-chabchoub,
gacevicljubisa and
sbackend123
September 4, 2026 11:48
martinconic
changed the base branch from
refactor/node-mode-config
to
master
September 4, 2026 12:12
Run one full node in the local-dns cluster with node-mode unset so bee's legacy regime, which infers the mode from full-node, is exercised next to the explicit node-mode groups. The profile overrides the inherited node-mode with an empty value.
13 of 14 tasks
… bootnodes The ultra-light autotls profile set blockchain-rpc-endpoint to null, which inheritance treats as unset, so it inherited the parent's endpoint: on master the node ran as a light node, and with node-mode bee ignores the endpoint and warns. Set it to an empty string so it is cleared. Bootnodes inherit storage-incentives-enable: true, which has no effect on them and now makes bee warn on every start. Disable it on the bootnode profiles.
martinconic
added a commit
to ethersphere/bee
that referenced
this pull request
Oct 16, 2026
Beekeeper master configures nodes with full-node, which bee resolves through the legacy node mode. The node-mode profiles in ethersphere/beekeeper#621 merge after a bee release that knows node-mode.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Companion to ethersphere/bee#5596. Supersedes #580, whose changes this branch carries.
What changes
Profiles move from
full-nodetonode-mode. Every bee-config inconfig.yaml,local.yaml,light-node.yaml,public-testnet.yaml,staging.yamlandtestnet-bee-playground.yamlnow setsnode-mode(full,lightorultra-light) instead offull-node.Light and ultra-light profiles stop inheriting options bee rejects. With
node-modeset, bee rejects storage incentives outside full mode and a chequebook without swap. These profiles inherited both astruefrom their full-node parent:bee-local-lightbee-local-light-autotlsbee-local-ultralight-autotlslight-nodeThe ultra-light profile now really has no endpoint.
bee-local-ultralight-autotlssetblockchain-rpc-endpoint:to null, which inheritance treats as unset, so it inheritedws://geth-swap:8546frombee-local-dns: on master that node has been running as a light node. It is nowblockchain-rpc-endpoint: "", which clears the inherited value, so the node is a genuine ultra-light node and bee does not warn that the endpoint is ignored.Bootnodes disable storage incentives. The bootnode profiles (
bootnode,bootnode-local,bootnode-local-dns,bootnode-local-dns-autotls,bootnode-local-gc,geth-playground-bootnode) inheritedstorage-incentives-enable: true. Bee never runs the incentives agent on a bootnode and, withnode-modeset, warns about it on every start; the profiles now set it tofalse. Nothing changes at runtime.The
local-dnscluster also runs one node in bee's legacy regime. A newbee-legacygroup (1 node, profilebee-local-dns-legacy) overrides the inheritednode-modewith""and setsfull-node: true, so bee infers the mode the way releases beforenode-modedid. It runs next to the 3node-mode: fullnodes, so bee#5596's CI covers both regimes in one cluster.Orchestration.
orchestration.ConfiggainsNodeModeplusIsFullNode,IsLightNodeandIsUltraLightNode, which readnode-modeand fall back tofull-node(and the RPC endpoint) when it is unset or empty.FullNodeNames,LightNodeNames,ShuffledFullNodeClientsandClosestFullNodeClientuse them, andUltraLightNodeNamesis added.CI. golangci-lint bumped to v2.11.3 with the lint cache disabled.
Merge order
Bee releases up to and including v2.8.3 reject unknown config keys at startup (
CheckUnknownParams), and they have nonode-modeoption. A node from any of those releases refuses to start with a.bee.yamlrendered from these profiles. This PR should therefore merge only after bee#5596 is merged and released, since the remote profiles (staging,public-testnet,testnet-bee-playground) deploy released images.Testing
TestNodeModeHelperscovers the helpers for explicit modes and thefull-nodefallback.TestLocalDNSLegacyNodeGrouploadsconfig/local.yamland checks that thebee-legacynode rendersnode-mode: ""withfull-node: true, whilebee-local-dnskeepsnode-mode: full.node_mode="full"; thebee-local-dnsprofile resolves to full without it.config/*.yamlfiles (19 profiles) was rendered by beekeeper and resolved by bee#5596's real config pipeline: all resolve without warnings except the intended migration warning onbee-local-dns-legacy. The only profile bee rejects issepolia(full-node/node-mode: fullwithout an RPC endpoint), unchanged from master, where bee fails it at chain init; its endpoint is expected to come from outside beekeeper.go vet, thepkg/configandpkg/orchestrationtests, andmake lintpass. bee#5596's Beekeeper workflow is pinned to this branch, so its run exercises the cluster end to end.