je colle ici la partie de pad de contrendu au dessus qui me semble la plus importante, à savoir le tuto pas à pas pour créer un nouveau live network v2s de zero.
Il faudra le traduire en anglais et le fusionner avec la doc du dépôt git existante: docs/dev/launch-a-live-network.md · master · nodes / rust / Duniter v2S · GitLab
initialisation / lancement / genesis
Étapes :
- Choisissez le runtime qu’on veut utiliser
- Choisissez une version compatible du client (généralement client récent rétro-compatible avec les ancien runtime, donc utiliser le plus récent sauf exeption)
Ce qui se traduit par récupérer le dernier commit de master, celà devrait fonctionner.
- Aller chercher dans le source master et générer une image docker en lançant dans la CI : build_release_manual & deploy_docker_release_sha
(capture à demander à Hugo)
-
Générez les sessions-keys de l’initiateur (peu sécurisées, à modifier juste après lancement) (cf launch a live network)
- Lancez cette commande en remplaçant TAG par sha- suivi des 8 premiers caractère du commit du client qu’on veut utiliser, pour générer votre passphrase:
docker run --rm -it --entrypoint duniter duniter/duniter-v2s:TAG key generate
- Génerez vos session keys:
docker run --rm -it --entrypoint duniter duniter/duniter-v2s:TAG key generate-session-keys --chain gdev_local --suri "<your secret phrase>"
- Copiez les sessions keys qui s’affichent pour les inclures dans le fichier de config v2s-genesis :
- dans gdev.json : >smith>nomDuSmithQuiLanceLeReseau>session_keys
-
Générez les chainSpec initales
docker run -v $HOME/dev/duniter-v2s/resources:/var/lib/duniter/resources -e DUNITER_GENESIS_CONFIG=/var/lib/duniter/resources/gdev.json --rm -it --entrypoint duniter duniter/duniter-v2s:TAG build-spec -lerror --chain=gdev-gl --raw > gdev-raw.json
- Démarrez une première version du réseau avec les chainSpec externe pour débuger jusqu’à ce que ça marche
Dans le script qui suit, il faut modifier la variable
DUNITER_IMAGE_TAG
./scripts/create-live-network.sh "<your secret phrase>" gdev
Ce script génère le docker compose avec accès via volume aux keystore contenant les sessions_key initiales
TODO: Ajouter les ports
9933:9933
au compose template utilisé par le script, pour avoir l’api rpc en http simple en plus du websocket
- Copiez sur le serveur le dossier que vous venez de générer (tmp/gdev)
exemple: scp -r -P SSH_PORT "<path/to/dist/folder>" user@ip:/remote/dist/path
- Lancez le docker_compose
- Une fois le noeud lancé, récupérer son
peerid
pour connaitre l’endpoint libp2p de votre noeud
Il vous faudra ajouter ce endpoint libp2p à vos chainspec, champbootnodes
- Une fois que votre réseau est fonctionnel, mergez dans master un commit qui ajoute les bootnode
- Pushez un git tag (v0.x.0, où
x
est l’incrément du numéro précédent), ce qui déclenche la création de la docker image de prod dans la CI - Vous pouvez déployer un second noeud avec l’image docker de prod qui vient d’être généré, pour vérifier qu’il se synchronise correctement au premier
- Incrémenter le numéro de version “v0.n.0” par “v0.n+1.0” dans la doc docs/user/smith.md · master · nodes / rust / Duniter v2S · GitLab
- Félicitation, vous avez lancé votre live network !
- Vous pouvez optionnellement songer à lancer un v2s-indexer pour les wallets, et/ou un hydra pour les devs et testeurs
TODO: liens vers les docs v2s-indexer et hydra