Nœud SMITH Comment vérifier que l'ajout de la clé a bien été fait?

En suivant la documentation become smith j’avoue que ce n’est pas super clair pour l’activation de la clé - et surtout comment vérifier qu’elle est bien présente avant de tenter le go-online ?

J’ai bien créé une clé via PolkadotJS connecté en RPC à mon noeud SMITH (appel author > rotateKeys())

J’ai regardé l’appel “Extrinsics” authorityMembers > setSessionKeys; mais je trouvais assez error-prone de devoir split ma clé en 4 parties pour les paramètes.

Du coup, j’ai reconfiguré mon GCli pour utiliser mon noeud SMITH (histoire d’être sur, mais si c’est pour des appels “extrinsic” je suppose que ça ne change rien).

J’ai tenté avec GCli:

gcli smith set-session-keys 0x<theWholeKeyFromRotateKeys>
thread 'main' panicked at src/commands/smith.rs:78:22:
wrong hexadecimal: InvalidHexCharacter { c: 'x', index: 1 }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrac

# Du coup, 2ème essais sans le "0x" du début
gcli smith set-session-keys <theWholeKeyFromRotateKeysWithout0x>
Enter password to unlock account 5HE6gH87fVuGj6akXneNceBtgEiaUZua43TJbVBRQTT77gp6
Password:
# Aucun retour - c'est sans doute passé ?

Dans la documentation il est ensuite dit:

Before calling authorityMembers.goOnline(), you can double-check that your validator node actually has the session keys you declared and is syncrhonized to the network.

Mais la je ne sais pas trop quel appel on sous-entend pour vérifier ?

Est-ce que c’est sur le noeud lui même l’appel RPC author > hasSessionKeys(...) ?
Si c’est le cas, j’avais vérifier avant.

Par contre, vu que GCli ne m’a rien répondu; comment être sur que ma commande est bien passée ?

1 Like

Pour effectuer les actions de forgerons, il faut que tu te connectes avec le client via l’API RPC unsafe de ton nœud validateur.
Ensuite, un gcli smith update-keys devrait faire l’affaire. Il me semble que la commande set-session-keys ne fait plus sens.

Tu peux suivre les blocs dans l’explorateur de blocs de Polkadot.js, si ta requête est passée tu la verras…

Dans PolkadotJS → données de la chaîne → session → keyOwner (décocher “inclure l’option”)

Il faut vérifier que tes clés sont bien présentes dans la liste, associées à ton adresse ss58.

2 Likes

Effectivement, je retrouve bien ma clé séparée en 4 et associée à mon compte Nicolas80-GDev(sa clé SS58) dans le retour de cet appel:

[
  ...
  [
    [
      [
        imon
        0x<3ème quart de clé>
      ]
    ]
    5HE6gH87fVuGj6akXneNceBtgEiaUZua43TJbVBRQTT77gp6
  ]
  ...
  [
    [
      [
        audi
        0x<4ème quart de clé>
      ]
    ]
    5HE6gH87fVuGj6akXneNceBtgEiaUZua43TJbVBRQTT77gp6
  ]
  ...
  [
    [
      [
        gran
        0x<1er quart de clé>
      ]
    ]
    5HE6gH87fVuGj6akXneNceBtgEiaUZua43TJbVBRQTT77gp6
  ]
  ...
  [
    [
      [
        babe
        0x<2ème quart de clé>
      ]
    ]
    5HE6gH87fVuGj6akXneNceBtgEiaUZua43TJbVBRQTT77gp6
  ]
  ...
]

Donc il semblerait que l’appel gcli smith set-session-keys était bien passé.
Mais ce n’est pas le plus user-friendly pour vérifier :wink:

Et il faudrait probablement compléter la documentation pour préciser comment faire la vérifiation.

1 Like

Au final, c’est passé avec gcli smith set-session-keys; mais s’il y a une façon plus simple avec une autre commande, il serait sans doute utile de le préciser dans la documentation :slight_smile:

