CommsFeature
The comms of a composable node as a feature (work-placement §WPK-3, §WPK-4 item 1, §WPI-11).
| Inherits | nodekit::NodeFeature |
In the namespace nodekit. Declared in src/libs/libopalnet/opalnet/features/CommsFeature.hpp.
Detailed description
Holds the local address list, the address book, `Comms` and the three services that wrap them, the courier registry, the honeymoon manager, the reachable state, and the node's one OPAL transport over its blob couriers. Needs `identity`: comms signs with the identity's key store.
- **Access**: the facilities `comms`, `addressBook`, `courierRegistry`, `reachableState`, `honeymoonManager` and `opalTransport`. - **Lifecycle**: the three services are on the level `NodeActive`, so comms runs when the node has an identity. - **Proof**: testNodeKit.
This is the comms bring-up block that `Node::appConfigure` held until §WPI-11, in the same order. The port that the carrier binds is kept in the app's settings (`lastLocalPortKey`), so the next start prefers it: two nodes of one type on one machine otherwise swap ports at a restart, and every stored peer address goes stale.
The objects exist from construction, so `Node` gives them to what it builds in its constructor. Install configures them.