Become smithπ
In Duniter v2 you can only forge blocks if your identity is smith (see glossary). This page guides you to get the smith status. If you previously followed the run a smith node tutorial, you will be able to enable forging blocks. The steps to complete are the following one:
- become member of the main web of trust, (read how)
- read, understand, accept and start to follow the smith licence
- run a smith node (read how)
- be invited to join smith with
smithMembers.InviteSmith()
- accept invitation with
smithMembers.AcceptInvitation()
- get enough certifications from other smith with
smithMembers.CertifySmith()
until promoted - set session keys with
authorityMembers.set_session_keys()
extrinsic - start forging blocks with
authorityMembers.goOnline()
The complete process is detailed below, but high level tools like Δcli, Tikka or Duniter Panel can be helpful.
Table of contents
Become member of the main web of trustπ
Duniter is based on human trust without implying peculiary interest. Therefore, there is no need to own a large quantity of currency to take part to the blockchain authoring, only to be part of the main web of trust. This implies having read and accepted the Δ1 licence and getting certified by other wot members (see g1 documentation). Having a unique digital identity entails you can only have one smith identity.
Read and understand the smith licenceπ
The smith licence defines the rules to certify a new Duniter smith. These rules aim to garantee a good operation of Duniter blockchain by making sure that the new smith knows the rules applying to this role and that other smiths trust his/her ability to apply them.
Accept invitation to the smith groupπ
Before getting smith certifications, you have to be invited and accept the invitation (see runtime calls reference). After that, you will have to get certs and go online within a certain delay.
Get enough certifications from other smithπ
The minimum number of received certifications to become smith depends on the runtime. Currently it is:
- 2 for ΔDev
- 3 for ΔTest and Δ1 runtimes
A smith is only able to become an authority (see glossary) once he/she get enough certifications before the membership request expiration.
Set session keysπ
Once you are member of the smith wot, you are allowed to declare session keys with authorityMembers.set_session_keys()
. The argument of set_session_keys
is the four pubkeys of {babe, grandpa, imonline, authority discovery} protocols. These keys must be present on your smith node and should be generated locally to avoid leak.
You can find detailed documentation on how to do it with the following tools:
- Δcli, command line toole
- Duniter Panel, dedicated minimalist app
- Polkadotjs, generic tool from substrate ecosystem (difficult)
Start forging blocksπ
You can enter the authority set by calling authorityMembers.goOnline()
. Before that, you can double-check a few things:
- your validator node is well synchronized to the network
- your validator node actually has the session keys you declared
Otherwise you will be unable to add blocks and will generate BABE offences.
Stay smithπ
Once you are smith, you must:
- not stay offline more than 48 sessions (2 days)
- not lose your main wot membership (renew membership)
- not trigger offences (TODO document)
Otherwise, you will be excluded from the smith and will have to start over.