The private overlay network, a.k.a. Virtual Private Network (VPN), is referred as
dnet
orĐNet
orDNet
.
ĐNet is an abstract private overlay network, attached to the Internet underlayer as end points. The main attributes of the ĐNet are:
The OVC instantiates the abstract ĐNet with the protocols, capabilities and features which are specific for each ĐNet.
ĐNetDB is the meta-data for the DNet. A record in the ĐNetDB defines a ĐNet, e.g. adding a new record means creating a new ĐNet. The database CRUD operation logs are stored on blockchain,similar to Bitcoin's transaction ledger. Each dnet record stores a list of nodes and directive or pointer to the associated OVC and OVR. Similar to Bitcoin's token, the dnet record belongs to its creator and is locked by creator's public key. Only its creator can use signature script to unlock it and add/delete nodes & assign OVC/OVR.
The nodes are the networking elements to get connected and run App within a ĐNet. It can be any device, like computer, mobile phone or embedded device. A node lives within the scope of individual ĐNet and it can be in multiple ĐNets at the same time. DNet Node is the host to run DNet App.
The two main attributes of node are for networking:
The node does NOT need a public IP address, it will instead use OVC to find peer nodes.
Overlay Cloud (OVC) is the cloud backend for each ĐNet. The OVC defines the protocols, capabilities and features for each ĐNet. OVC is the concrete implementation of the abstract ĐNet as defined in blockchain. For example, an OVC with SD-WAN control and data plane capability creates a Layer 3 overlay network for the ĐNet member nodes. Since the OVC has no access to the encrypted traffic, the OVC can be either self-managed or outsourced without sacrificing privacy.
OVC is multi-tenant, meaning a cluster of OVC nodes can server multiple DNETs and information is automatically segmented among different dnet.
The two main attributes of overlay cloud are for functions as the cloud backend:
The above meta data is locked by OVC Provider's key and can only be managed with the creators' account.
Since one of OVC major roles is the rendezvous point for all member nodes, it usually has public IP address. The OVC can compose a cluster of nodes for high availability. For third-party OVC, the dnet owners usually subscribe the OVC services. The subscription payment is enabled with ĐNet token smart contract, as well as usual credit card payment.
Learn more about Overlay Cloud
The above OVC nodes help peer nodes to find each others' accessible IP address, based on which the peer nodes try to make the direct connection. This is similar to a Session Traversal Utilities for NAT (STUN) process as defined by IETF RFC3489. However, because of the variety of the network topologies, the STUN process might NOT lead to a direct tunnel between peer nodes, then Traversal Using Relay NAT (TURN RFC5766) is needed to established relayed tunnel between a pair of peer nodes. The Overlay Relay (OVR
) nodes fulfill the TURN function.
The location and bandwidth of the OVR node determines the quality of the relayed tunnel. OVR nodes are usually paid resources in a dnet.
ĐNet App is the software running on ĐNet Node. The interface to ĐNetDB is generic and new App and OVC can be easily added using the ĐNet SDK.
The first implemented ĐNet App is a Layer 3 Overley Network, also known as SD-WAN. The OVC cloud backend is the control plane and the OVR nodes form the data plane for the SD-WAN.
The benefit of the decentralized SD-WAN is that the core meta info are securely stored in the open blockchain and full automation can be applied to greatly simplify the configuration and setting.
The data tunnel is UDP connection between nodes (DNet App), established with the help of the rendezvous OVC nodes. Once the accessible IP addresses are exchanged between peer nodes, the peer nodes try to establish connection in the following order:
direct connection;
relayed connection through other peer nodes in the same dnet, e.g. when nodeA and nodeB can't connect directly, but can both establish direct connection with nodeC, then NodeC will automatically act as the middle relay node for nodeA and nodeB;
relayed connection through OVR nodes.
Whenever nodes join or leave the dnet, the above process will be run to change the connection topology accordingly.
Like IP address is fundamental for Internet, Crypto ID is paramount on ĐNet platform. The namespace on ĐNet is the Crypto ID for ĐNet, OVC and its member node. A dnet is created by associating a ĐNetID with a list of NodeIDs and OVC_ID.
The assigned Virtual IP for each node serve as the bridge from Crypto ID to the Layer 3 IP network and standard TCP/IP applications.
Crypto ID | Description | Public Key |
---|---|---|
dnetID | dnet record ID | hash of dnet pubkey |
nodeID | node crypto address | hash of node pubkey |
ovcID | ovc record ID | hash of ovc pubkey |
C2PKH stands for Connect To PubKey Hash
, similar to Bitcoin's P2PKH (Pay-To-Pubkey-Hash) script. The nodes are identified by the C2PKH, instead of the public key directly.
A c2pkh looks like this 1FCz4ZvgZfPJNLesrqhLmvoTMgtw1ABkaF
, which has 34 characters.
Internet uses IP addresses and relies on the Classless Inter-Domain Routing (CIDR) for allocating IP address and IP routing, and Border Gateway Protocol (BGP) to exchange routing information between Autonomous Systems (AS) Zones. The location information or the address-book is implicitly carried in the subnet mask or the hierarchical structure of each TCP/UDP packet. In many use cases, it is desired to split the ID and location for flexible networking.
There are three types of roles in the DNet ecosystem:
dnetcoin-cli
commands to manage the dnet records, e.g creating a new dnet and add/delete member nodes, assigning ovc resources;dnetcoin-cli
commands to register ovc cloud resources into DNetDB and app-cli
commands to add authorized dnet.app-cli
commands or easy-to-use Apps with GUI to initialize, start, join and connect an overlay network.The Admin creates and manages the DNet, the cloud resource providers contribute application and bandwidth for the end users.
A Software-defined Wide Area Network (SD-WAN) is a virtual WAN architecture that allows enterprises to leverage any combination of transport services to securely connect users to distributed applications. An SD-WAN uses a centralized control function to securely and intelligently direct traffic across the WAN. This increases application performance and delivers a high quality user experience, resulting in increased business productivity, agility and reduced costs for IT.
DNetwork is a decentralized platform to create SD-WAN easily and secure.