/baroucoin

Une implémentation d'une chaine de blocs visant à comparer preuve de travail et preuve de participation

Primary LanguagePython

Baroucoin

Une implémentation d'une chaine de blocs visant à comparer preuve de travail et preuve de participation.

TODO

Communication entre les full nodes

  • Connexions TCP entre les noeuds
  • Sérialisation des messages en JSON
  • Récupération des informations avec l'API du serveur

Échanges d'informations entres les full nodes

  • État de la blockchain
  • Nouveau bloc trouvé

'ProofOfWork'

  • 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

Amélioration du code

  • Documentation des tests
  • Documentation des classes
  • Documentation des fonctions

Fonctionnement

Cloner le repo Github git clone et effectuer les commandes depuis la racine du dossier (baroucoin/).

Lancement de la simulation et visualisation des graphes

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 !

Bad message format

bad_message_format error

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

Lancement du serveur

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

Lancements des tests

run.bat test (Windows), run.sh test (Linux) ou python -m unittest test.test_XXX pour faire tourner un test particulier.

Participants

Ce projet est réalisé par :