La présentation qui va suivre permet de comprendre comment intéragir avec le programme Blockshell modifié.
S’assurer d’être à-côté du dossier blockshell et de l’environnement virtuel python venv, précédemment créés lors de la phase d’installation.
Rejoindre l’environnement virtuel:
source venv/bin/activate

Afin d’installer les paquets python additionnels, un fichier requirements.txt est fourni.
pip install -r requirements.txt
Lancer le programme Blockshell:
blockshell init --difficulty 3
Une interface en ligne de commandes apparait alors:

La commande help permet de visualiser les commandes disponibles pour intéragir avec le programme:

La commande allblocks permet de visualiser les blocks présents dans la blockchain par l’intermédiaire de leurs hashs
La commande getblock <hash> permet d’afficher le contenu d’un bloc:

La commande newblock nous permet à présent de créer un bloc dont la donnée correspondant au schéma d’un profil EPITA
Le bloc est ensuite miné automatiquement:

Le script suivant permet de créer 54 profils dans la blockchain, et d’inverser le nom des blocs 23 et 24
Le script lit ligne par ligne le fichier login_srs.csv et créé une commande newblock pour chacune d’entre elles en les clôturant par un ‘;’.
Ces commandes newblock sont toutes concaténées dans une seule et même commande commandlist.
Puis, la command swapnames est ajoutée à la fin.
#!/bin/bash
# Création de la commande commandlist, qui va pouvoir embarquer plusieurs commandes autres
commandlist="commandlist"
# On concatène les commandes newblock en parcourant ligne par ligne le fichier login_srs.csv
while IFS=, read -r field1 field2 field3 field4
do
commandlist+=" newblock --uid ${field1} --email ${field2} --firstname ${field3} --secondname ${field4};"
done < login_srs.csv
# Ajout de la commande de swap pour le noms
commandlist+=" swapnames --index1 24 --index2 23;"
# Lancement du programme avec la commande commandlist suivie de l'ensemble des commandes nécessaires
echo "${commandlist}" | blockshell init --difficulty 3
Le lancement du script donne l’output suivant:

[…]

Une fois le 54ème bloc créé, la commande swapnames est lancée, et les blocs sont re-minés de 23 jusqu’à 54.
A l’origine:
Les changements ont bien été effectués:

On peut également visualiser le contenu de la blockchain par l’interface web de BlockShell:
python web.py

et en entrant dans la barre d’url du navigateur:
localhost:5000/
