Docs
Ecosystem Roles
Validator
Required Keys

Required Keys

In order to participate in the distributed key generation protocol, block production, and block finalization, you will be required to set up a few keys. These keys include:

  • DKG key (Ecdsa)
  • Aura key (Sr25519)
  • Account key (Sr25519)
  • ImOnline key (Sr25519)
  • Nimbus key (Sr25519)
  • Rand key (Sr25519)

To generate each of the above keys we will make use of subkey (opens in a new tab). You will need to install subkey before running the command.

Keep in mind the below commands are using /tangle-data base-path, please specify your preferred base-path during execution.

Once installed, to generate the DKG key you can run the following:

tangle-standalone key insert --base-path /tangle-data \
--chain "<APPLICABLE-CHAINSPEC>" \
--scheme Ecdsa \
--suri "<12-PHRASE-MNEMONIC>" \
--key-type wdkg

To generate the Aura key you can run the following:

tangle-standalone key insert --base-path /tangle-data \
--chain "<APPLICABLE-CHAINSPEC>" \
--scheme Sr25519 \
--suri "<12-PHRASE-MNEMONIC>" \
--key-type aura

To generate the Account key you can run the following:

tangle-standalone key insert --base-path /tangle-data \
--chain "<APPLICABLE-CHAINSPEC>" \
--scheme Sr25519 \
--suri "<12-PHRASE-MNEMONIC>" \
--key-type acco

To generate the Imonline key you can run the following:

tangle-standalone key insert --base-path /tangle-data \
--chain "<APPLICABLE-CHAINSPEC>" \
--scheme Sr25519 \
--suri "<12-PHRASE-MNEMONIC>" \
--key-type imon

To generate the Nimbus key you can run the following:

tangle-standalone key insert --base-path /tangle-data \
--chain "<APPLICABLE-CHAINSPEC>" \
--scheme Sr25519 \
--suri "<12-PHRASE-MNEMONIC>" \
--key-type nmbs

To generate the Rand key you can run the following:

tangle-standalone key insert --base-path /tangle-data \
--chain "<APPLICABLE-CHAINSPEC>" \
--scheme Sr25519 \
--suri "<12-PHRASE-MNEMONIC>" \
--key-type rand

Synchronize Chain Data

You can begin syncing your node by running the following command:

./target/release/tangle-parachain

Once your node has fully syncronized with the Relay Chain you may proceed to setup the necessary accounts to operate a node.

Bond funds

To start collating, you need to have x TNT tokens for Tangle Network. It is highly recommended that you make your controller and stash accounts be two separate accounts. For this, you will create two accounts and make sure each of them have at least enough funds to pay the fees for making transactions. Keep most of your funds in the stash account since it is meant to be the custodian of your staking funds.

Make sure not to bond all your TNT balance since you will be unable to pay transaction fees from your bonded balance.

It is now time to set up our validator. We will do the following:

  • Bond the TNT of the Stash account. These TNT tokens will be put at stake for the security of the network and can be slashed.
  • Select the Controller. This is the account that will decide when to start or stop validating.

First, go to the Staking section. Click on "Account Actions", and then the "+ Stash" button. It should look something similar to the below image.

bond

Once everything is filled in properly, click Bond and sign the transaction with your Stash account.

Session Keys

Operators need to set their Author session keys. Run the following command to author session keys. Note: You may need to change http://localhost:9933 to your correct address.

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933

Result will look like this, copy the key:

{"jsonrpc":"2.0","result":"0x400e3cef43bdessab331e4g03115c4bcecws3cxff608fa3b8sh6b07y369386570","id":1}

Set session keys

  1. Go to the Polkadot.js portal: Developer > Extrinsic.
  2. Select your account and extrinsic type: session / setKeys.
  3. Enter the session keys and set proof to 0x00.
  4. Submit the transaction.

Setting identity

Operators need to set their identity.

  1. Go to the Polkadot.js portal: Accounts
  2. Open the 3 dots next to your address: Set on-chain Identity
  3. Enter all fields you want to set.
  4. Send the transaction.

Request judgment

  1. Go to the Polkadot.js portal: Developer > Extrinsic
  2. Select your account and extrinsic type: identity / requestJudgment
  3. Send the transaction.

Production blocks

Once your is active, you will see your name inside Network tab every time you produce a block!