Une implémentation d'une chaine de blocs visant à comparer preuve de travail et preuve de participation.
- Connexions TCP entre les noeuds
- Sérialisation des messages en JSON
- Récupération des informations avec l'API du serveur
- État de la blockchain
- Nouveau bloc trouvé
- Implémentation du minage des blocs
- Vérification du bloc miné
- Vérification des transactions
- Calcul de la récompense de bloc
- Actualisation dynamique de la difficulté par les pairs
- Documentation des tests
- Documentation des classes
- Documentation des fonctions
Cloner le repo Github git clone
et effectuer les commandes depuis la racine du dossier (baroucoin/).
Démarrer le serveur web Streamlit dans un terminal via run.bat
(Windows), run.sh
(Linux) ou python -m streamlit run app\main.py
. Le navigateur s'ouvrira automatiquement ou naviguer à l'adresse http://localhost:8501/
puis cliquer sur le bouton pour lancer la simulation !
Si une erreur de ce type survient au lancement, simplement quitter la simulation ('q' dans le terminal), fermer la boîte de dialogue et rafraîchir la page (erreur interne de Streamlit).
Pour initialiser le serveur (jouant un rôle de DNS central pour simplifier la découvertes des noeuds du réseau), nous utilisons Docker.
En premier lieu, construire l'image :
cd /server
docker build -t barouchain_server .
Ensuite, lancer le conteneur avec l'image correspondante :
docker run -v $(pwd):/server -p 80:80 barouchain_server
run.bat test
(Windows), run.sh test
(Linux) ou python -m unittest test.test_XXX
pour faire tourner un test particulier.
Ce projet est réalisé par :