Why these changes hang together:
- Rename `waku/node/kernel_api/` to `waku/node/waku_node/`: the folder
holds the node's protocol APIs, so it should carry the node's name
rather than the legacy "kernel_api" label.
- Collapse the old `kernel_api.nim` aggregator into the top-level
`waku/waku_node.nim` barrel, and drop `net_config`/`health_monitor`
from it. Those aren't the node's concern; consumers that used them
now import them directly (clearer, explicit deps).
- Move the `WakuNode` type from `node_types.nim` into `waku_node.nim`.
`node_types.nim` only existed to dodge a `WakuNode`/`SubscriptionManager`
import cycle that Nim actually handles fine, so the type now lives in
one obvious home and the indirection module is deleted.
- Extract `ShardSubscription` and `EdgeFilterSubState` into their own
small modules: they are standalone value types with no back-reference
to the node. `SubscriptionManager` stays with `WakuNode` on purpose
(it is the node's subscription subsystem; the relationship is real).
Verified: `wakunode2` and `libwaku` build; representative node tests pass.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* any port set to 0 on conf results in a random port bound
* Debug API MyBoundPorts reports actually bound ports for all services, reports 0 if disabled
* write back bound values to both WakuConf and WakuNode.ports
* setupDiscoveryV5 returns Result and errors out on port 0
* rename setupAndStartDiscv5WithAutoPort to setupAndStartDiscv5
* updateWaku ENR rebuild now runs after discv5 startup
* Add DefaultP2pTcpPort, DefaultDiscv5UdpPort, DefaultWebSocketPort, DefaultRestPort, DefaultMetricsHttpPort
* add tests
* introduce createNode
# Conflicts:
# apps/wakunode2/cli_args.nim
* remove confutils dependency on the library
* test: remove websocket in default test config
* update to latest specs
* test: cli_args
* align to spec changes (sovereign, message conf, entrypoints
* accept enr, entree and multiaddr as entry points
* post rebase
* format
* change from "sovereign" to "core"
* add example
* get example to continue running
* nitpicks
* idiomatic constructors
* fix enum naming
* replace procs with consts
* remove messageConfirmation
* use pure enum
* rename example file
Split `WakuNodeConfig` object for better separation of concerns and to introduce a tree-like structure to configuration.
* fix: ensure twn cluster conf is still applied when clusterId=1
* test: remove usage of `WakuNodeConf`
* Remove macro, split builder files, remove wakunodeconf from tests
* rm network_conf_builder module as it is not used
---------
Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com>
Co-authored-by: Ivan Folgueira Bande <ivansete@status.im>
* undo apt install libpcre (not circuit-relay related.)
* nat.nim: protect against possible exceptions when calling getExternalIP
* new external CLI argument, isRelayClient
* waku factory change to mount circuit hop proto by default
* waku_node: move autonat_service to a separate module