The Diode Network allows any system on the planet to serve secured content to the public Internet without any centralized technology. We're ending the monopoly of datacenter servers, the need for static IP addresses, and the dangerious reliance on decades old, broken, PKI technologies. With Diode, every system has a static address can be accessed with a human-readable names.
The Diode Network is a decentralized public network composed of servers operated by Diode and others around the world. These servers all run our open source software. The core server software is based fundamentally on the Ethereum client, but it has two very important differences
Systems outside of the network can directly communicate with and via nodes in the Diode Network. Due to our implementation of the Blockquick algorithm, these external systems can be of any level of sophistication / capability, and need no pre-existing trust relationship with the network in order to communicate with, or via, it. If an external system is communicating with another external system via the network, the network nodes establish and/or route the communications.
The Diode Network uses Proof of StakeWork to validate ledger transactions. Stake requires that a given identity “lock up” network tokens for a period of time in order to interact with the network. If the identity is a miner, for example, a higher Stake lowers the difficulty of the Proof of Work it needs to produce. Proof of StakeWork retains the proven security of Proof of Work, but both significantly reduces the power required to operate the network, and also protects the network from a 51% attack as the overall diversity of the nodes grows.
Every entity communicating with the network must have a unique Diode address. A Diode address is a portion of the hash of the public key of a web3 object containing, amongst other things, a private key. This web3 object is often referred to as a “wallet” because it enables its owner (the holder of the private key) to do valuable things with/on the Diode Network. At its most basic level, this wallet is just a unique address belonging to one, and only one, entity. Therefore, every entity communicating with the network must have a wallet.
Although most entities will not have any value associated with their identity, it is possible, and even necessary, for certain entities to hold amounts of network tokens (“DIO”, the Diode Token) in their wallets.
NOTE: Because every entity’s identity is also the entity’s address, the terms “Address” and “Identity” are often used interchangeably.While individual identities can interact with the network for different reasons, only identities that are part of a Fleet can communicate via the network. An identity can be part of multiple Fleets, and every Fleet is owned by a Fleet Operator (also sometimes called a Network Operator). Fleets are defined in a special smart contract called a Fleet Contract. A Fleet Contract contains a list of the identities that are in the Fleet, a Stake amount, and a Fleet Operator reward percentage. Any identity can create a Fleet Contract, but only its owner can modify or otherwise manage it.
The Stake in a Fleet Contract sponsors its members’ communications. If the amount of Stake in a Fleet Contract is too low to attract a sufficient service level from the network, the Stake must be increased.
Communications over the network can be scoped to be public (available to anyone, even outside the Fleet members), protected (available only to other members of the Fleet Contract), or private (available only to a specified identity - regardless of membership).
The primary use case of the Diode Network is to enable one edge system to communicate to another edge system via the network. This is how it works
In order to establish a connection with the network, an entity must have one or more known network node addresses stored in memory. Upon finding a valid node, the BlockQuick algorithm is used to verify the node is truthfully representing the current state of the network. If everything is in order a “Fast Sync” can be used (on the order of a few seconds), but if the entity has been disconnected from the network for a very long time, or if there are other inconsistencies, a “Slow Sync” is required.
Once a connection is established with a verified node, the entity can interact with the network or, if it is part of a Fleet, can communicate via the network to other entities.