Je vois plusieurs problèmes :

  1. Problème de structure de documentation. La partie théorique correspondait mieux à l’ancienne gestion des session keys, mais moins à l’actuelle, il faut la revoir.
  2. Manque de documentation concrète. Les outils ont évolué et ne sont pas tous présentés, je vais ajouter ça.
  3. Manque de clarté sur le comportement de Ğcli. À la fois sur les arguments attendus et sur l’absence de retour.
  4. Pas d’indication sur comment vérifier que tout s’est bien passé.

Oui, un appel RPC s’adresse à un nœud. Encore plus un appel unsafe. Il faudrait refaire une documentation générale sur les bases théoriques qui donnent des repères.

2 Likes

J’ai revu la documentation, voici ce que j’ai modifié dans le commit 113dca793152f3574ca75462956a7d9b4317df3e.

  1. Modification de la section “set session keys” pour expliquer la théorie et rediriger vers les actions à faire en pratique.
  1. Ajout de documentation pratique, notamment une page sur l’utilisation de gcli dans le contexte d’un noeud forgeron.
  2. Ajout d’un warning sur le comportement de Gcli, il faudra le régler plus tard.
  3. Ajout d’une section “Check that session keys are present”, mais ça reste avancé, c’est juste pour les gens qui ont vraiment envie de vérifier, mais c’est pas indispensable.
3 Likes

Je viens de tenter la procédure plus simple pour mettre la clé de session pour mon nouveau noeud Smith avec GCli (pour mon identité Nicolas80)

gcli smith update-keys
Enter password to unlock account 5Funkng8dL397H9ZEJ9sXDjFhStCqRYUj1a62ngcrEMy7ivn
Password:
transaction submitted to the network, waiting 6 seconds...

@HugoTrentesaux Par contre, il y a un petit soucis dans la doc polkadotjs smith, il n’y a pas moyen de vérifier la présence de la clé avec Developer > chain state > session > queued keys; je pense que la clé ne sera visible à cet endroit qu’après la mise Online du noeud.

Par contre, je retrouve bien ma clé splittée en 4 avec l’appel Developer > chain state > session > keyOwner (uncheck "include option").

gran
0xaa29fdcff5462e93123d7d9a775941718c3daa6fd2f0fdb49fc8227d6fbb795c

babe
0xf2dd11126fd944e71c2818e124a290d93b9953f4a7a667aa0d7279919d7f0016

imon
0x00311c3979f13cb454d8f40daeb027bd522a3fd4ec71497ceb4b7c3ac4c1c97b

audi
0xeaec253af2e89ec9e7db727521d66722eb59227b404a31b1bed8994cce720a59

Du coup, je peux la recomposer et vérifier qu’elle est bien sur mon noeud Smith avec un appel Developer > RPC call > author > hasSessionKeys

0xaa29fdcff5462e93123d7d9a775941718c3daa6fd2f0fdb49fc8227d6fbb795cf2dd11126fd944e71c2818e124a290d93b9953f4a7a667aa0d7279919d7f001600311c3979f13cb454d8f40daeb027bd522a3fd4ec71497ceb4b7c3ac4c1c97beaec253af2e89ec9e7db727521d66722eb59227b404a31b1bed8994cce720a59

=> true

Edit:
Maintenant que mon noeud Smith est online, je trouve bien les infos dans l’appel Developer > chain state > session > queued keys:

  [
    5Funkng8dL397H9ZEJ9sXDjFhStCqRYUj1a62ngcrEMy7ivn
    {
      grandpa: 0xaa29fdcff5462e93123d7d9a775941718c3daa6fd2f0fdb49fc8227d6fbb795c
      babe: 0xf2dd11126fd944e71c2818e124a290d93b9953f4a7a667aa0d7279919d7f0016
      imOnline: 0x00311c3979f13cb454d8f40daeb027bd522a3fd4ec71497ceb4b7c3ac4c1c97b
      authorityDiscovery: 0xeaec253af2e89ec9e7db727521d66722eb59227b404a31b1bed8994cce720a59
    }
  ]
1 Like

@HugoTrentesaux I created a MR for it:

But I cannot verify the image is properly taken into account from the gitlab page (but I used same relative path)

Edit: avec zola serve en local cela semble correct

1 Like

Impeccable ! Tu as tout à fait raison, c’est dans ce champ qu’il faut regarder :slight_smile:
Merci pour la MR, c’est fusionné !

1 Like