Overlay Control (OVC) Node

Static public IP address is needed to run OVC node. Public OVC can be used, this section is the guide to setup private OVC node.

1.Download the ovc code and compile

Recommended environment: Ubuntu 16.04, 18.04, 20.04

autoreconf -sfi
# "--enable-testnet" : Declare running in a test dnet environment
./configure --enable-testnet
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 admin" 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 admin, 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.Get the list of dnets where the ovc is located

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

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

# Get the dnet list where the ovc node is located
dnetcli getvlanlist 

# Return result description:
#  "Name"        : dnet id
#  "Alias"       : dnet alias 
#  "Status"      : -
#  "OnlineCount" : the number of online dnetvlan in dnet
#  "OnlineNodes" : online dnetvlan in the dnet
#                  (display dnetvlan virtual IP)
#  "OfflineCount": offline dnetvlan in the virtual group 
#                  (display dnetvlan 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 admin to confirm that it has added 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.

7.Running as a public OVC

The public OVC is provided by miners. Each miner has the power to mine while providing OVC services, and these OVC nodes will be automatically connected to form a large OVC cluster. The user creates dnet, and can choose to use private ovc or public ovc when specifying ovc.

How to act as a miner and provide public OVC services, see: public-ovc

Edit this page on GitHub