# Nœud forgeron avec problème de clé de session

**URL:** https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143
**Category:** Duniter-v2
**Created:** [2 April 2024 10:11 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143 "2024-04-02T10:11:35Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [2 April 2024 10:11 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/1 "2024-04-02T10:11:35Z")

</div>

Mon nœud validateur v2s tournait dans `podman-compose` et ça se passait bien.  
Depuis que je l’ai passé à l’utilisation de [Quadlet](https://forum.duniter.org/t/podman-et-buildah-cest-docker-sans-docker/6062/9) (`podman` + `systemd`), mon identité était sortie des `authorities`.  
J’ai tenté à plusieurs reprises de le faire re-rentrer, mais en vains, ça échoue.  
Un `gcli smith go-online`, j’attends que deux `epoch` passent, et là il détecte que mon nœud est hors ligne, du coup infraction `offence` et mon identité est expulsée des forgerons :

 ![Screenshot from 2024-04-01 23-29-57](https://forum.duniter.org/uploads/default/original/2X/9/9e42a313c53f770012055732942b34158043764c.png)

À noter que mon nœud est bien visible dans Polkadot Telemetry.

* * *

Autre sujet peut-être lié, après plusieurs manipulations, j’ai remarqué des problèmes que j’ai eus précédemment avec plus d’accès réseau à l’intérieur du conteneur. Un redémarrage de ma machine (host) a résolu le problème.

> [@Différence réseau entre podman et podman-compose: runtime-700](https://forum.duniter.org/t/difference-reseau-entre-podman-et-podman-compose-runtime-700/11712):
>
> Quand je l…

* * *

Je pourrais de nouveau tenter avec `podman-compose`, mais je n’ai pas réussi. Je pourrais tenter sans conteneur. Avez-vous une idée de la raison pour laquelle mon nœud pourrait être détecté hors ligne ? Est-ce via l’API `p2p` `30333` que cette vérification a lieu ?

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [2 April 2024 13:15 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/2 "2024-04-02T13:15:13Z")

</div>

Ce qui est étrange, c’est que dans la [télémétrie](https://telemetry.polkadot.io/#list/0xc184c4ccde8e771483bba7a01533d007a3e19a66d3537c7fd59c5d9e3550b6c3), il semble que ton nœud forgeron “`moul-smith`” soit bien connecté à huit pairs (p2p, via le port 30333 normalement). Donc on dirait que ce n’est pas un problème réseau. Mais peut-être qu’il y a un problème de session keys ?

`session.nextKeys(5HDikVWZ2xHfqvVVFwex5zmRsH4LuR3KqMgKZYEbCSjStSKw)` me donne les clés suivantes :

```json
{
  grandpa: 0x35dd796a230559978492e3461e7165b1840e8f8be276408aa011b48a6a69e373
  babe: 0x1ac62a462b0576c7592cfd31c2f49053925b62644c7739acd7a3a94c7bc4cd41
  imOnline: 0xec1972a6b57c5d0b0bfa128bfe7f247a389860013e0bc27a5cfd28ec22ef2b49
  authorityDiscovery: 0xa2f62460b5f1bcd4b9c16000bdc13d4dace9b8a939497479312313a7651b4931
}

```

Si tu te connectes à ton nœud forgeron et lui demande :

```auto
author.hasSessionKeys(0x35dd796a230559978492e3461e7165b1840e8f8be276408aa011b48a6a69e3731ac62a462b0576c7592cfd31c2f49053925b62644c7739acd7a3a94c7bc4cd41ec1972a6b57c5d0b0bfa128bfe7f247a389860013e0bc27a5cfd28ec22ef2b49a2f62460b5f1bcd4b9c16000bdc13d4dace9b8a939497479312313a7651b4931)

```

il devrait te dire `true` s’il a bien les clés privées correspondantes.

> **pour moi**
>
> ```auto
> {
> grandpa: 0x6414105bc362356bf044458b76cbfeb92ab9334d54eca129dff9d33af584129f
> babe: 0x0c52ed846be2ae2dd9d624ffe8f47705b58c14f077568d6d220a2ddd181dbe43
> imOnline: 0x42c0f2bb252d90f3a6bdb8e1a5377bb0f8967ddb81e85f0b9cc2ab6232c3d456
> authorityDiscovery: 0x8631823e4f275da2782a75f38969f4299e61c35a06ae6cf9ffcbca76f268fb4a
> }
> 
> ssh -NL 9944:localhost:9944 trentesaux
> 
> author.hasSessionKeys(0x6414105bc362356bf044458b76cbfeb92ab9334d54eca129dff9d33af584129f0c52ed846be2ae2dd9d624ffe8f47705b58c14f077568d6d220a2ddd181dbe4342c0f2bb252d90f3a6bdb8e1a5377bb0f8967ddb81e85f0b9cc2ab6232c3d4568631823e4f275da2782a75f38969f4299e61c35a06ae6cf9ffcbca76f268fb4a)
> 
> true
> 
> ```

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [2 April 2024 13:37 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/3 "2024-04-02T13:37:48Z")

</div>

> [@HugoTrentesaux](#):
>
> session.nextKeys(5HDikVWZ2xHfqvVVFwex5zmRsH4LuR3KqMgKZYEbCSjStSKw)

Je n’arrive pas à exécuter cette commande dans `Chain state`, je rajoute mon adresse (Moul dans mes contacts) et le bloc courant copié de Telemetry. Puis, je ne sais pas sur quoi cliquer pour exécuter la commande. Faut-il être sudo ?

> [@HugoTrentesaux](#):
>
> Si tu te connectes à ton nœud forgeron et lui demande :
> 
> ```auto
> author.hasSessionKeys(0x35dd796a230559978492e3461e7165b1840e8f8be276408aa011b48a6a69e3731ac62a462b0576c7592cfd31c2f49053925b62644c7739acd7a3a94c7bc4cd41ec1972a6b57c5d0b0bfa128bfe7f247a389860013e0bc27a5cfd28ec22ef2b49a2f62460b5f1bcd4b9c16000bdc13d4dace9b8a939497479312313a7651b4931)
> 
> ```
> 
> il devrait te dire `true` s’il a bien les clés privées correspondantes.

J’ai bien `false` avec cette clé de session.

> [@HugoTrentesaux](#):
>
> Mais peut-être qu’il y a un problème de session keys ?

Comment mettre la bonne clé de session sur mon nœud ? `gcli smith {update,set-session}-keys` ?

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [2 April 2024 13:48 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/4 "2024-04-02T13:48:30Z")

</div>

> [@Moul](#):
>
> je ne sais pas sur quoi cliquer

Je reconnais que ce n’est pas très intuitif, c’est le “`+`” :

 ![image](https://forum.duniter.org/uploads/default/original/2X/1/17dc1cd5d120b26ba185794a506629c3a1ecdadb.png)

> [@Moul](#):
>
> J’ai bien `false` avec cette clé de session.

Ok donc tu as dû supprimer ton keystore d’une manière ou d’une autre, il est dans le volume docker pourtant.

> [@Moul](#):
>
> Comment mettre la bonne clé de session sur mon nœud ?

Ce n’est pas une bonne pratique de “déposer” une clé privée sur un nœud, car ça veut dire qu’elle a été à un moment quelque part ailleurs (un presse papier, une autre machine…). Donc le mieux est de demander à ton nœud de générer de nouvelles clés avec `author.rotateKeys()` (rpc), puis d’annoncer publiquement la nouvelle clé avec `authorityMembers.setSessionKeys()` (extrinsic). C’est ce que fait `gcli` en une seule commande avec `gcli update-keys`. Alternativement, tu peux décomposer en deux étapes en faisant `rotateKeys` autrement et `setSessionKeys` ensuite.

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [2 April 2024 14:19 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/5 "2024-04-02T14:19:19Z")

</div>

J’ai concaténé les quatre chaînes de caractères en enlevant le préfixe `0x` des trois dernières.  
J’ai commencé à le faire avec Polkadot.js, mais je ne trouve pas où sont les extrinsics 🙂  
Après un `gcli smith update-keys`, cette fois j’ai un `true` avec `author.hasSessionKeys()`. Espérons que ça passe cette fois. Merci pour l’aide.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [2 April 2024 15:27 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/6 "2024-04-02T15:27:56Z")

</div>

> [@Moul](#):
>
> je ne trouve pas où sont les extrinsics

 ![image](https://forum.duniter.org/uploads/default/original/2X/b/b5ba2d63a5779c068126744f6f6d7745152e8bd3.png)

Il y a trois menus importants pour nous :

- chain state = l’état de la chaîne
- extrinsics = des appels pour modifier l’état
- rpc calls = une API pour interagir avec le nœud directement

`gcli smith update-keys` masque cette complexité et fait les vérifications tout seul. On pourrait ajouter une commande “`gcli smith check`” pour vérifier si les session keys sont bien sur le nœud et qu’on peut faire `go-online` sans problème.

[edit] je vois que tu calcules à nouveau des blocs, comme le [831,070](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fgdev.coinduf.eu%2Fws#/explorer/query/0x723e12203d56de71bc869d51176cee5566afd33ca45946070c4f212834fa59da) par exemple.

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [2 April 2024 15:31 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/7 "2024-04-02T15:31:14Z")

</div>

Oui, ça y est mon identité écrit de nouveau des blocs !

Étrange, je n’ai pas `Extrinsics` 🙂

> [@HugoTrentesaux](#):
>
> On pourrait ajouter une commande “`gcli smith check`” pour vérifier si les session keys sont bien sur le nœud et qu’on peut faire `go-online` sans problème.

Oui, c’est une bonne idée !

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [2 April 2024 17:08 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/8 "2024-04-02T17:08:04Z")

</div>

> [@Moul](#):
>
> je n’ai pas `Extrinsics` 🙂

Tu ne peux pas soumettre d’extrinsic sans le signer, et pour signer dans l’app polkadotjs, il faut une extension navigateur. Tu peux donc installer une extension navigateur pour gérer tes clés. Par exemple [duniter-connect](https://addons.mozilla.org/fr/firefox/addon/duniter-connect/) qui gère les clés v1, ou l’extension polkadotjs, ou [enkrypt](https://addons.mozilla.org/en-US/firefox/addon/enkrypt/) que je trouve plus grand public.

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [2 April 2024 17:28 UTC](https://forum.duniter.org/t/noeud-forgeron-avec-probleme-de-cle-de-session/12143/9 "2024-04-02T17:28:53Z")

</div>

Merci, je ne savais pas qu’il fallait avoir une extension pour signer qui soit configurée pour avoir l’onglet Extrinsic dans Polkadot.js. Chose qui été là sur ma précédente installation sans j’en aie conscience.  
Il me manquait la connexion entre `duniter-connect` et Polkadot.js.  
Je l’avais sauté. En rechargeant Polkadot.js, le pop-up demandant la connexion apparaît, et maintenant j’ai bien la section Extrinsincs 🙂
