DIN and SID¶
DaaS-IoT uses two distinct identifiers to manage identity, addressing, and isolation within the overlay network: the DaaS Identifier (DIN) and the System Identifier (SID).
Together, DIN and SID define how nodes are addressed, grouped, and coordinated inside a distributed system.
DaaS Identifier (DIN)¶
The DaaS Identifier (DIN) uniquely identifies a node within an overlay network.
A DIN serves as:
- The routing address of a node
- The reference used for data delivery
- The identifier used by discovery, synchronization, and monitoring mechanisms
Each node participating in an overlay network must have exactly one active DIN.
System Identifier (SID)¶
The System Identifier (SID) defines the logical boundary of a DaaS-IoT system.
Nodes that share the same SID:
- Belong to the same overlay network
- Can discover each other
- Can exchange data and participate in synchronization
Nodes with different SIDs are isolated by default and do not interact.
DIN vs SID¶
| Aspect | DIN | SID |
|---|---|---|
| Scope | Node-level | System / overlay-level |
| Purpose | Addressing and routing | Logical isolation and grouping |
| Uniqueness | Unique within a SID | Shared by all nodes in the system |
| Assignment | Manual or automatic | Manual or inherited |
| Change at runtime | No | Possible via discovery |
Automatic DIN Assignment¶
Starting from version 0.21.03, a node may be initialized without explicitly specifying a DIN.
When this occurs:
- The system generates a DIN automatically using a time-based algorithm
- The generated DIN is guaranteed to be unique within the active overlay
- The DIN becomes immediately usable for routing and addressing
This mechanism enables zero-configuration node startup and supports autonomous network formation.
SID Assignment and Inheritance¶
SID management is closely tied to discovery.
When discovery is enabled:
- A node may start without a predefined SID
- Upon joining an existing network, the node inherits the SID from the network master
- If the user specified a SID manually, it may be overridden to ensure system-wide consistency and prevent conflicts
The SID therefore represents the authoritative identity of the overlay network, not an immutable local configuration.
Nodes Without SID or DIN¶
A node that does not have:
- a valid DIN, and
- an active SID obtained through discovery or configuration
cannot communicate with other nodes.
Such a node remains isolated until discovery successfully completes and assigns the required identifiers.
Identifier Stability and Lifecycle¶
- DINs are assigned once per node lifecycle and remain stable while the node is active
- SIDs may change as a result of discovery when joining an existing system
- Identifier assignment always occurs before time synchronization and data exchange
This ordering guarantees that routing and synchronization operate on consistent identities.
Limitations and Constraints¶
Due to architectural changes introduced in version 0.21.03:
- Sending messages to the local node itself (self-targeted DME/DDO using the local DIN) is currently not supported
- Applications should avoid assuming that locally configured SIDs are authoritative when discovery is enabled
These constraints are expected to be addressed in future releases.
Warning
The behavior of DIN and SID assignment in version 0.21.03 is not compatible with previous releases. Nodes running older versions may fail to join or interact correctly with a 0.21.03 overlay network.