# ĞDev3 smiths

**URL:** https://forum.duniter.org/t/gdev3-smiths/10019
**Category:** Duniter-v2s
**Created:** [17 November 2022 10:32 UTC](https://forum.duniter.org/t/gdev3-smiths/10019 "2022-11-17T10:32:03Z")
**Posts on this page:** 20
**Page:** 2

<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: [15 December 2022 10:03 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/21 "2022-12-15T10:03:53Z")

</div>

> [@tuxmain](#):
>
> this afternoon it’s the algebra exam

Wish you good focus! I would love to do this kind of maths exams again 🤗

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [15 December 2022 18:15 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/22 "2022-12-15T18:15:30Z")

</div>

Synchronizing!

I’ll go online when it’s all good.

> [@HugoTrentesaux](#):
>
> I would love to do this kind of maths exams again 🤗

The precedent years subjects are [here](https://www.math.u-bordeaux.fr/~obrinon/enseignement.htm), good luck! 😛 (go to “licence 3 – structures algébriques 2”)

---

<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: [15 December 2022 18:36 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/23 "2022-12-15T18:36:44Z")

</div>

[@smiths-v2](https://forum.duniter.org/groups/smiths-v2) you now have the [`duniter/duniter-v2s:sha-f442e6eb`](https://hub.docker.com/r/duniter/duniter-v2s/tags) docker image with the good bootnodes and the good genesis. I did not tested, but you can 😉

Here is an example of `docker-compose.yml` file to start a rpc and a validator node

```auto
# This is a docker template for running a gdev5 mirror and smith
# You should write a .env file aside with the environment variables:
#
# --- .env ---
# SERVER_DOMAIN=gdev.example.com
# PEER_ID=12D3KooWL7J8B2pUfgH2xhm8kpB88CiSNsSNHcWJJ6NdNffSg5ty
# VALIDATOR_PEER_ID=12D3KooWNyFo34PSHcg4cNd3d3MRs3dm1w3hQqo3QuFptd3DXW6H
# ------------
#
# The peer id has to be replaced withe the output of the following command
#
# Generate node.key and peer id
# >>> PEER_ID >>>
# docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:sha-f442e6eb key generate-node-key --file /var/lib/duniter/node.key
# >>> VALIDATOR_PEER_ID >>>
# docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:sha-f442e6eb key generate-node-key --file /var/lib/duniter/node.key
# <<<<<<<<<<<<<<<>>>>>>>>>>

version: "3.4"

services:
  
  # ===== RPC =====
  duniter-rpc:
    image: duniter/duniter-v2s:sha-f442e6eb
    restart: unless-stopped
    ports:
      # telemetry
      - 9615:9615
      # rpc
      - 9933:9933
      # rpc-ws
      - 9944:9944
      # p2p
      - 30333:30333
    volumes:
      - ./duniter-rpc/:/var/lib/duniter/
    environment:
      - DUNITER_CHAIN_NAME=gdev
    command:
      - "--node-key-file=/var/lib/duniter/node.key"
      - "--public-addr"
      - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}"
      - "--rpc-cors=all"
      - "--pruning=14400"
      - "--name"
      - "hugo-trentesaux-rpc"

  # ===== VALIDATOR =====
  duniter-validator:
    image: duniter/duniter-v2s:sha-f442e6eb
    restart: unless-stopped
    ports:
      # telemetry
      - 9616:9615
      # rpc
      - 9934:9933
      # rpc-ws
      - 9945:9944
      # p2p
      - 30334:30333
    volumes:
      - ./duniter-validator/:/var/lib/duniter/
    environment:
      - DUNITER_CHAIN_NAME=gdev
    command:
      - "--node-key-file=/var/lib/duniter/node.key"
      - "--rpc-cors=all"
      - "--rpc-methods=Unsafe"
      - "--validator"
      - "--pruning=14400"
      - "--name"
      - "hugo-trentesaux-validator"

```

- read and apply the **documentation** at the head of the file
- note that I did **not tested** it, there might be errors
- change the **`--name`** option with your name so that we can more easily debug the network
- depending on your docker installation, there might be access rights issues
- I do not provide nginx config, there is one in [Duniter documentation](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docs/user/smith.md)

You should have everything needed to start a node. Please do not go online yet, you still have to rotate your session keys as mentioned in the documentation (that could be improved).

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [15 December 2022 21:57 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/24 "2022-12-15T21:57:30Z")

</div>

Je confirme que ça marche impeccable chez moi en RPC 🙂

You don’t need nodekey for RPC (right?).  
`--public-addr` is also optionnal.

---

<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: [19 December 2022 10:18 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/25 "2022-12-19T10:18:00Z")

</div>

Pour l’instant voici les nœuds sur le réseau :

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

Svp choisissez des noms parlants pour que ce soit plus facile de vous contacter.

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [19 December 2022 10:42 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/26 "2022-12-19T10:42:30Z")

</div>

Polux c’est tuxmain non ?  
Ou 1000i100, en tout cas il est à Bordeaux ^^

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [19 December 2022 10:51 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/27 "2022-12-19T10:51:05Z")

</div>

Polux c’est bien le nom de mon serveur (en référence à la BD Nestor & Polux et parce que c’est un Raspberry).

Je peux le renommer `tuxmain-polux-smith`.

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [30 December 2022 19:41 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/28 "2022-12-30T19:41:41Z")

</div>

@tuxmain ton noeud smith est tombé sans avoir go offline visiblement, 1/3 de perte, réseau en panic…

@all qui veut coder un outil de monitoring pour faciliter le monotoring de tout ça ? Je peux aider mais j’ai pas le temps avec Ğecko et le reste malheuresement …

Je peux vous aider en vous disans comment utiliser polkadot.js pour ce faire, et quels valeurs de storage écouter.

Prévoir un système de notification par email en fonction de certains état du storage ou certs events émis par duniter.

Nécessite donc avant tout un front JS avec polkadot.js.  
Pour le back daemon qui alerte en fonction de certains états du storage, l’indexer peut le faire il suffit d’ajouter ce qu’il faut en module TS.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [30 December 2022 21:49 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/29 "2022-12-30T21:49:34Z")

</div>

Mon serveur est down depuis que je suis parti (à 700km), je ne comprends pas pourquoi. Je pourrai le relancer le 2 janvier au soir.

Gcli peut servir d’outil de monitoring, on peut déjà servir en web statique la sortie de sa sous-commande `expire`.

Le code de Gcli peut aussi être repris pour en faire un serveur centralisé avec envoi de mail ou message sur le forum.

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [30 December 2022 21:56 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/30 "2022-12-30T21:56:07Z")

</div>

Le bonne procédure dans notre cas précaire serait que le comité tech vote un go offline pour toi.  
Mais je ne le ferais pas car j’ai la flemme, il nous faut impérativement des outils pratiques et à nous pour faire tous ça.

Je ne sais pas si le réseau se stabilisera là après un go offline effectué maintenant.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [30 December 2022 22:00 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/31 "2022-12-30T22:00:14Z")

</div>

Je pensais que j’aurais été exclu automatiquement au bout d’un certain nombre de blocs manqués… je viens de goOffline, pour l’instant à part quelques blocs manquant tout va bien. On verra dans les prochaines sessions.

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [30 December 2022 22:37 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/32 "2022-12-30T22:37:59Z")

</div>

Je crois que je vais finir par orienter gecko web vers ça tout de suite en fait …

Faire toute l’UX et l’architecture pour pouvoir

- certifier des nouveaux smiths
- monitorer la wot smith basiquement
- voir les votes techs en cours
- voter si on est logué avec wallet du comite tech
- monitorer un peu ça

C’est un gros taf, mais je crois que c’est notre priorité.  
Je peux dès maintenant faire ça de manière 100% fonctionnel en flutter web, il suffira de switcher les calls RPC vers G1Companion² quand il sera prêt.

Je préviens que l’UX ne sera pas très belle et juste orienté “faciliter la vie des smiths et tech comitee”  
faut pas s’attendre à gecko mobile quoi, on s’en fou ici pour le moment, faut juste que ça marche sans avoir à ce cas\*\*\* les couilles sur polkadotjs UI …

Je dirais 10j de taf normal pour se faire.

Vous en pensez quoi ? d’autres voudraient le faire à ma place autrement ?

c’est un projet cool ça ne me dérange pas de le faire, ni de laisser d’autres le faire. @cgeek ? @Paidge ? @1000i100 ?  
J’aimerais juste que ce soit fait avant Février, on en a besoin.

* * *

@tuxmain tu voudra bien t’occuper de ce backoffice mails monit avec gcli² ? (en janvier quoi je veux dire quoi lol)

Sinon je pense qu’on s’en chargera avec @ManUtopiK en TS, mais on a tous trop de truc à faire pour si peu de monde …

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [30 December 2022 23:07 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/33 "2022-12-30T23:07:22Z")

</div>

Il y a [polkawatch.io](http://polkawatch.io) qui propose d’envoyer un SMS (mais c’est que pour certaines chaînes, et je n’ai pas trouvé la source).

Pour faire au plus simple, je veux bien faire un bête service qui vérifie toutes les X minutes auprès d’un nœud archive ou d’un indexeur, pour toutes les X dernières sessions terminées, si tous les validateurs ont écrit plus de X blocs, et envoie un mail à son propriétaire sinon, avec des adresses mail hardcodées dans la config. On verra après pour un truc plus intelligent (que les forgerons puissent enregistrer leur mail eux-mêmes).

Il faudra faire les offences aussi, pour goOffline automatiquement les absents. (je crois que @HugoTrentesaux voulait le faire)

D’abord j’aimerais finir la mise à jour substrate 0.9.26 → 0.9.32, il y a énormément de trucs à changer et c’est très long de trouver quoi. (et à chaque fois que je crois avoir fini, bam ! une nouvelle fournée d’erreurs)

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [30 December 2022 23:09 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/34 "2022-12-30T23:09:35Z")

</div>

> [@tuxmain](#):
>
> avec des adresses mail hardcodées dans la config. On verra après pour un truc plus intelligent (que les forgerons puissent enregistrer leur mail eux-mêmes).

ah oui j’avais pas pensé à ça … à la Cs+ ou peu importe mais ouai.

> [@tuxmain](#):
>
> D’abord j’aimerais finir la mise à jour substrate 0.9.26 → 0.9.32, il y a énormément de trucs à changer et c’est très long de trouver quoi. (et à chaque fois que je crois avoir fini, bam ! une nouvelle fournée d’erreurs)

Ce serait cool à l’occaz de se faire une visio “upgrade substrate” avec toi et ceux qui veulent (moi ça m’intéresse, juste comme spectateur d’un screencast commenté en visio).

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [30 December 2022 23:19 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/35 "2022-12-30T23:19:59Z")

</div>

> [@poka](#):
>
> Ce serait cool à l’occaz de se faire une visio “upgrade substrate” avec toi et ceux qui veulent (moi ça m’intéresse).

On pourra faire une revue commentée des changements j’imagine. Déjà j’ai (empiriquement) fait une documentation très générique sur le processus de mise à jour. En gros une fois les formalités faites, il faut traiter les erreurs une par une en fouillant dans le code de Polkadot et de Substrate.

---

<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: [31 December 2022 12:31 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/36 "2022-12-31T12:31:39Z")

</div>

> [@tuxmain](#):
>
> Je pensais que j’aurais été exclu automatiquement au bout d’un certain nombre de blocs manqués

Non, on n’a pas implémenté la gestion des offences, donc il n’y a pas de goOffline automatique pour l’instant.

> [@poka](#):
>
> comité tech

Ou sudo, j’aurais pu le faire si j’avais vu à temps.

> [@poka](#):
>
> finir par orienter gecko web vers ça

C’est une bonne idée de faire de Ğecko web un gros terrain d’expérimentation où on fait vite et sale les fonctionnalités dont on a besoin rapidement. Une sorte de couteau suisse.

> [@poka](#):
>
> c’est notre priorité.

Je le pense aussi, il faut qu’on augmente le nombre de forgerons impliqués dans le développement de Duniter. Ça va pas qu’on soit les seuls “beta testeurs” des fonctionnalités forgerons qui sont très nouvelles pour nous.

> [@tuxmain](#):
>
> je crois que @HugoTrentesaux voulait le faire

Il faut que ça soit fait, je ne sais toujours pas quelle est la meilleure stratégie entre le faire moi-même maintenant et trouver des sous pour faire bosser plus de monde sur le projet, et dans ce cas je suis plus utile en coordination qu’en développement spécifique.

> [@tuxmain](#):
>
> énormément de trucs à changer

Ça peut valoir le coup d’en parler sur le [forum polkadot](https://forum.polkadot.network/), et je pourrai demander à Julien Éluard de jeter un œil sur ces questions de mise à jour de substrate.

---

<div class="post-metadata">

### Author: ![Paidge](https://forum.duniter.org/letter_avatar/paidge/32/5_5575768a8748004e209b776fc1b2916d.png) [@Paidge](https://forum.duniter.org/u/Paidge)
#### Post date: [31 December 2022 13:52 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/37 "2022-12-31T13:52:52Z")

</div>

En ce moment, j’ai ma vie personnelle et professionnelle qui m’accapare mon temps de cerveau disponible. Mais si y’a besoin d’aide pour améliorer des interfaces web, je veux bien. Par contre, je n’ai jamais travailler avec Flutter 😛

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [31 December 2022 15:13 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/38 "2022-12-31T15:13:46Z")

</div>

C’est un peu mon problème actuel …

Je suis le seul à dev en Flutter ici, donc si je commence un projet Flutter même dans le but d’être collaboratif, bah je m’attends à rester seul dessus malheuresement …

Donc pour cette raison, je préfère VOUS laisser commencer quelque chose avec des technos web plus connus et standard que Flutter.

Si personne ne le fait dans les semaines qui viennent, je le ferais alors moi même en Flutter 🙂

Toujours ok pour former qui le veut sur Flutter.

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [31 December 2022 15:44 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/39 "2022-12-31T15:44:33Z")

</div>

> [@poka](#):
>
> Je préviens que l’UX ne sera pas très belle

ah ah je me sens moins seul 😂 (OK je sors…)

Sinon, en lisant les besoins d’alerte email, c’était pas l’indexer qui devait s’en occuper et reprendre le rôle de Cs+, avec la puissance d’Hasura ?

On pourrait ajouter si besoin des infos en database pour ce type de gestion des forges et des besoins au quotidiens des forgerons, pour ne pas se disperser. Ou bien rester sur RPC si cela suffit, je ne sais pas.

Il y a des libs qui prennent une source API comme Hasura et les transforment en web app quasi clef en main. Genre Hasura → Webapp ?

Je compte essayer de me mettre à Nuxt.js comme @ManUtopiK pour aller vers ce genre de chose pour mon projet pro (bonne résolution 2023) :

> **[Create Nuxt.js Universal Apps using GraphQL on PostgreSQL](https://hasura.io/blog/create-nuxt-js-universal-apps-using-graphql-on-postgres)**
>
> Server-side render (SSR) websites using Nuxt.js and GraphQL APIs over PostgreSQL using Hasura GraphQL Engine. Instant setup. Tutorial/boilerplate.

---

<div class="post-metadata">

### Author: ![Paidge](https://forum.duniter.org/letter_avatar/paidge/32/5_5575768a8748004e209b776fc1b2916d.png) [@Paidge](https://forum.duniter.org/u/Paidge)
#### Post date: [31 December 2022 16:52 UTC](https://forum.duniter.org/t/gdev3-smiths/10019/40 "2022-12-31T16:52:58Z")

</div>

Cool 🙂 On va commencer à avoir de la ressource sur Nuxt.js

Pour interroger du graphQL, jusqu’alors j’utilisais surtout [ApolloClient](https://www.apollographql.com/) qui a surtout été développé pour React au départ. C’est le cas pour [wotwizard-ui](https://git.duniter.org/clients/wotwizard-ui/-/blob/master/package.json#L19) qui utilise [un wrapper pour Nuxt.js](https://github.com/nuxt-modules/apollo). Peut-être que la version pour Vue3 est mieux mais j’ai eu qqes galères avec la version pour Vue2. Dans certains cas, je suis passé par [Axios](https://www.npmjs.com/package/axios), qui permet de faire des requêtes GET ou POST en async. Par ex dans le fichier `nuxt.config.js` d’un projet, j’ai été obligé de faire ça pour générer le `sitemap.xml` d’un blog :

```auto
  generate: {
    fallback: true,
    routes() {
      return axios({
        url: process.env.ENDPOINT,
        method: 'post',
        data: {
          query: `
            query GET_POSTS {
              posts {
                nodes {
                  slug
                }
              }
            }
          `,
        },
      }).then((result) => {
        return result.data.posts.nodes.map((post) => {
          return '/blog/' + post.slug
        })
      })
    },
  },

```

A la place d’Apollo, j’ai découvert récemment [cette bibliothèque plus légère](https://www.npmjs.com/package/nuxt-graphql-request) qui est sortie cet été et qui doit faire le taff.

[Previous page](https://forum.duniter.org/t/gdev3-smiths/10019.md?page=1)

[Next page](https://forum.duniter.org/t/gdev3-smiths/10019.md?page=3)
