Ğcli s'adapte au runtime 800 : nouveau parcours forgeron

Il y eu beaucoup de modifications dans Duniter, Ğcli est le premier client à s’adapter avant même le lancement d’un nouveau réseau de test ! (en même temps ce sera bien pratique de l’avoir)

Voici donc un aperçu du nouveau parcours forgeron :

  • Alice envoie une invitation forgeron à Dave
  • Dave accepte l’invitation forgeron
  • Alice, Bob et Charlie certifient Dave
  • à la deuxième certification, Dave est “promu” forgeron et peut désormais changer ses session keys et appeler go_online

On remarque déjà un “bug” de Duniter qui émet l’événement PromotedToSmith pour toutes les certification au dessus du seuil. Rien de grave, mais ce sera perturbant pour les indexeurs.


Je ne vous montre pas le nouveau parcours d’identité parce que l’oracle de distance est requis et que ça prend du temps (2h car deux sessions), mais en gros ça donne :

# création d'identité
gcli -s Alice identity create 5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw 
# transfert de ĞD pour couvrir les frais de confirmation d'identité
gcli -s Alice account transfer 1000 5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw
# confirmation d'identité
gcli -s Eve identity confirm Eve
# certifications
gcli -s Bob identity certify 5
gcli -s Charlie identity certify 5
# demande d'évaluation de la règle de distance
gcli -s Charlie identity request-distance-evaluation-for 5
# après évaluation, l'adhésion est automatique
5 Likes

Vu, ticket #176 pour tracer.

1 Like

Je déplace ici une discussion pertinente sur le sujet.

Vu que tu es plutôt réactif sur la ĞDev, et que tu as déjà déployé un nœud validateur, est-ce que tu veux devenir Smith ? C’est l’occasion de tester la nouvelle palette smith-members aussi :slight_smile:

Il faut certainement quelques développements côté ĞCli, @HugoTrentesaux ?

2 Likes

