ĞDev: reboot monthly?

@smiths-GDev I suggest rebooting the GDev every month, with up-to-date data from the G1.

This in order to train to launch a live network from 0.

Given that the GDev3 started at 12/11/2022 17:15:36, I propose to stay on this schedule.

I really want to do the next reboot in December (to automate that later), and the idea is that each smith does it in turn each months (those who want).

Then we could automate all this workflow in January ?

Are you ok with that?

6 Likes

I think that the deployment of a live network cannot be entirely automated.
And it still requires to understand what you are doing, so you have to spend time to train yourself.
Moreover, you have to regularly change the configuration format of the genesis according to the progress of duniter-v2s developments.

I don’t think it’s a good idea to force all smith to learn this, they are really different skills for different roles.

People interested in learning how to deploy a live network can make themselves known here, the more the better, but it should not be a prerequisite to become a ĞDev smith.

It would be nice if there were more blacksmiths on the ĞDev, which already requires some knowledge, if on of you could write a tutorial or record a video on how to join the smiths (in post-genesis), there is a need for it :slight_smile:

1 Like

I think we will not have the choice for the next reboot. Even without archive node, my server got filled and my node stopped forging, causing the iterblock time to increase because we do not have enough smith and we did not implement offence management.

image

1 Like
poka@v2s-poka:~/gdev$ du -hs duniter-*/chains/
4.7G	duniter-rpc/chains/
1.9G	duniter-validator/chains/

Mon noeud validateur ne prends que 1.9G, combien fait le tiens ?

Pareil, mais ×2 pour les deux nœuds et d’autres trucs je suis arrivé au bout. Il est temps que je bosse sur la gestion des offenses

1 Like

je sais pas pk x2 pour toi, c’est bizard, ta pas gardé d’anciennes données d’anciennes gdev ?

How to start a new ĞDev live network with Ğ1 up-to-date data from scratch ?

Peek 12-12-2022 05-50

We can perhaps go to less than 3s by optimizing a little.
is it ok for you ?

edit: WIP, some bugs to fix in generated raw chainspec…
edit2: C’est résolu, de zero, je démarre un nouveau live network fonctionnel avec les data Ğ1 à jours en local en moins de 10s

Il ne reste que le numéro de version du client à incrémenter.

~/dev/py-g1-migrator/boot_gdev/tmp/gdev$ docker compose up
[+] Running 2/0
 ⠿ Container gdev-duniter-validator-1  Recreated                                                                                                                                                 0.0s
 ⠿ Container gdev-duniter-rpc-1        Recreated                                                                                                                                                 0.0s
