Avash
Avash est un client shell pour interagir avec la plate-forme Avalanche
Avash est un environnement d'exécution de shell avec état temporaire utilisé pour déployer des réseaux locaux et distants et y exécuter des tests. Les nœuds d'avalanche déployés localement par Avash sont fermés à la sortie d'Avash.
Avash offre la possibilité d'exécuter des scripts Lua qui peuvent exécuter une séquence de commandes shell dans Avash. Cela permet l'automatisation des tâches régulières. Par exemple, on pourrait créer un script Lua pour déployer un réseau de nœuds Avalanche où chaque nœud a une configuration donnée. Cela facilite les tests.
Installation
Conditions requises
Golang 1.13+
Un client Avalanche mettant en œuvre des indicateurs CLI standard d'Avalanche
Installation rapide
Installer et créer un client Avalanche
cd $ GOPATHgo get github.com/ava-labs/avashcd src/github.com/ava-labs/avashgo build
Configuration
Bien qu'Avash puisse être démarré sans fichier de configuration prédéfini, il est disponible en tant qu'option pour modifier certains paramètres globaux du shell. Avash recherchera .avash.yaml dans le répertoire $HOME par défaut, mais l'indicateur --config peut être utilisé pour définir un chemin de fichier de configuration personnalisé à rechercher.
Voici le format d'un fichier de configuration Avash :
Les arguments de champ sont décrits comme suit :
<filepath>- Un chemin complet vers un fichier. Exemple :/home/username/file.txt<directory>- Un chemin complet vers un répertoire. Exemple :/home/username/folder<log-level>- Un niveau de journal valide pour filtrer les messages journalisés. Doit être l'un des suivants:{verbo, debug, info, warn, error, fatal, off}
Fields
avalancheLocation
datadir
log.terminal
log.logfile
log.dir
Utilisation d'Avash
Ouvrir une shell
Démarrez une nouvelle instance d'Avash avec ./avash.
Exécutezhelp pour voir les commandes disponibles.
Nous pouvons également lancer help [command] pour voir la liste des options disponibles pour cette commande.
Exemple :
Commandes
Avash est livré avec les commandes root suivantes :
avawallet- Outils pour interagir avec Avalanche Payments sur le réseau.callrpc- Emet un appel RPC à un nœud.exit- Sortez du shell.help- Aide sur n'importe quelle commande.network- Outils d'interfaçage avec des hôtes distants.procmanager- Accédez au gestionnaire de processus pour le client avash.runscript- Exécute le script fourni.setoutput- Définit la sortie du journal du shell.startnode- Démarre un processus de nœud et lui donne un nom.varstore- Outils pour créer des magasins de variables et imprimer des variables à l'intérieur.
Celles-ci peuvent être énumérées ou complétées automatiquement à l'aide de la touche de tabulation et sont expliquées en détail ci-dessous.
avawallet
Attention ! Comme toutes les choses dans Avash, ce portefeuille est temporairement conservé en mémoire et toutes les données sont nettoyées à la sortie. Cela devrait être utilisé pour les tests.
callrpc
exit
help
network
CONFIGURATION
Pour déployer et supprimer des réseaux, un fichier de configuration réseau .yaml est requis. Un exemple est fourni dans la base de code Avash à network/example.network.yamlet doit avoir le format suivant:
Ce format peut être mis à l'échelle pour déployer simultanément de nombreux nœuds sur de nombreux hôtes, en utilisant - dans la syntaxe YAML pour ajouter de nouveaux éléments à la liste d'hôtes et à la liste de nœuds de chaque hôte. Une liste complète des indicateurs CLI peut être trouvée ici, où --node-flagcorrespond ànodeflagdans notre fichier de configuration.
procmanager
runscript
setoutput
startnode
varstore
Écriture de scripts
Avash importe le gopher-lua pour exécuter les scripts Lua. Les scripts ont des hooks à leur disposition qui permettent à l'utilisateur d'écrire du code qui appelle l'environnement Avash actuel.
Les fonctions disponibles pour Lua sont :
avash_call- Prend une chaîne et l'exécute en tant que commande Avash, renvoyant la sortieavash_sleepmicro- Prend un entier non signé représentant les microsecondes et dort pendant cette périodeavash_setvar- Prend une portée de variable (string), un nom de variable (string) et une variable (string) et la place dans le magasin de variables. L'étendue doit déjà avoir été créée.
Lors de l'écriture de Lua, la fonctionnalité standard de Lua est disponible pour automatiser l'exécution de séries de commandes Avash. Cela permet à un développeur d'automatiser :
Déploiements de réseau local
Envoi de transactions
Commander des cas de test de transaction
Enregistrer la valeur des ensembles UTXO et des résultats de test sur le disque
Comparez les valeurs de deux ensembles UTXO de nœuds
Suivre les résultats attendus et comparez-les avec de vrais nœuds
Des exemples de scripts Lua se trouvent dans le dossier ./scripts.
Mis à jour
Ce contenu vous a-t-il été utile ?