Overlay Control (OVC) Node

Static public IP address is needed to run OVC node.

1.Download the ovc code and compile

Recommended environment: Ubuntu 16.04, 18.04, 20.04

autoreconf -sfi
# "--enable-testdnet" : Declare running in a test dnet environment
./configure --enable-testdnet
make install

2.OVC node component

dnetdovc node daemon
dnetcliovc cli

3.Initialize the ovc node

# Initialize
#   "client"         : Declare role as ovc
#   "localhost:port" : Local ip and port (default port: 1213)
dnetcli init ovc [localhost:port]

4.Request "dnetOVC administrator" to add ovc nodes to the ovc namespace

To deploy a private OVC node, you need to provide the node for dnetOVC namespace management. ovc nodes belonging to the same dnetOVC namespace will be clustered with each other.

Execute the "status" command to get the ovc node address:

# Returns the running status of the ovc node.
dnetcli status

# Return result description:
#   "role"     : ovc
#   "status"   : ovc running status (running/stop)
#   "reachable": none
#   "ip"       : none
#   "name"     : ovc node name
#   "address"  : ovc node address (unique identifier)
#   "datadir"  : ovc configuration file directory
#   "vlan"     : none

Provide address to the dnetOVC administrator, who will manually add it to the specified dnetOVC namespace.

After the OVC node is added to the dnetOVC namespace, it may take a while, usually 2-3 minutes, to synchronize the data, depending on the speed at which the blockchain generates blocks.

5.Start the ovc node

# Start the ovc as a daemon
#   "loglevel" : Run log level (default 0)
dnetcli start [loglevel]

Run "status" to view the current running status:

(For the return result, please refer to the previous "status" command return value description)

dnetcli status

Execute the status command, if the returned "status" property is "running", it means the ovc is already running.

If the newly added OVC resources in the dnetOVC namespace have been confirmed by the miners, the current OVC will be clustered with other OVC nodes in the dnetOVC namespace.

6.View the dnet where the dnetOVC node is serving

In the previous introduction, we know that each dnetvlan client node in the dnet is controlled by OVC node, so each dnet must specify an dnetOVC namespace.

Execute the getvlanlist command to find the dnet where the OVC node is located:

# Get the virtual groups where the ovc node is located
dnetcli getvlanlist 

# Return result description:
#  "Name"        : dnet id
#                  (dnet virtual group id)
#  "Alias"       : dnet alias 
#                  (dnet virtual group alias) 
#  "Status"      : none
#  "OnlineCount" : the number of online client nodes in the virtual group
#  "OnlineNodes" : online client nodes in the virtual group
#                  (display client virtual IP)
#  "OfflineCount": offline client nodes in the virtual group 
#                  (display client virtual IP)

If after a long period of time, the dnet where the OVC node is located cannot be obtained by executing the getvlanlist command, you can execute the syncvlan command to force sync from the blockchain once, and you can also ask the dnet administrator to confirm that it has joined dnetOVC namespace.

# Force sync data
dnetcli syncvlan

After manually executing the sync command, you need to continue to execute the getvlanlist command to confirm the sync result.

Edit this page on GitHub