Normalement c’est bon (Ğcli s'adapte au runtime 800 : nouveau parcours forgeron), il faut juste utiliser la dernière version publiée par la CI du bounty (🎈 Publication automatique de ğcli). Et configurer pour utiliser un bon nœud tant que coinduf.eu n’est pas sur le bon réseau (Duniter | Ğcli). Je vais filmer ça en vidéo et traduire le tuto en français (Duniter | Become smith). Et aussi il y aura des incohérences tant que les indexeurs subsquid ne seront pas rebootées sur le bon réseau, mais on peut utiliser l’option --no-indexer pour ne pas l’utiliser.

Il faut que j’essaye de conserver le même peer id pour coinduf.eu pour éviter de casser les bootnodes. Normalement récupérer le contenu du keystore devrait suffire, mais je garantis pas vu que je suis pas super à l’aise avec docker.

edit

Ah non c’est déjà pas le bon apparemment :

duniter-gdev-smith-duniter-smith-1  | 2024-02-06 12:43:34 💔 The bootnode you want to connect to at `/dns/gdev.coinduf.eu/tcp/30333/p2p/12D3KooWFseA3B66eBzj4NY5ng3Lb2U3VPnKCi3iXYGYUSAahEw7` provided a different peer ID `12D3KooWMv9X3ZocyrE82qt22LnDPREhP2j9Tr4rrfBwKZ44LUP3` than the one you expect `12D3KooWFseA3B66eBzj4NY5ng3Lb2U3VPnKCi3iXYGYUSAahEw7`.    

et si vous avez ça, c’est normal, c’est les autres noeuds qui essayent de se connecter à vous :

duniter-gdev-smith-duniter-smith-1  | 2024-02-06 12:44:06 Report 12D3KooWN7QhcPbTZgNMnS7AUZh3ZfnM43VdVKqy4JbAEp5AJh4f: -2147483648 to -2147483648. Reason: Genesis mismatch. Banned, disconnecting.    
duniter-gdev-smith-duniter-smith-1  | 2024-02-06 12:44:06 Report 12D3KooWJeeT8huDVMEKJokJ9ZcVCmDU4CxFsp19XFzFhNEQqAGZ: -2147483648 to -2147483648. Reason: Genesis mismatch. Banned, disconnecting.    
duniter-gdev-smith-duniter-smith-1  | 2024-02-06 12:44:07 Report 12D3KooWGvtbSM9SXMTAukT9zQo26QWegPcvP7pRhPU4HxK151Sx: -2147483648 to -2147483648. Reason: Genesis mismatch. Banned, disconnecting.   

mon nouveau peerid est 12D3KooWHW1JXJNTVLRqtXmu6R7W9ohpRHcJGHNmw6wpVTukNAgZ

`/dns/gdev.coinduf.eu/tcp/30333/p2p/12D3KooWHW1JXJNTVLRqtXmu6R7W9ohpRHcJGHNmw6wpVTukNAgZ

Salut @cgeek , mon objectif est de vous accompagner au mieux de mes dispo et compétences. J’ai vu avec @HugoTrentesaux ce week-end pour devenir smith lors de la nouvelle Gdev. J’ai donc découvert Gcli, en 2 minutes. Si ne n’arrive pas à tout faire en autonomie et que je demande de l’accompagnement pour vos test, je me porte volontaire à tout ce que vous voulez !! :stuck_out_tongue_winking_eye:

3 Likes

Je viens de publier une version 0.2.4 de gcli et mettre mes nœuds sur le nouveau réseau.

Tu peux télécharger la dernière version sur la page de release : Releases · clients / Rust / Ğcli-v2s · GitLab (merci encore @poka :heart:).

Ensuite j’ai fait :

# pour avoir les infos sur ton identité
$ gcli --no-indexer identity get -u JosselinFERREIRA
Identity index: 12950
Username:       JosselinFERREIRA
Address:        5H6AjTQZtuzvGbXBFG7zw6eZg9EkCKQurWD26XRTcznghsU1
Status:         Member

# pour te certifier sur la toile normale
$ gcli identity certify 12950
transaction submitted to the network, waiting 6 seconds...
new certification 344 → 12950

# pour t'inviter sur la toile forgeron
gcli smith invite 12950
transaction submitted to the network, waiting 6 seconds...
Pallet error: SmithMembers::InvitationIsAOnlineSmithPrivilege

Comme on peut le voir, je ne peux pas encore t’inviter parce que mon nœud forgeron n’est pas encore online, mais normalement il devrait l’être prochainement, je te dis ^^

[edit] en fait non, la pipeline de la v0.2.4 a échoué, la v0.2.3 peut marcher, il faut essayer, normalement il y a une seule commande qui devrait être cassée c’est gcli blockchain runtime-info mais je sais pas vu que j’ai pas essayé

2 Likes

de toute facon, en téléchargeant la real. v0.2.3, et en faisant ; ./gcli -V j’obtiens 0.2.2 … y a des nœuds dans les lacets

1 Like

C’est bon j’ai invité @joss.rendall à devenir Smith :slight_smile:

Commandes effectuées (je pars de mon compte Duniter v1) :

Installation de Ğcli

git clone https://git.duniter.org/clients/rust/gcli-v2s.git
cargo build

Changement de clé Duniter v1 vers Duniter v2

./target/debug/gcli -S cesium identity change-owner-key -s "<MNEMONIC_EN_CLAIR>"
./target/debug/gcli -S cesium account transfer 100000 5E6q47RRGZU15LjUiBTm2DZjpqFKAjRNafYS8YV8AzTQZtLG

Invitation de @joss.rendall

./target/debug/gcli --no-indexer identity get -u JosselinFERREIRA 
./target/debug/gcli smith invite 12950

Et voilà !

Maintenant il te faut accepter cette responsabilité avec un gcli smith accept, puis nous pourrons te certifier :medal_sports:


@Pini @moul @tuxmain @1000i100 @vit avec cette nouvelle ĞDev vous êtes Smith offline par défaut au Genesis, ce qui signifie que vous avez émis et reçu automatiquement 6 certifications mais que vous n’avez pas encore de nœud online.

Ce statut ne dure “que” 3 semaines : sans action de votre part, vous perdrez vos 6 certifications reçues et il faudra toutes les ré-obtenir. Le seul moyen pour repousser ce délai : installer un nœud online. Tant que votre nœud est online, vous êtes tranquilles. Dès que vous repassez offline, le délai de 3 semaine recommence à courrir.

Voilà les règles du jeu :slight_smile:

6 Likes

suite à l’invitation envoyée par @cgeek pour devenir Smith, j’ai téléchargé Gcli, je pense avoir fait la config correctement à l’aide de :
./gcli --network gdev -S cesium config save

on voit bien la clé v2 issue de mon compte cesium dans le fichier config:
./gcli config show


duniter endpoint wss://gdev.p2p.legal:443/ws
indexer endpoint https://subsquid.gdev.coinduf.eu/graphql
address 5H6AjTQZtuzvGbXBFG7zw6eZg9EkCKQurWD26XRTcznghsU1 (no secret)


mais c’est à la variable “-s” que je coince pour le secret ! si je mets quelque chose lors du save config, il y a toujours (no secret).
et si je lance la commande de @cgeek : gcli smith accept, Gcli me demande le Mnemonic que je n’ai jamais pu créer car le compte est issu de G1v1 et pas d’un création nouvelle.
j’ai beau saisir cette commande pour le fixer :
./gcli -S cesium identity change-owner-key -s "<MNEMONIC_EN_CLAIR>"

bref je n’ai aucune idée du MNEMONIC à utiliser et je ne pense vraiment pas en avoir eu un à retenir.


Voila le boulet !!, z’avez accepté mon aide mais c’est plutôt moi qui ai besoin de vous :roll_eyes: merci de votre retour, il y a sûrement quelque chose qui m’échappe !!

2 Likes

Dans Duniter v2 il est possible de changer la clé qui contrôle l’identité. La raison de cette fonctionnalité est de permettre d’utiliser une autre méthode de génération des clés à la fois plus sécurisée et mieux intégrée à l’écosystème. C’est l’objectif de la commande “change owner key”.

Ce n’est bien entendu pas obligatoire, et pour utiliser ton compte membre généré avec la méthode identifiant / mot de passe tu peux simplement faire :

$ gcli -S cesium smith accept
Cesium id: 
Cesium password:

Ğcli te demandera alors identifiant et mot de passe systématiquement. Ğcli ne gère pas encore de fichier de trousseau chiffré, et il ne sait actuellement que sauvegarder un mnemonic en clair, et pas de couple id/mdp utilisé pour générer les clés “v1”. Donc pour l’instant, si tu utilises ce compte, tu devras rentrer tes identifiants pour chaque action en “écriture”. Par contre, en “lecture” il sait quelle est ton adresse :

# pas besoin de rentrer d'adresse ou d'identifiants
# car gcli a l'info dans son fichier de config
gcli account balance

Au contraire ! Comme je t’ai expliqué nous avons besoin de toi ! C’est avec ce genre de discussions que je sais quelles fonctionnalités développer en priorité dans les outils. Par exemple là, je vais prioriser le ticket #17. Et toutes ces discussions où nous apportons des réponses détaillées sert à constituer une base de connaissance à destination des futurs visiteurs du forum, je vais donc déplacer cette portion de discussion dans un sujet avec un titre plus approprié ^^

2 Likes

Merci, @HugoTrentesaux , promis j’arrête de m’excuser de mon niveau d’autonomie ! mais avec le Gcli que j’utilise, voici la réponse à ./gcli -S cesium smith accept

Cesium id:
Cesium password:
Subxt(Metadata(PalletNameNotFound(“SmithMembers”)))

Error: Subxt(Metadata(PalletNameNotFound(“SmithMembers”)))

j’ai pris la release 0.2.3 mais la command -V annonce 0.2.2 alors j’ai suivi la commande de Cgeek pour le recomplier mais elle n’est pas allé à son terme

Je suppose que c’est ton gcli qui n’est pas à jour. Dans mon exemple je l’ai recompilé à la main (git clone + cargo build).

1 Like

4 posts were split to a new topic: Build de ĞCli

@HugoTrentesaux : je viens de mettre à jour release-new-runtime.md. Ce serait bien qu’au prochain reboot ce soit toi qui prenne la main, afin de valider que l’on soit au moins deux à maîtriser le processus.

3 Likes

Avec Gcli v0.2.5 : ./gcli -S cesium smith accept
result :
transaction submitted to the network, waiting 6 seconds…
accepted smith invitation InvitationAccepted { idty_index: 12950 }
:clap: :pray:

2 Likes
# je te certifie ;)
gcli smith certify 12950
transaction submitted to the network, waiting 6 seconds...
new smith certification SmithCertAdded { receiver: 12950, issuer: 344 }
2 Likes

Je n’ai jamais utilisé gcli auparavant.
Je viens de télécharger le binaire v2.5.
Je l’ai déployé sur un Linux x86_64.
Mon nœud tourne sur un linux aarch64.

J’imagine qu’il faut configurer le nœud dans gcli.
Existe-t-il une documentation ?

1 Like

@daigongen , je pars de zero comme toi avec ces docs comme point de départ

https://duniter.org/wiki/duniter-v2/

./target/debug/gcli --no-indexer smith certify 12950                                                                                                      Wed Feb  7 21:23:05 2024
transaction submitted to the network, waiting 6 seconds...
new smith certification SmithCertAdded { receiver: 12950, issuer: 34 }

Hop ! Une deuxième :slight_smile:

Et voilà @joss.rendall tu es devenu Smith !

12,950 => {
    "status": "Smith",
    "expiresOn": 336,
    "issuedCerts": [],
    "receivedCerts": [
        34,
        344
    ]
}

Plus qu’à définir tes session keys et à passer online ! Ceci dit, c’est peut-être la partie la plus technique. :man_mechanic:

1 Like