Polkadot Hello World #2: Get Ready to Be Nominated as Official Validator

By talfco | Polkadot Journey | 25 Aug 2019

$1.99 tipped


This tutorial is based on Polkadot POC2 and potentially some steps are out-dated (but major concepts are still correct)

I suppose you followed the steps as described in my first article and have now a stable Polkadot Validator cloud instance running.

So what does that mean, actually?

Well, you have a node running which is building up a local copy of the parachain exposed by the Krumme Lanke Polkadot POC-2 test net. So you are more or less an active listener on the relay chain and are processing the newly created block and seal them into your local blockchain DB.

This situation can be explained by using a modified tweet of @iamdevloper, which is famous for funny to-the-point messages, as for example

0*SP3jTdlUXyaX1NI-.png

Actually, you entered the blockchain space with a validator node … but … are not part of the party yet.

0*GOOIYsG_xR2Y89Nj.png

In order to join the party, getting the possibility to earn DOT tokens and getting rich ( test-rich only) you have to apply for one of the four Polkadot basic roles, which upkeeps a Polkadot network (refer to the roles discussion in my last article).

Let’s walk-Through the four steps which are necessary to enter the Proof of Stake (PoS) party room in the Validator role.

0*D7alIS4TyUPsam8y.png

1. Create an account

As a first step, you have to create an account on
https://poc-2.polkadot.io/#/accounts.

0*BVUyOTBPYngyhNfE.png

Choose a name and password and create your account.

In return, you will get an Account Address (which you can use in public), as well a seed, which you have to keep private! In a later stage when you start up your validator applying as an official validator, you will require your seed again.

Having created your account, you now have to get some DOT test tokens for your account.

You require DOT’s test token in order that you can pay the “staking” transaction fee, which brings you forward into the intention queue of future validators.

Head over to the Polkadot Watercooler on Riot, where you will find a lot of helpful people which will send you some DOT’s to your account address.

0*s1EGNdUUcby4tsxf.png

After receiving some test DOT’s head over to your account and check the balance, in my case 20’000 dots were deposited.

0*gnKfmhBvleoz6JdI.png

Reconfigure your Validator node and restart

Having a funded account, it’s time to restart your node by applying some parameters, which will bring you to the intention list of Validators.

Modify the parameter of your Validator, by applying the following values:


“ — validator — key <yourPrivateSeed>”

You now have A Validator node running, which is ready for work as a “Proof of Stake” (POS) consensus Polkadot Validator node. So you have expressed the desire to take over this role, but you are not eligible yet.

So grab some of your DOT tokens and head over to the Stake account transaction process.

BTW: The Polkadot Validator will show in his log the following message in this mode (you don’t have to care about this error, it just signifies that you aren’t an official validator yet)

0*E_HCbQdSc4Tk4rQ5.png

Deep Dive Section: Consensus in context of Polkadot

But what means “BFT agreement” in log entry? Well we have to go way back in the history to the Byzantine Generals

0*kiOIAqHElZsjv-EE.jpeg

The General problem — Public Domain Picture

The so-called Two-General Problem described in 1975 a scenario where two generals are attacking a common enemy and try to communicate via messengers in a reliable and secure way the attack time. The scenario was proven to be unsolvable.

There is no way to guarantee the second requirement that each general is sure the other has agreed to the attack plan. Both generals will always be left wondering whether their last messenger got through.

In 1982 a follow-paper was published describing the Byzantine General Problem, which is a generalized version of the Two Generals Problem with a twist. It describes the same scenario, where instead more than two generals need to agree on a time to attack their common enemy. The added complication here is that one or more of the generals can be a traitor, meaning that they can lie about their choice.

The algorithm described in the paper was proven, that the algorithm can reach consensus as long as 2/3 of the actors are honest. If the traitors are more than 1/3, the consensus is not reached, the armies do not coordinate their attack and the enemy wins.

Byzantine Faults are the most severe and difficult to deal with. Byzantine Fault Tolerance has been needed in airplane engine systems, nuclear power plants, as well as blockchains. There are various algorithms available tackling the problem.

A consensus algorithm (BFT) is Byzantine Fault Tolerant as long as the number of traitors does not exceed one-third of the generals. You can find a good overview in the following Medium article.

The big breakthrough with blockchains was the usage of Proof of Work (PoW), as well as later Proof of Stake (PoS) as a probabilistic solution to the Byzantine General Problem. The following email by Satoshi Nakamoto (the Bitcoin anonymous founder) from 2008, explains in an easy language how PoW should be used to solve the problem.

In the context of the Polkadot algorithm — which is under development — the white paper states:

Ultimately we expect to be inspired by a number of promising BFT consensus algorithms in the core; Tangaora (a BFT variant of Raft ), Tendermint and HoneyBadgerBFT ]. The algorithm will have to reach an agreement on multiple parachains in parallel, thus differing from the usual blockchain consensus mechanisms.

Ultimately we expect to be inspired by a number of promising BFT consensus algorithms in the core; Tangaora (a BFT variant of Raft ), Tendermint and HoneyBadgerBFT ]. The algorithm will have to reach an agreement on multiple parachains in parallel, thus differing from the usual blockchain consensus mechanisms.

As Gavin Wood states in the White Paper

For a proof-of-authority (PoA) style network, this alone would be sufficient, however, Polkadot is imagined to be also deployable as a network in a fully open and public situation without any particular organisation or trusted authority required to maintain it. As such we need a means of determining a set of validators and incentivising them to be honest. For this, we utilise PoS based selection criteria.

So it’s important to realize that a BFT algorithm in a PoA environment only (with a consensus mechanism based on identity as a stake) would be sufficient. But the open an public situation of Polkadot ask for additional means.

