3.3.8 Node Networking

To join the DGT network, a node needs to be aware of the access points or gateways through which it can communicate with other nodes. This information is crucial for establishing and maintaining connections within the network. DGT supports various types of access depending on the segment type, whether it is public or private.

When a node joins the network, there are different scenarios for exchanging information between the node and the network. This includes the initial setup of connections, synchronization of data, and ongoing communication to ensure the seamless flow of information. For messaging capability, nodes must have an open validator port (8080 by default) supported by the node software (ZeroMQ).

These scenarios are designed to enable efficient and secure interaction between nodes, promoting the robustness and reliability of the DGT network:

INITIAL NETWORK CONFIGURATION:

During the initial startup of the DGT network, a genesis block is created to establish the basic configuration. This configuration, known as the SEED, includes information about segments, clusters, and base entry points. Nodes included in the SEED configuration do not require additional access parameters beyond those specified in the genesis block, making it easier to join the network. Each server is mapped to its network coordinate, denoted as SEGMENT:CLUSTER:ROLE, where the role determines the node's capabilities as a leader and access point/gateway for other nodes.

MULTIPLE NODES ON THE SAME SERVER:

In scenarios where multiple nodes need to be configured on a single physical server, it is important to define unique ports and other network attributes in the initial configuration or during the build and startup process. This ensures that conflicts are avoided and each node operates independently on the server.

NODE CONNECTION POINT:

To initially connect a node to the network, an access point is required. The access point is the address of a node already operating on the network and capable of exchanging data. It can be specified using a direct link with -S parameter or by providing a file or directory listing available access points.

-S tcp://validator-dgt-c1-1:8101

The file should be in JSON format, containing the necessary information for the connection.

{
  "public": ["tcp://validator-dgt-c1-1:8101","tcp://209.124.84.6:8101"],
  "private": [],
  "restapi": ["http://bgx-api:8108"]
}

This file can be stored locally or in cloud storage services like Google Drive:

-S “https://drive.google.com/file/d/1o6SEUvogow432pIKQEL8-EEzNBinzW9R/view?usp=sharing

ATTACHING A NODE TO A PRIVATE SEGMENT:

Connecting a node to a private segment requires an implemented SEED configuration and a running network. It also requires an x509 certificate, which in a network without notaries is a self-signed certificate generated automatically based on a template. The network monitors the validity of certificates, and an outdated certificate will prevent a node from logging into the network until it is renewed. In a network with notaries, certificates are issued using the notary mechanism and are checked during the connection process. Certificates define the topological address of the node as SEGMENT: CLUSTER: NODE.

ATTACHING A NODE TO A PUBLIC SEGMENT:

The DGT network has a single public segment. Joining the public part of the network does not require a certificate or any additional permissions. The candidate node only needs access to the public key that identifies the node. The location of the node within the network is automatically determined by the network based on the control mechanism for cluster width and network depth. The joining process consists of three stages:

· Searching for a location,

· Writing the node key to the network map,

· Synchronizing with the network and transitioning to the active state.

These processes ensure that nodes can be properly connected to the DGT network, whether in private or public segments, with the necessary configurations and permissions in place.

Last updated