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

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é ^^

1 Like

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

Hmm … tiens d’ailleurs c’est curieux ça :frowning: je viens de créer #194.

2 Likes

Merci !! donc suis pas au bout process encore :saluting_face:

@cgeek , j’ai un peu avancé en me connectant au RPC :

reste à trouver la doc pour faire les manipulations concernant les Keys !!

2 Likes

Hello,

J’ai redémarré mes deux noeuds sur le runtime 800, mais je n’arrive pas à importer mon compte v1. Est-ce faisable via gcli ? Car avec tikka ça me donne ça :

Traceback (most recent call last):
  File "/home/pini/projets/tikka/tikka/slots/pyqt/entities/worker.py", line 43, in run
    self.call()
  File "/home/pini/projets/tikka/tikka/slots/pyqt/windows/v1_account_import_wizard.py", line 279, in fetch_source_from_network
    self.application.identities.fetch_from_network(
  File "/home/pini/projets/tikka/tikka/domains/identities.py", line 142, in fetch_from_network
    identity = self.network.get_identity(index)
  File "/home/pini/projets/tikka/tikka/adapters/network/identities.py", line 69, in get_identity
    removable_on=int(result["removable_on"].value),
  File "/home/pini/.cache/pypoetry/virtualenvs/tikka-td9PeKy3-py3.9/lib/python3.9/site-packages/scalecodec/base.py", line 1029, in __getitem__
    return self.value_object[item]
KeyError: 'removable_on'
Abandon

EDIT: Après moulte tâtonnements j’ai fini par m’en tirer avec gcli. Car Gecko ne voulait rien savoir non plus (attente infinie sur la page d’import de compte v1).

$ bin/gcli --no-indexer identity get -u Pini
Identity index: 12949
Username:       Pini
Address:        5EVRzJDpDxFNU9cbrGPdQD5sRsV2uiKMPNgr1sbRDX4X6Ex8
Status:         Member
$ bin/gcli --no-indexer -a 5EVRzJDpDxFNU9cbrGPdQD5sRsV2uiKMPNgr1sbRDX4X6Ex8 -S cesium identity change-owner-key -s <mnemonic//N>
Cesium id: 
Cesium password: 
transaction submitted to the network, waiting 6 seconds...
identity changed owner key IdtyChangedOwnerKey { idty_index: 12949, new_owner_key: AccountId32([182, 30, 187, 50, 207, 130, 127, 113, 69, 89, 76, 59, 194, 98, 30, 131, 245, 235, 238, 14, 58, 162, 138, 85, 243, 203, 16, 208, 146, 124, 166, 88]) }
$ bin/gcli --no-indexer identity get -u Pini
Identity index: 12949
Username:       Pini
Address:        5GBVhdJUdsGhxozu6R8X6x2pTZvuuW46s7JSU4tiW7Zd3WmY
Status:         Member
1 Like

À noter que tu peux également utiliser duniter-connect (Extension duniter-connect (fork de polkadot{.js})) pour le faire depuis l’app polkadotjs.

En effet j’avais complètement oublié cette possibilité.

Est-il possible à un forgeron actuel de m’inviter en tant que forgeron maintenant ?

1 Like

J’ai voulu le faire, mais on t’a mis dans le genesis, je crois ! À noter qu’être forgeron n’empêche plus la migration d’identité depuis smith-members il me semble. Par contre tu es toujours authority member avec 5EVRzJDpDxFNU9cbrGPdQD5sRsV2uiKMPNgr1sbRDX4X6Ex8, je crois qu’il faut faire go-online avec cette clé. J’ai plus tout le détail en tête.

Ah c’est possible ça d’avoir son identité avec une clef et être forgeron avec une autre ?

Apparemment non :

$ bin/gcli --no-indexer -u ws://localhost:9944/ws -a 5EVRzJDpDxFNU9cbrGPdQD5sRsV2uiKMPNgr1sbRDX4X6Ex8 -S cesium smith update-keys
Cesium id: 
Cesium password: 
transaction submitted to the network, waiting 6 seconds...
Pallet error: AuthorityMembers::MemberIdNotFound

Error: Subxt(Runtime(Module(ModuleError(<AuthorityMembers::MemberIdNotFound>))))

Voici ce que me retourne polkadotjs :
2024-02-09_19-14

L’adresse et l’index ne correspondent plus.

1 Like

Effectivement, il y a un trou dans la raquette. Tu peux utiliser ta nouvelle clé, mais c’est l’ancienne qui apparaîtra comme validateur. C’est sans conséquences on dirait, je vais vérifier et faire un ticket de toute façon.

Ok, c’est un problème de configuration de la pallet session, on utilise un AccountId, ce qui n’a pas vraiment de sens puisque dans Duniter c’est le IdtyIndex qui fait référence.

Et tu peux essayer de faire go_online avec ta nouvelle clé ? (à première vue sur le code, ça devrait marcher, en fait c’est quasiment ce qui est arrivé à cgeek).

2 Likes