Je lance ce post pour lister un maximum de détails sur le déroulé précis de la migration dans un scénario idéal (les échecs possibles et solutions de repli seront dans un autre post). Il sera complété et ajusté au fur et à mesure. J’imagine le “0” au 8 mars 2025, mais on peut ajuster en fonction de notre état de préparation et des disponibilités des personnes cruciales bien entendu.
- J-40 La toile forgeron initiale est constituée à partir des personnes suffisamment entraînées sur les ĞDev.
- J-30 Lancement “à blanc” d’un réseau ĞTest similaire au réseau Ğ1 (cf détails ci-dessous). Ce lancement permettra d’identifier les éventuels points de friction et de préciser les timings.
- J-15 L’installation de Cesium v2 et son test depuis plusieurs plateformes sur le réseau ĞTest est concluant, aucun gros problème d’utilisabilité n’est soulevé.
- J-7 Les données hors chaînes sont importées dans les datapods avec le préfixe SS58 de la Ğ1.
- J-5 Le fichier de conf du réseau est figé (toile forgeron initiale, comité technique, paramètres, préfixe ss58…).
- J-4 Les endpoints p2p de deux-trois nœuds de bootstrap sont connus d’avance (dns et peerid, implique d’injecter
node.key
avant le démarrage du nœud). - J-1 Un dernier coup de communication est lancé sur un maximum de plateformes pour encourager à arrêter d’utiliser la Ğ1 en attendant qu’elle soit déplacée sur la v2.
- H-1 Le processus de migration est lancé :
- Le backup de la db duniter v1 du noeud de cgeek est lancée (
tar -cvzf
). - La CI py-g1-migrator est lancée.
- La CI publie automatiquement une page de release avec les assets genesis (comme runtime-800) et ses logs.
- Le backup de la db duniter v1 du noeud de cgeek est lancée (
- =0 Le premier nœud validateur v2 est lancé par
cgeekHugo en utilisant les raw chainspecs g1 produites ci-dessus.- Le champ “migration” du fichier
g1.json
est mis àtrue
, et le hash du genesis est ajouté. Cela affiche une popup bloquante aux personnes ayant installé “Cesium 1.99” (cf Mise à jour forcée de Cesium (en douceur)). - Un post sur le forum est publié dans la foulée pour annoncer le nouveau réseau (similaire à ĞDev Runtime 800 -- new network - #13 by cgeek).
- Les nœuds miroir rejoignent le plus rapidement possible pour exposer leur endpoint RPC.
- Les live tests sont lancés sur le storage pour vérifier qu’il n’y a pas d’incohérence au démarrage.
- Les nœuds archive+squid rejoignent le plus rapidement possible pour exposer leur endpoint graphql.
- Le champ “active” du fichier
g1.json
est mis àtrue
, indiquant que la mise-à-jour est confirmée et que le réseau est ok pour être utilisé.
- Le champ “migration” du fichier
- M+10 En dix minutes (environ 100 blocs v2), un client est entièrement fonctionnel (capable de se connecter à un endpoint rpc synchronisé et un endpoint squid synchronisé).
- On met à jour le fichier
g1.json
dans nodes / networks · GitLab pour que les Cesium 1.99 affichent une popup bloquante (Mise à jour forcée de Cesium (en douceur)). - On lance la publication de Cesium 2.0 sur les store pour qu’une mise-à-jour automatique de Cesium soit possible.
- On met à jour le fichier
- H+1 Les premiers forgerons ayant fait leur “go-online” après le lancement entrent dans les autorités.
- H+2 Les nouvelles autorités commencent à calculer des blocs.
- J+1 La nuit est passée, rien ne s’est écroulé, les blocs sont forgés à intervalles réguliers.
- J+2 Les données hors chaînes manquantes sont à nouveau importées dans les datapods.
- J+5 Aucun incident n’est déclaré, la Ğ1 continue sur la v2 comme sur des roulettes. Il est maintenant temps de répondre à la vague de questions qui ne manquera pas d’arriver . Et on peut lancer un autre coup de comm pour dire que c’est ok. Il reste quelques actions :
- mettre à jour la documentation et les sites officiels pour déprécier la doc v1 et mettre en avant la doc v2