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.
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.
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.
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
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
.