Attaching to gdev-duniter-rpc-1, gdev-duniter-validator-1
gdev-duniter-validator-1  | Starting duniter with parameters: --bootnodes /dns/duniter-rpc/tcp/30333/p2p/12D3KooWQZ2TNbXN9LgKY1P4F659VuVmx33APXBgtR3GDmMrAgg6 --node-key-file /var/lib/duniter/node-key --rpc-methods=Unsafe --validator --rpc-cors all --name poka-smith --chain /var/lib/duniter/gdev-raw.json -d /var/lib/duniter --unsafe-rpc-external --unsafe-ws-external
gdev-duniter-rpc-1        | Starting duniter with parameters: --bootnodes /dns/duniter-validator/tcp/30333/p2p/12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa --node-key-file /var/lib/duniter/node-key --rpc-cors all --name poka-rpc --chain /var/lib/duniter/gdev-raw.json -d /var/lib/duniter --unsafe-rpc-external --unsafe-ws-external
gdev-duniter-validator-1  | 2022-12-12 07:39:27 Duniter    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 ✌️  version 0.3.0-366af12514a    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 ❤️  by Axiom-Team Developers <https://axiom-team.fr>, 2021-2022    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 📋 Chain specification: Ğdev    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 🏷  Node name: poka-smith    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 👤 Role: AUTHORITY    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 💾 Database: ParityDb at /var/lib/duniter/chains/gdev/paritydb/full    
gdev-duniter-validator-1  | 2022-12-12 07:39:27 ⛓  Native runtime: gdev-400 (duniter-gdev-1.tx1.au1)    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 Duniter    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 ✌️  version 0.3.0-366af12514a    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 ❤️  by Axiom-Team Developers <https://axiom-team.fr>, 2021-2022    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 📋 Chain specification: Ğdev    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 🏷  Node name: poka-rpc    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 👤 Role: FULL    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 💾 Database: ParityDb at /var/lib/duniter/chains/gdev/paritydb/full    
gdev-duniter-rpc-1        | 2022-12-12 07:39:27 ⛓  Native runtime: gdev-400 (duniter-gdev-1.tx1.au1)    
gdev-duniter-rpc-1        | 2022-12-12 07:39:34 🔨 Initializing Genesis block/state (state: 0xc017…4f6f, header-hash: 0xb74f…7283)    
gdev-duniter-validator-1  | 2022-12-12 07:39:34 🔨 Initializing Genesis block/state (state: 0xc017…4f6f, header-hash: 0xb74f…7283)    
gdev-duniter-rpc-1        | 2022-12-12 07:39:34 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 👶 Creating empty BABE epoch changes on what appears to be first startup.    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 🏷  Local node identity is: 12D3KooWQZ2TNbXN9LgKY1P4F659VuVmx33APXBgtR3GDmMrAgg6    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 Operating system: linux    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 CPU architecture: x86_64    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 Target environment: gnu    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 CPU: AMD Ryzen 7 3700X 8-Core Processor    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 CPU cores: 8    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 Memory: 32044MB    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 Kernel: 5.15.0-43-generic    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 Linux distribution: Debian GNU/Linux 10 (buster)    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 💻 Virtual machine: no    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 📦 Highest known block at #0    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 Running JSON-RPC HTTP server: addr=0.0.0.0:9933, allowed origins=None    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 Running JSON-RPC WS server: addr=0.0.0.0:9944, allowed origins=None    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 ***** Duniter has fully started *****    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 〽️ Prometheus exporter started at 127.0.0.1:9615    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 creating instance on iface 172.18.0.3    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 👶 Creating empty BABE epoch changes on what appears to be first startup.    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 🏷  Local node identity is: 12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 👶 Starting BABE Authorship worker    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 Operating system: linux    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 CPU architecture: x86_64    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 Target environment: gnu    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 CPU: AMD Ryzen 7 3700X 8-Core Processor    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 CPU cores: 8    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 Memory: 32044MB    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 Kernel: 5.15.0-43-generic    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 Linux distribution: Debian GNU/Linux 10 (buster)    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💻 Virtual machine: no    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 📦 Highest known block at #0    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 〽️ Prometheus exporter started at 127.0.0.1:9615    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 Running JSON-RPC HTTP server: addr=0.0.0.0:9933, allowed origins=None    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 Running JSON-RPC WS server: addr=0.0.0.0:9944, allowed origins=None    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 ***** Duniter has fully started *****    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 creating instance on iface 172.18.0.2    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 discovered: 12D3KooWQZ2TNbXN9LgKY1P4F659VuVmx33APXBgtR3GDmMrAgg6 /ip4/172.18.0.3/tcp/30333/ws    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 discovered: 12D3KooWQZ2TNbXN9LgKY1P4F659VuVmx33APXBgtR3GDmMrAgg6 /ip4/127.0.0.1/tcp/30333/ws    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💔 The bootnode you want to connect provided a different peer ID than the one you expect: `12D3KooWMAsMgr1CVr9gJHobtsNpaaDbwEkZBxFEREi2ZhKQmsVy` with `12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa`:`Dialer { address: "/ip4/127.0.0.1/tcp/30333/p2p/12D3KooWMAsMgr1CVr9gJHobtsNpaaDbwEkZBxFEREi2ZhKQmsVy", role_override: Dialer }`.    
gdev-duniter-validator-1  | 2022-12-12 07:39:35 💔 The bootnode you want to connect provided a different peer ID than the one you expect: `12D3KooWMAsMgr1CVr9gJHobtsNpaaDbwEkZBxFEREi2ZhKQmsVy` with `12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa`:`Dialer { address: "/ip4/127.0.0.1/tcp/30333/p2p/12D3KooWMAsMgr1CVr9gJHobtsNpaaDbwEkZBxFEREi2ZhKQmsVy", role_override: Dialer }`.    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 discovered: 12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa /ip4/172.18.0.2/tcp/30333    
gdev-duniter-rpc-1        | 2022-12-12 07:39:35 discovered: 12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa /ip4/127.0.0.1/tcp/30333    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 🙌 Starting consensus session on top of parent 0xb74f8bae783c4d1ea3bf68ebd58da6bba98b207908108c455352630a3dd87283    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 🎁 Prepared block for proposing at 1 (3 ms) [hash: 0xd1d93b2cb1709ca05a2beaf4ccea312e3a340696eb76758cb997551ee9f8cea0; parent_hash: 0xb74f…7283; extrinsics (1): [0xe500…b1de]]    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 🔖 Pre-sealed block for proposal at 1. Hash now 0x4092f78a8077818d916a9f78e7cbbc7d22c8ef8ce477bd151365637308e19655, previously 0xd1d93b2cb1709ca05a2beaf4ccea312e3a340696eb76758cb997551ee9f8cea0.    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 👶 New epoch 0 launching at block 0x4092…9655 (block slot 278471796 >= start slot 278471796).    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 👶 Next epoch starts at slot 278472396    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 ✨ Imported #1 (0x4092…9655)    
gdev-duniter-rpc-1        | 2022-12-12 07:39:36 👶 New epoch 0 launching at block 0x4092…9655 (block slot 278471796 >= start slot 278471796).    
gdev-duniter-rpc-1        | 2022-12-12 07:39:36 👶 Next epoch starts at slot 278472396    
gdev-duniter-rpc-1        | 2022-12-12 07:39:36 ✨ Imported #1 (0x4092…9655)    
gdev-duniter-validator-1  | 2022-12-12 07:39:36 🔍 Discovered new external address for our node: /dns/duniter-validator/tcp/30333/p2p/12D3KooWLzY2UKGrixsH6wRZVUqmfNde2TWfWnPM4X1xHxwKVVPa 

