3.3.9 Permalinks Control Protocol

On networking routine, the node performs three specific tasks:

  • Network Discovery: This task is not applicable to closed corporate networks or private segments of the DGT. However, it is crucial for public networks and the public segment of the DGT. Network discovery involves identifying and establishing connections with other nodes in the network. It is important for ensuring network connectivity and addressing potential vulnerabilities.

  • Network Connection (Entering to network): The process of connecting to the network is determined by the Permission Design. The DGT employs a hybrid approach, where the network consists of both closed segments that require a certificate for node participation, and open segments that allow any node to join. Nodes must go through the necessary authentication and authorization procedures to establish a connection to the network.

  • Communication and Participation: Nodes maintain communication with other nodes to participate in the consensus mechanism, which involves validating transactions and disseminating ledger information. This includes voting on transaction validity, reaching consensus, and distributing the updated ledger to other nodes in the network.

These tasks collectively ensure the node's active participation in the network, enabling it to contribute to transaction validation and the propagation of information throughout the DGT network. The DGT network incorporates a unique permalink mechanism to facilitate communication between nodes.

A permalink is the established communication link between one node and another or multiple nodes. To facilitate this communication, the node must possess the necessary information about the network sockets of the target nodes. It should be able to send requests and receive responses, while also understanding the message structure and performing necessary checks to ensure the integrity and correctness of the received messages. The permalink serves as a reliable means for nodes to exchange information within the network.

Permalinks play a crucial role in maintaining communication and ensuring the proper functioning of nodes within the network. Unlike traditional public networks, DGT allows nodes to have different ports and IP addresses, and they can serve different roles within the network. Additionally, DGT supports private segments that are managed by system administrators and may have configured firewalls. To ensure network stability, specific solutions are required:

  • Within a cluster, nodes interact with a leader that changes in each round. These nodes must be recognized by other nodes as cluster members and have access to all network interfaces within the cluster.

  • Nodes within a segment or network need to receive information about network connection points, known as Access Points or gateways. These connection points are essential for broadcasting modified copies of the ledger (including added transactions) or receiving updates from other nodes.

Maintaining the stability of the DGT system presents various challenges. For instance, if a node acting as an access point for a cluster or a group of clusters unexpectedly fails, it can result in the isolation of a certain number of nodes, posing a threat to the network's information integrity. While public networks typically utilize the GOSSIP protocol to ensure network stability through a stochastic process of accessing random nodes, this approach may not be optimal for private segments of DGT. To address the problem of maintaining network integrity, several solutions have been developed. These solutions aim to mitigate the challenges and ensure the smooth operation of the network. Some of these solutions are outlined in the table below:

#Protocol NameFeaturesProsConsReference

1

Redundant Access Points

- Multiple access points/gateways for communication between nodes.

- Provides redundancy and fault tolerance.

- Ensures continuous network connectivity.

- Requires additional infrastructure and configuration.

- Increased complexity in managing multiple access points.

(Osaku, Otis, & Mandarine, 2018)

2

Self-Healing Mechanisms

- Mechanisms to automatically detect and recover from network failures or disruptions.

- Enhances network resilience and reduces downtime.

- Improves fault tolerance and minimizes manual intervention.

- Implementation complexity.

- Requires careful design and configuration.

(Trehan, 2012)

3

OSPF

- Dynamic routing protocol based on the shortest path algorithm.

- Scalable and adaptable routing protocol.

- Supports load balancing and fast convergence.

- Requires configuration and management.

- Limited support for policy-based routing.

- Vulnerable to routing loops.

(Darville, Hofner, Ivankovic, & Pam, 2022)

4

BGP

- Exterior gateway protocol for inter-domain routing.

- Scalable and robust protocol for routing between autonomous systems.

- Supports policy-based routing and path selection.

- Complexity in configuration and management.

- Slower convergence compared to OSPF.

- Vulnerable to misconfigurations.

(Balchunas, 2007)

5

ZooKeeper

- Distributed coordination service for maintaining configuration information, naming, synchronization, and group services.

- Provides reliable and consistent coordination among distributed systems. - Ensures high availability and fault tolerance.

- Requires additional infrastructure and management overhead.

- Can introduce additional latency.

(Hunt, Mahadev, Junqueira, & Reed)

6

EIGRP

- Cisco proprietary routing protocol for interior gateway routing.

- Fast convergence and efficient use of network resources. - Supports load balancing and route summarization.

- Proprietary protocol, limited interoperability.

- Configuration complexity.

(Cisco, 2005)

7

GOSSIP

- Epidemic-style protocol for peer-to-peer communication and information dissemination.

- Decentralized and scalable. - Provides fault tolerance and resilience in dynamic networks. - Efficient in disseminating information.

- May introduce additional network overhead.

- Limited control over message routing and ordering.

(Ghosh & Ghosh, 2022)

DGT supports a hybrid structure using the adapted Permalinks Control Protocol (ZeroMQ, 2020), which inherits many of the components of the approaches listed above. The Permalinks Control Protocol is a vital component of the DGT network, enabling reliable and secure communication between nodes. It provides mechanisms for network discovery, connection establishment, redundancy of access points, handling connection failures, and facilitating communication using the ZeroMQ messaging pattern. With features such as private segment isolation and support for different node statuses and message types, the protocol ensures efficient and robust communication within the DGT network:

  • Network Initialization:

- Network starts with a predefined set of nodes, each with a predetermined role and static configuration (SEED).

- SEED configuration is written to the genesis block of the registry.

- SEED configuration can be changed over time.

  • Network Discovery:

- Nodes discover the network using specified connection parameters or by reading main node registries in JSON format.

  • Redundant Access Points:

- Network gateways (access points) provide a list of access points to nodes seeking network connection.

- Redundancy of access points ensures reliable connectivity.

  • Connection Failure Handling:

- If a connection attempt fails, nodes iterate through the next available access points to retrieve access parameters.

  • Private Network Segments:

- Private network segments can be isolated from external requests, except for permitted access.

  • Network Partitioning:

- In the event of significant network partitioning, nodes can manually switch to the Gossip protocol for communication.

- Dynamic Configuration: mechanisms to dynamically configure gateways and access points (can involve automatic detection and addition of new nodes as gateways or access points based on network conditions and availability (under design).

  • ZeroMQ Communication:

- Nodes utilize ZeroMQ, adapting the 0MQ asynchronous client/server pattern.

- Server-side uses a 0MQ ROUTER socket listening on a provided endpoint.

- Multiple connected client-side DEALER sockets send requests and receive replies.

  • Node Status:

- Nodes have three statuses: Unconnected, Connected (requires connection for peering), Peered (bidirectional relationship for message passing).

  • Message Types:

- Nodes support message types like PING (socket test), PEER (establish bidirectional connection), GET_PEERS (receive cluster nodes for consensus or new PERMALINK), UNPEER (destroy permalink), DISCONNECT (hard disconnect connection).

  • Message Methods:

- BROADCAST(MSG): Distribute data and transactions.

- SEND (NODE, MSG): Send a message to a specific node.

- REQUEST(MSG): Request a response.

  • Channel Protection:

- Channel protection is implemented using the TLS-like ZeroMQ protocol.

The Permalinks Control Protocol described above outlines the key features and functionalities used to establish and maintain communication within the DGT network.

Last updated