Sovereign Domains

Overview

Domains are sovereign overlays that define their own membership and protocols used in the overlay.
An inter-domain protocol ensures interoperability that allows nodes to send external requests to known members of foreign domains they are not members of.

Grassroots domains may have multiple overlays, one in the core network and multiple intermittently connected overlays on various edge networks.

The minimum requirement for a domain is for the owner to define the domain configuration in a signed Domain Advertisement and share it with relevant nodes that allows them to send join requests and external requests to domain members that are listed in the Domain Advertisement.
The Domain Advertisment may be shared directly with nodes, or published in the Distributed Name System.

This minimalistic definition of a domain allows existing peer-to-peer overlays to participate in the interoperable domain system, just by publishing a Domain Advertisement and having some nodes in their overlay implement the inter-domain protocol for interoperability.

Anoma Domains

Anoma domains implement the following minimum set of protocols.

Distributed Pub/Sub

The distributed publish/subscribe protocol that provides Byzantine Causal Broadcast guarntees.
A set of authorized publishers may publish messages that a set of subscribers receive.

Mergeable Replicated Data Types (MRDT)

A permissioned distributed key-value store uses MRDTs as the underlying mutable data model that allows writers to perform concurrent operations on shared data structures
.
Permissions for writers specify who can perform what operations on which keys.
The MRDT store uses pub/sub to disseminate transactions that contain MRDT operations to all replicas of the data store.

Distributed Name System (DNS)

The Distributed Name System allows an identity to publish a zone with a set of names associated with records.
DNS uses the MRDT store to publish records signed by the identity.

Each domain has a dedicated pub/sub topic with a Topic ID that equals to the Domain ID where DNS records are published for both the domain zone and each member zone.
In the domain zone the domain owner publishes updates to the Domain Advertisment and other domain records, such as named pointers to pub/sub topics, storage objects, and other domains.
In each member zone a member publishes their own records, which is used by the membership protocol.

Domain Membership

A full membership and topology construction protocol for the domain overlay.
It uses DNS, where each member publishes their Node Advertisement, pub/sub subscriptions, and periodically updates their last seen timestamp.

The timestamp allows members to find live nodes in the domain to connect to, while the pub/sub subscriptions enable the constructiion of a Topic-Connected Overlay (TCO) in the domain where nodes only participate and relay messages in topics they subscribe to. This is only relevant to direct subscribers, indirect subscribers do not publish their subscriptions but send subscription requests broker nodes that subscribe to topics and forward messages on behalf of their subscribers.

2 Likes