Discovery¶
Discovery is a core mechanism in DaaS-IoT that enables autonomous network formation, dynamic node awareness, and secure integration of heterogeneous devices into a shared logical system.
Through discovery, nodes identify each other, negotiate their participation in an overlay network, and establish the foundations required for routing, synchronization, and data exchange.
Purpose¶
The discovery mechanism is responsible for:
- Detecting reachable nodes in the surrounding environment
- Enabling mutual awareness between nodes identified by a Dynamic Identifier (DIN)
- Bootstrapping the logical overlay network defined by a System Identifier (SID)
- Triggering the initialization of time synchronization mechanisms
- Enforcing trust boundaries and admission policies
Discovery is transport-independent and operates uniformly across all supported communication drivers.
How Discovery Works¶
At a high level, discovery is based on the exchange of lightweight control messages between nodes.
The process typically includes:
- Emission or reception of discovery messages
- Exchange of minimal identity and capability information
- Validation against local admission and security policies
- Optional assignment or negotiation of identifiers
- Integration of the node into the overlay network
- Triggering of synchronization procedures
Discovery does not rely on any centralized registry or external coordination service.
Discovery Activation Modes¶
Starting from version 0.21.03, discovery behavior is explicitly configurable through four activation modes:
-
discovery_off
Discovery is completely disabled. The node will neither emit nor accept discovery messages. -
discovery_sender_only
The node emits discovery messages but ignores incoming discovery requests. -
discovery_receiver_only
The node accepts incoming discovery requests but does not actively emit discovery messages. -
discovery_full
The node both emits and accepts discovery messages, fully participating in network formation.
These modes allow fine-grained control over network visibility, security posture, and deployment topology.
Dynamic Identifier Assignment¶
Discovery is tightly coupled with the dynamic assignment and resolution of identifiers.
DIN Assignment¶
If a node is initialized without a predefined Dynamic Identifier (DIN):
- A DIN is automatically generated using a time-based algorithm
- The generated DIN is guaranteed to be unique within the active overlay
- The DIN becomes the routing and addressing reference for the node
This behavior is analogous to DHCP-like resolution in traditional networks.
SID Assignment and Inheritance¶
When discovery is enabled:
- A node may join the network without a predefined System Identifier (SID)
- Upon joining an existing network, the node inherits the SID from the network master
- If a SID was manually set by the user, it may be overridden to ensure consistency and avoid conflicts
A node that has neither a valid SID nor an active discovery process cannot communicate until it successfully joins a network through discovery.
Beaconing and Network Formation¶
Discovery may leverage beaconing mechanisms to support:
- Automatic detection of nearby nodes
- Formation of networks without prior configuration
- Dynamic adaptation to node mobility or topology changes
Beaconing allows nodes to advertise their presence and discover peers even in unstructured or highly dynamic environments.
Security and Admission Control¶
Discovery defines the primary trust boundary of a DaaS-IoT system.
Each node can enforce admission policies on incoming discovery requests, including:
- Accept: the request is processed and the node may join the network
- Ignore: the request is silently discarded
- Reject: the request is explicitly refused
These policies enable:
- Creation of private or restricted overlays
- Protection against unauthorized nodes
- Controlled exposure of network presence
Security decisions are evaluated before any identifier assignment or synchronization is performed.
Discovery and Time Synchronization¶
Discovery is the trigger point for time synchronization.
Once a node is accepted through discovery:
- An initial ATS (Average Time Synchronization) phase is executed
- This phase bootstraps the distributed synchronization process
- The system then transitions to dATS (distributed ATS) for long-term stability
Time synchronization is mandatory before bidirectional communication is considered fully established.
Dynamic Network Adaptation¶
Discovery is not a one-time operation.
It continuously supports:
- Node join and leave events
- Recovery from temporary disconnections
- Reconfiguration due to mobility or link degradation
The overlay network adapts dynamically while preserving routing consistency and temporal coherence.
Cross-Platform and Transport Independence¶
Discovery operates uniformly across all supported platforms and communication drivers.
Its behavior and guarantees remain consistent regardless of:
- Operating system
- Hardware architecture
- Underlying transport technology
This ensures predictable and portable behavior across heterogeneous deployments.
Warning
Discovery behavior in version 0.21.03 is not compatible with previous releases. Nodes running older versions cannot correctly participate in discovery with 0.21.03 systems.