ĞDev3 smiths

During Bordeaux hackathon, we launched the ĞDev3. The BABE consensus algorithm involves that loosing more than ⅓ of the authorities will result in unstable network (explanation in the rush provided by 1000i100 still to be cut). So we need to organize ourselves to make sure the smith are enough and do goOffline() in advance if they know their node is risking interruption of service.

A visio in english will be set in order to increase the number of people in the smith subwot and we will track the activity of the authorities in the following topic until we get better tooling.


Telemetry available here: Polkadot Telemetry


I do not have much space left on my server, so I’m doing goOffline() to change my node config to enable pruning (no more archive node) before I’m actually running out of storage. I’m waiting for the next epoch to turn off my node and I’ll tell here when it it back up.

[edit] I’m back computing nodes :slight_smile:


I just goOffline 2 hours ago because p2p.legal domain is migrating from online.net to Gandi, during a few days.
Hugo is also goOffline cause a space disk to increase.

So actually Elois is the only validator…

1 Like

You don’t need to have a reachable dns, you can set up your libp2p endpoint with an IP by adding this line in your compose:

  - "--public-addr=/ip4/${SERVER_IP}/tcp/30333/p2p/${PEER_ID}"

I just configured my node as a validator and went online using ğcli.

ğcli has some new commands:

  • update-keys: rotate keys and set session keys
  • go-online: checks whether the accounts has session keys before sending the extrinsic
  • go-offline

:+1: :+1: :+1: !

i’m online again.

Think to name your nodes: Polkadot Telemetry

      - "--name"
      - "poka-validator"
1 Like

I did goOffline because my server did not have disk space left. We really have to welcome more smith for the next iteration. This will be a subject for the next monthly video meeting on December 18.

1 Like

More smiths won’t solve the storage problem… do you have archive mode enabled?

Edit: my node uses 2GB.

No, I enabled pruning. Duniter still takes a bit of space, but I’m really short, I have to move some stuff.

5.1G	./duniter-v2s

Here are the associated events:

1 Like

I am interested to start as a smith in next ĞDev iteration.

Btw, I think English speakers do not understand what’s the meaning of this word.


Je viens de refactoriser un peu le dossier customs de py-g1-migrator.

Désormais il vous suffit de faire une MR sur ce fichier json pour vous ajouter au groupe smiths (membres forgerons) de la prochaine ĞDev.

Vous devez également impérativement vous ajouter dans ce fichier json de switch.

J’ai réfléchie pour merger un peu ça, importer tous les smiths automatiquement vers le fichier switches, mais ça implique de déclarer les clés Ğ1v1 ET v2 dans le json smiths, qui lui est juste la partie json attendu par Duniter qui n’a besoin d’aucune de ces 2 clés.
On est obligé de faire ainsi pour moi si on veut garder un truc propre et simple.

Les MRs seront directement acceptés pour tous ceux qui ont déjà été smiths depuis le début de la ĞDev1.
Les autres, il faudra nous assurer que vous avez le matériel suffisant, compris la licence forgerons, et les compétences techniques pour faire tourner un noeud forgerons correctement.

Le prochain reboot de demain se fera à partir des données issues de py-g1-migrator au moment t.

Si vous voulez devenir smith par certification entre 2 reboots, alors vous devez au choix soit:

  • au préalable avoir rempli le json de switch (pas celui de smith)
  • simplement d’abords migrer votre compte membre Ğ1v1 vers un portefeuille V2 via Ğecko mobile ou un autre client v2s compatible, avant de demander à vous faire certifier cette adresse :slight_smile:

Le consumer sur chaque smith en blockchain empêche la migration de l’identité tant qu’elle est dans ce groupe.

Vous pouvez également faire une MR pour vous ajouter au committee technique.

Enfin, vous pouvez ajouter des identités membres en plus de la votre, si jamais vous voulez tester à fond l’app et duniter en certifiant plsuieurs comptes chaques jours, ect…, dans ce fichier json.

Pour le moment il n’y en a qu’une, c’est ChristCosmic ^^

