Aller au contenu principal

Via Docker

Nous utiliserons Docker et compose pour cette démo, assurez-vous de les avoir disponibles dans votre terminal de commandes. Si vous ne souhaitez pas utiliser ou installer Docker, vous pouvez directement vous rendre sur Démo: Sans Docker et mettre les mains dans le cambouis.

Shortcut

Toutes ces étapes sont combinées dans un unique script ./run-docker.sh. Ce script contient aussi quelques petites vérifications pour éviter de vous tirer une balle dans le pied avec certaines commandes.

Contexte

Toutes les commandes ci-dessous supposent qu'elles sont éxecutées depuis le dossier demo/, à la racine du dépôt. Vous aurez donc besoin de cloner le dépôt et de cd demo avant d'aller plus loin.

(in)compatibilité du système d'exploitation

Les instructions fournies ci-après ont été testées pour des environnements Linux récents (Ubuntu, ArchLinux, NixOS...). Si vous êtes sur Windows ou MacOS vous aurez sans doute besoin d'ajuster certaines commandes liées aux volumes.

Mise en place du réseau

Pour commencer, récupérez les images des différents services définis dans le fichier compose:

docker-compose --profile tui --profile hydra-node pull

Ensuite, vous pouvez exécuter le script ./prepare-devnet.sh pour créer les fichiers nécessaires à la configuration du réseau local (a.k.a devnet). Le script génère une configuration genesis Cardano (qui fixe les paramètres du protocole). Notez que dans le cadre de cette démo, la configuration du réseau n'utilise pas de stake pool et ne requiert qu'un unique noeud pour fonctionner.

./prepare-devnet.sh

C'est tout. Il est maintenant possible de démarrer le cardano node via:

docker-compose up -d cardano-node
Avertissement!

Le noeud Cardano crée un "réseau" privé et local qui démarre depuis un bloc genesis. Pour démarrer, la configuration du noeud doit être à jour (comprendre, récente). Si au démarrage, le noeud Cardano retourne TraceNoLedgerView, alors c'est que l'heure de démarrage indiquée dans la configuration génésis est trop loin dans le passé: il faut en ce cas générer la configuration à nouveau via prepare-devnet.sh.

Générer des fonds

Parmi les fichiers, vous trouverez un script ./seed-devnet.sh qui s'occupe de générer ces UTxOs pour chaque participant en utilisant la cardano-cli.

./seed-devnet.sh

Démarrage des nœuds Hydra

Enfin, maintenant que les préparations en chaîne sont prêtes, nous pouvons mettre en place le réseau Hydra (c'est-à-dire les trois nœuds pour Alice, Bob et Carol) en exécutant:

docker-compose --profile hydra-node up -d

Utiliser l'interface client

À l'aide de compose, vous pouvez démarrer les interfaces clientes (a.k.a hydra-tui) pour interagir avec chaque noeud Hydra. Le fichier compose contient déjà trois services pré-configurés: hydra-tui-1, hydra-tui-2, and hydra-tui-3. Pour démarrer le premier client, utilisez simplement:

docker-compose --profile tui run hydra-tui-1

Cette commande lance une interface utilisateur dans le terminal, configurée avec les clés du premier noeud (i.e. Alice). Dans d'autres terminaux, vous pouvez lancer de la même façon hydra-tui-2 et hydra-tui-3.