Join DNSP Gossip
Join Decentralized Network Starter Protocol
Prerequisites
Latest Rust nightly release
cargo
Docker
Build and install CLI tool
The path to the tvm-cli
is now publicly accessible. You can also add it to your environment variables (ENVs).
Step 1. Generate seed phrase and keys for each BK node (offline step)
With BK Node Owner keys you will be able to manage the node. The public key must be provided to the License Owner for license delegation.
Here’s an example of a command that generates a key pair from a seed phrase and saves it to a specified file:
Result:
Write down your seed phrase
and store it in a secure location.
You will only see them once and won't be able to restore them!
Never share it with anyone. Avoid storing it in plain text, screenshots, or any other insecure method. If you lose it, you lose access to your assets. Anyone who obtains it will have full access to your assets.
Additionally, ensure the file containing the key pair
is saved in a safe place.
Step 2. Running Acki Nacki Igniter
You must run single instance of Acki Nacki Igniter on each BK server
Step 2.1
Generation of BLS keys
for each BK node using the node-helper tool
.
Building node-helper:
run it:
As a result, the BLS keys
will be saved in the file config/block_keeper_bls.keys.json
Each new call to node-helper bls
adds keys to this array
for example:
Step 2.2
Create a file config/keys.yaml
from template with keys:
place the keys from the file
config/block_keeper.keys.json
in thewallet
section;place the data from the file
config/block_keeper_bls.keys.json
in thebls
section;
For example:
Create the configuration file config/igniter.yaml
for Acki Nacki Igniter from template:
config/igniter.yaml
for Acki Nacki Igniter from template:For example:
advertise-addr
specifies the address that the node shares with other nodes for connection.
seeds
are a list of nodes in gossip that provide other nodes with information for connecting to the network. Each seed serves as a starting point for synchronization and discovering other nodes in the network.
Run Igniter in Docker:
Before this set environment variables:
If you are using a non-standard socket for Docker, you can specify it via the DOCKER_SOCKET
environment variable when launching Acki Nacki Igniter.
We strongly recommend using the installation via Docker for proper update process operation.
and run docker container:
Make sure that the port specified in the ADVERTISE_PORT
variable is accessible from the outside.
Step 2.2
By default the DNSP state is accessible at http://your_public_ip_address:10001.
Be sure to go there and check the following information:
Seeds in the
seed_addrs
section:
Your nodes in the
node_states
andlive_nodes
sections:
If the node is not working or functioning incorrectly, it may:
Temporarily appear in the
dead_nodes
section.Only see itself in the DNSP Gossip state and not detect other participants. Be sure to check if you can see the seeds in the
live_nodes
list.Not see a populated
key_values
section. Make sure thebls_pubkey
andpubkey
objects are present and correctly filled out.
You can view information about the number of delegated licenses to your node and the public keys of their owners in the licenses
subsection.
Link to the source code.
Step 3. Delegating licenses
If you own BK licenses and want to delegate them to your nodes, do this in the dashboard.
To delegate licenses, you need to know the public key of the BK node owner.
In the first step, you need to connect the cryptocurrency wallet from which the licenses were purchased.
Confirm that you are the wallet owner by signing a message:
Generate Acki Nacki License Owner Phrase and public key or click the
Import an existing phrase
button to import your existing Phrase from Acki Nacki app.
This Phrase will be linked to your Dashboard Account through a public key. This can only be done once. You will use it to withdraw BK rewards for your delegated licenses.
At this step, a seed phrase will be generated/imported for this Account. It will be required to manage your licenses. After the network starts, you will be able to update the license contract owner to a wallet address, such as a multisig. This way, the withdrawal of rewards can be confirmed by multiple custodians.
You will only see seed phrase
once and won't be able to restore it!
Write down your seed phrase
and store it in a secure location.
Never share it with anyone. Avoid storing it in plain text, screenshots, or any other insecure method. If you lose it, you lose access to your assets. Anyone who obtains it will have full access to your assets.
A very important point: make sure you have memorized your seed phrase correctly:
Create and confirm a
passcode
:
The passcode is used to encrypt the seed phrase in the device storage.
Your license owner's public key will be available in the top right corner:
Then, assign each license from your list to a node using one of the BK Node Owner public key generated above. For each node, these keys can be found in the wallet section of the
config/keys.yaml
file.
Do not use BLS keys for license delegation.
To do this, go to the Licenses
tab and click the Delegate
button.
Licenses that are not delegated will not generate rewards.
At this step, confirm that you know the Node Owner's public key, check the box, and click the Continue
button. On the next step, enter the key and click the Delegate
button.
If you don’t have such a key, send a delegation request to one of the Node Providers from
No more than 5 BK licenses can be delegated to a single node. The reward for BK validation in the network is evenly distributed among the licenses delegated to it.
Information about delegated licenses will look something like this:
A BK node can be changed, and your license can be delegated to another BK owner's public key.
This can be done at any time, but to avoid losing rewards, change the BK after the
Cooler phase
ends (see the diagram) and before the new BK's Epoch begins.
To do this, go to the Licenses
tab, click the Delegated
button, and in the pop-up window, click on Revoke delegation
:
Then, delegate it to the new BK.
Actual information about the DNSP Gossip state can be viewed on the
Gossip
tab:
Information about delegated licenses will be automatically updated in Gossip with Acki Nacki Igniter.
If the license is not delegated to a BK node before the network launch, it will not be placed in the Zerostate.
Once over 75% of BK Licenses join the DNSP, the network will automatically go live.
Last updated