Pour rappel, la sudokey est toujours celle de @HugoTrentesaux .

Est-ce que cette procédure est claire ? N’hésitez pas si ya des points floues je sais pas.
Est-ce que vous êtes OK pour l’appliquer pour les prochains reboots de ĞDev ?

edit: je viens de mettre à jours le readme: README.md · master · tools / py-g1-migrator · GitLab


Too late to join directly in the genesis because the ĞDev was started today at 2022-12-13T01:35:24 . You can still join as a mirror and we will smith-certify you.

There still some work to do on the documentation but you can read docs/user/smith.md · master · nodes / rust / Duniter v2S · GitLab.

I will write temporary documentation to join the network until we fix the pipeline to publish a docker image with correct bootnodes in embeded chainspec.

1 Like

Temporary tutorial to join ĞDev5

Until we publish a proper Docker image with embedded chainspecs (bootnodes with correct peer id and latest genesis), this is the process to join ĞDev5:

  • follow this tutorial: docs/user/smith.md · master · nodes / rust / Duniter v2S · GitLab
    • get and read docker-compose.yml example file
    • generate your node keys with commands given in docker-compose.yml example file
    • fill your .env file with SERVER_DOMAIN, PEER_ID, and VALIDATOR_PEER_ID as mentioned in docker-compose.yml
    • create your duniter-rpc and duniter-validator folders
  • replace DUNITER_CHAIN_NAME=gdev by DUNITER_CHAIN_NAME=/var/lib/duniter/gdev-raw.json in your docker-compose file
  • download the gdev-raw.json file with the link below
  • replace the bootnode by "/dns/gdev.p2p.legal/tcp/30334/p2p/12D3KooWMYJzk1FfBZjEAuEvwUnH2Luj5Bq4ouLX1tgZBPpFegaB" in gdev-raw file
  • put your gdev-raw.json in your duniter-* folders
  • start your node

When you have a mirror node, we will tell you how to become smith (and write the doc).

Temporary tutorial to join ĞDev5 n°2

I build locally a new Duniter binary (not yet the Docker image).

logo download here

You can run it with

./duniter --help # to get the manual
# to start a node with low history 
./duniter --chain gdev --pruning 10 --name local_node
1 Like
poka@pokaMint-desktop:~$ cd Téléchargements
poka@pokaMint-desktop:~/Téléchargements$ ./duniter --help
./duniter: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./duniter)
./duniter: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./duniter)
./duniter: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./duniter)

$ sudo apt update
$ sudo apt install libc6-amd64 libc6-dev libc6-dbg
$ ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.9) 2.31
$ cat /etc/issue
Linux Mint 20.3 Una \n \l

Sorry but I don’t want to do this: libraries - How to Install glibc 2.32 when I already have glibc2.31 - Ask Ubuntu

I prefere to stay stuck on my system packages.
And I don’t need rolling release linux distribution, i’m happy with Mint.

1 Like

Ok, I do not know how to make a portable binary with Rust. Maybe @tuxmain you know? Anyway moul and 1000i100 are working on fixing the CI that will allow to publish docker images (cf Need to fix GitLab CI for Duniter-v2s).

You can build it for the target you want. If your default target is x86_64 linux, cargo build --release is enough for x86_64 linux with glibc version greater or equal to yours.

If you want portability with older glibc, it’s complicated. The easiest is still to build on an oldstable or oldoldstable Debian.

If you want cross-compiling, I don’t remember the options but it’s definitely possible. (may be complicated due to wasm) You’ll find tutorials out there. (or the thread about compiling on x86_64 for arm)

1 Like

Thanks for your answer, we might want to provide packages for debian, arch, fedora… So that we build with the latest available glibc on these systems. @tuxmain did you use a docker image or a custom binary? Do you want to join the smiths? Currently we only have two. As soon as we fix the docker image we can ask smiths-GDev to start forging blocks.

There are rust tools for building packages for Debian and Arch, i think we’ve been using at least one of them in Dunitrust’s CI.

Yes i’ll restart my node tonight, this afternoon it’s the algebra exam :grimacing: :face_with_head_bandage: