How It Works

Web3 Technologies On a Mission

No Servers, No It Admins

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.

Key Network Concepts

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

Trustless P2P Communications

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.

StakeWork Consensus

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.

Additional key concepts include:

Unique Addresses / Identities

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.

Communication is done within the context of a Fleet

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).

How Communication Works

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

1

Establish Connection

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.

2

Subscribe to Communications

If a subscribing entity would like to receive information from a publishing entity, it requests to be connected to the publisher. The network looks up the state of connection of the publishing entity, and relays the subscriber’s request to the publishing entity. In certain cases, if the publish entity is broadcasting information, the network will handle the scale-out of the outbound streams.
3

Publish Communications

If a publishing entity would like to publish information, it connects to the network and awaits subscribers. In order for the network to connect a subscriber, the publisher’s Fleet Contract must have enough Stake to incentivize the Relay Node to handle the communications - if the Stake is too low, the Relay Node may choose to prioritize communications with higher Stake and the publisher will need to find another “hungrier” Relay Node to route communications.
4

Payment Resolution

Once a communication has been routed, the Relay Node submits a proof of communication ticket to the publisher for signature. The Relay Node collects these signed tickets and submits signed tickets to the network before the end of the epoch (roughly every 30 days). The Relay Node is paid a reward in proportion to each Fleet Contract’s Stake multiplied by the percentage of the total amount of communication routed on behalf of the Fleet Contract. For example, if a Fleet Contract had 1,000 DIODE Stake, and the reward was 1% of Stake for the entire Fleet Contract, and the Relay Node submitted a signed ticket representing 50% of all the communications by members of the Fleet Contract in that epoch, the Relay Node’s reward on that ticket would be 0.5% of the Fleet Contract Stake = 5 DIODE.