Les seuls dépendances nécessaires sont Docker et le dépot py-g1-migrator.

poka@pokaMint-desktop:~/dev/py-g1-migrator$ du -hs .
376K	.
2 Likes

Gdev et indexer vont rebooter à 17h sur mon noeud gdev.p2p.legal

Les smiths pourront alors s’y connecter et go online.

Il y a un bug sur la dernière version de l’indexer, il n’arrive plus à parser les transactions.

On va bosser dessus avec Manu dans les jours qui viennent, car ya aussi l’event changeOwnerKey a ajouter absolument.

Moi je vais me coucher.

1 Like

flash info

Mon noeud gdev.p2p.legal est toujours sur une gdev temporaire 4+42 pendant encore quelques jours.

Il faut qu’on regarde avec @HugoTrentesaux pour insérer mes bootnodes dans une nouvelle version du client v2s sur le gitlab (j’ai un peu oublié ce point et j’aimerais le faire avec quelqu’un).
Sans ça, personne ne pourra se connecter à mon noeud avec le simple attribut DUNITER_CHAIN_NAME: "gdev", le réseau c’est mon noeud quoi lol
Ah moins de renseigner mes nouveaux bootnodes dans votre compose.

Mes bootnodes actuels de gdev4+42 de mon noeud validateur:

      - "--bootnodes"
      - "/dns/duniter-validator/tcp/30333/p2p/12D3KooWMYJzk1FfBZjEAuEvwUnH2Luj5Bq4ouLX1tgZBPpFegaB"

Ceux de mon noeud RPC:

      - "--bootnodes"
      - "/dns/duniter-rpc/tcp/30333/p2p/12D3KooWACAvFiSJLuH1ZCPTupvgq2YUwrMhQL7VrgqnTywzxSzq"

Tout cela sera bien sûr scripté dans py-g1-migrator.


En parallèle, on bosse avec @ManUtopiK pour corriger les dernier bugs de l’indexer, ainsi que l’ajout de l’event changeOwnerKey.

Pour l’indexer, pas sûr que ce soit réglé avant le 15.
Si tel est le cas ce n’est pas très grave, la monnaie fonctionnera quoi qu’il arrive (sauf bug non connu bien sûr, c’est de la beta).
Simplement il faudra expliquer aux gens qu’il faudra attendre quelques jours avant de voir les historiques de transactions @scanlegentil @italpaola @Djool46 @Maaltir

Tous les usersnames et switchs seront OK dès le début quoi qu’il arrive.
Tout le reste devrait fonctionner dans Ğecko mobile dès maintenant.

Pour résumer tout roule comme prévu pour le moment, sauf l’historique des transactions et l’historique des certifications dans Ğecko, pendant encore quelques jours (durée indéterminée).

2 Likes

Où peut-on trouver le raw spec json que tu as utilisé ?

1 Like

Tu veux que je le colle ici ?

je l’ai en local et sur mon serveur, directement sortie de py-g1-migrator.

Le voici:

quoi que c’est ptetre pas le même que celui en prod celui-ci …
C’est ptetre pas le même nodekey et session_keys du coup je sais plus.

J’ai fait 10 reboot cette nuit, pour tester, ça marche bien.

Ce soir ou demain je/on reboot la vrai gdev5, quand tout sera carré, côté image docker v2s et tout.

edit; oui c’est bien le bon.

1 Like

On a parlé longuement en visio avec @poka ce matin et voici certains points que j’ai retenu :

  • scripter le bootstrap d’une ğdev était un excellent moyen pour poka de comprendre comment faire car un script fonctionnel est forcément plus complet qu’une documentation
  • il reste quelques détails à automatiser notamment l’insertion du bootnode dans les chainspecs et la publication d’un nouveau binaire avec ces chainspec intégrées (tout cela également dans une image docker)
  • l’idée de rebooter le réseau de test n’est pas forcément la meilleure parce que
    • ça implique de coordonner tous les forgerons et noeuds miroirs sous peine d’avoir deux réseaux qui ne communiquent plus, et tout le monde n’est pas forcément dispo à la même date
    • ça ne permet pas de s’entraîner à l’expiration de l’identité forgeron et autres opérations de maintenance comme la rotation périodique des session keys, les runtime upgrade…
    • ça fait perdre leurs données à tous les utilisateurs de la ĞDev à moins d’inventer un autre mécanisme de transfert de données
  • on peut quand même entrainer les forgerons qui le souhaitent à bootstraper un autre réseau parce que c’est une bonne manière d’apprendre les concepts substrate et d’animer la communauté de forgerons. Par exemple on peut bootstraper un réseau sur un événement, c’est assez motivant

TL;DR on va essayer de garder la ĞDev du 12 décembre le plus longtemps possible, ce qui ne nous empêche pas de bootstraper un autre réseau si on a envie

2 Likes

Oui pour résumer, Hugo a raison, on annule cette histoire de reboot mensuel, chiant et inutile, même pénalisant pour nos tests et analyses.

2 Likes