Network setup
This page covers how the Entropy network functions from a conceptual standpoint. For techincal and actionable information on the various Entropy networks, check out the Networks reference page.
Joining the network
This section explains the process for validator nodes to join the network. The process works something like this:
- The new validator operates an Entropy chain node and a threshold server.
- This new validator registers with the chain.
- If the stake is enough and the node gets selected to be a validator, it will act as a relayer and be eligible to be added to the signer set.
sequenceDiagram title Joining The Network participant NV as New_Validator participant C as Chain NV->>NV: Spins up chain instance NV->>NV: Starts threshold server C->>NV: Places NV in validator set CV->>NV: Validates validator's subgroup, then encrypts and sends keys
Required information
Each validator node requires the following information before it can join the network:
- Endpoint: The IP address of its threshold server.
- X25519 Public Key: Its public encryption key for encrypting messages to and from other validators.
- Threshold Server Signing Account: The account for the threshold server to submit transactions to the Entropy chain.
Jumpstart
The network needs a “jump start” to be in a usefull state. Pretty much this means we need to do a network wide DKG to create the network parent key. This is started through a blockchain call which informs the selected TSSs to do a dkg. These TSSs will create the network parent key and create the first signing comittee.
Through reshares TSSs will get subbed in and out of the signing comittee. At registration user’s are given a derivation off of the parent key and during signing we have a just in time key derivation to allow for singing for a given account.
sequenceDiagram participant Anyone participant Chain participant Validator Alice participant Validator Bob participant Validator Charlie participant Validator David Anyone ->> Chain: Calls jumpstart_network(). Note over Chain: Selects validators for distributed-key-generation (DKG). Chain ->> Validator Alice: do DKG message sent. Chain ->> Validator Bob: do DKG message sent. Note over Validator Alice, Validator Bob: Perform DKG. Validator Alice ->> Chain: Confirms network is jumpstarted. Validator Bob ->> Chain: Confirms network is jumpstarted. Note over Chain: Network is jumpstarted, Alice and Bob are signers.