@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 ?
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
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.
How to start a new ĞDev live network with Ğ1 up-to-date data from scratch ?
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 .
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:
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).
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