To conclude the section, there was some debate about Polkadot being a permission-less platform on the Riot channel, let’s summarize the findings (which are backed by the statements in the white paper)

  • Polkadot will be a public network. Anyone is free to participate in the network, and if nomination processes are used to select validators as the white papers outlines, it might take place daily.
  • Polkadot’s process will allow any party to attempt to validate as described, just like anyone is free to mine on Ethereum or Bitcoin, that doesn’t mean they are guaranteed a block.
  • Additionally, the term permission can often apply to more than just block creation, but also to a white or black list allowing or disallowing participation among other restricted sets.
  • All things considered, Polkadot fits the definition of a permissionless platform.

Having a basic understanding now of the consensus topic let’s move forward with our process of stake and getting nominated.

3. Stake and Get Nominated

This step is the PoS selection process, which will finally incentivize us, in case we are behaving in an honest manner.

To get you on the intention list of potential validators requires you to execute a stake transaction, which comes with some transaction fees (around 210 DOT’s).

0*1dEw07VjEXHqiHDF.png

You have to provide your password to sign and submit the “staking.stake” transaction. Due to the fact that is your first stake transaction, it’s index is 0.

0*nWRf6WdqyUDLMv3y.png

The execution of this transaction brings you in the waiting room of Validator nodes, which expressed their intention to participate in the Proof of Stake consensus validation process with the next “era” (era will be explained shortly).

0*0hSmnJ160WOTR9ad.jpeg

Waiting for the next free seat — Taos. New Mexico, 1942 (Creative CC0 Commons Licence)

Technically the waiting room looks like this

On the left side are the validators shown (with their Nominators — small polkadot icon, below the Validator node) on the right the nodes waiting to enter the party room.

As mentioned above, the listed Intention nodes may get a chance to get an official Validator at the end of an era.

An era is defined as the time required to create and seal 720 blocks on the relay-chain. A new block is created, processed and verified around every 5 seconds. I.e. that means an era lasts for around an hour.

As the white paper describes:

We imagine validators be elected, infrequently (at most once per day but perhaps as seldom as once per quarter), through a Nominated Proof-of-Stake (NPoS) scheme.

For the test environment, the selection process is happening around every hour. The Header information of the Staking GUI, gives some basic information, among other the actual time slot in an era cycle.

As one can see on the header information, there are 22 slots for Validators available and there are 6 validators (22+6=28) waiting on the intentions list. The time passed in an era is slot 653 of the total of 720.

The session counter will express the number of block sealing left until the validator and its nominators are incentivized. In our example 7 block sealings (60–53) left until the next payout phase takes place.

0*5Mwoy-_JZpaDr9vr.png

After the end of an era, the eligible validator set will be newly calculated, by applying the following rule

the 22 validators with the highest overall account balance will be the validators for the next era cycle.

The GUI will also show, the lowest validator node of the era with 1’099’715 DOTS and the highest intention node with 2’303’173 DOTS, which means in the next era, there will be a replacement happening (highest intention node will replace the lowest validator).

0*jAD_UXXkk-BHgIJx.png

Now checking my own account balance above (19’793) shows me that I’m way behind the highest intended node with an account balance of 2’303'173.

That means I have to reach out for Nominators, which will back me with their account balance.

So it’s time to describe the second role in the Polkadot ecosystem, the “Nominator”. Let’s use the white paper definition here:

A nominator is a stake-holding party who contributes to the security bond of a validator. They have no additional role except to place risk capital and as such to signal that they trust a particular validator (or set thereof) to act responsibly in their maintenance of the network. They receive a pro-rata increase or reduction in their deposit according to the bond’s growth to which they contribute.

Together with collators, nominators are in some sense similar to the miners of the present-day PoW networks.

It’s important to realize, that a nominator will get either an increase (in case you behave in line with the rules) or a decrease (in case you misbehave and get slashed) of its deposit put on you. So its risk capital in his context, dependent on your misbehavior various level of slashing is foreseen (which affects directly you, as well as indirectly the nominators), as the white paper states:

Some cases of misbehavior threaten the network’s integrity (such as signing invalid parachain blocks and validating multiple sides of a fork) and as such result in effective exile through the total reduction of the bond. In other, less serious cases (e.g. inactivity in the consensus process) or cases where blame cannot be precisely allotted (being part of an ineffective group), a small portion of the bond may instead be fined.

It’s clear that a nominator is keen on supporting validators who stick with the rules.

So you have to reach out to nominators which are willing to add an increase of your security bond in order to get a chance to get nominated. Potentially you are already in contact with some members via the riot polkadot watercooler or polkadot beginners lounge chat. Contact them:

0*KOX9H3NzxW72o682.png

As soon enough Nominators support you, i.e. you are under the 22nd Validators with the highest overall balance, you will be part of the official validator set, which can earn DOTS for sealing new blocks. The log entries will now look like:

0*4b5QI0jXd2NZAzFQ.png

You are now an official Polkadot validator which takes part in PoS consensus process. You will find your validator now on the left side of the Staking page:

0*DkQ4Zlsroh25PXNU.png

As you can see here, my account is backed by a nominator which adds 2’226’461 dots.

0*dihifSVIWFSPZhQC.png

That’s it for today. In the next article, we will address some reliability and security topics of your node.

Originally published at dev.cloudburo.net on October 8, 2018.


talfco
talfco

Exploring the world of decentralization. All content and opinion expressed in context of my legal entity atnode.ch


Polkadot Journey
Polkadot Journey

A Journey into the new world of Polkadot's heterogeneous multi‑chain blockchain technology. A set of articles which are providing a high-level introduction to Polkadot with a focus on Validators.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.