# Indexation de la blockchain Duniter/Ḡ1 ## Sous forme d'un fichier JSON journalisé et d'outils d'exploitation de ce JSON ### Visible sur: [https://g1-stats.axiom-team.fr/](https://g1-stats.axiom-team.fr/) Utilise l'[API BMA](https://github.com/duniter/duniter-bma/blob/master/doc/API.md) pour l'extraction et l'indexation des données de la [blockchain Duniter/Ḡ1](https://duniter.org).
A exécuter dans un environnement Bash Debian/Ubuntu. *Si vous souhaitez modifier les paramètres par defaut, copiez le fichier .env.example en .env et adaptez les variables selon votre usage.* ## Exécution Lancer le scan ainsi que tout le processus d'indexation depuis le début de la blockchain jusqu'à aujourd'hui ``` ./g1-stats.sh ``` *A la première execution, ce scan peut durer plusieurs heures!*
Pour pourrez suivre la progression du scan en temps réel.
Pour les exécutions ultérieures, un cache est géneré permettant de reprendre le scan là où il s'est arrêté, diminuant drastiquement le temps d'execution. Le fichier JSON est alors généré: `db/daily.json` Pour générer la page web static: ``` ./g1-stats.sh web ``` ## Exploration Une fois le fichier JSON correctement généré, vous pouvez utiliser `explorer.sh` pour l'exploiter.
Pour obtenir l'aide: ``` ./explorer.sh -h ``` **Ce script explorer.sh fonctionne de manière standalone, c'est à dire que vous pouvez l'utiliser en dehors de l'environnement Ḡ1Stats sans aucune dépendance:** ``` wget https://git.p2p.legal/axiom-team/g1-stats/raw/master/explorer.sh chmod u+x explorer.sh ``` ## Sauvegarde/Restauration Un script de sauvegarde se trouve dans le dossier `scripts`: ``` ./scripts/backup-cache.sh ``` Permettant le faire une copie de votre fichier json actuel ainsi que du cache qui lui correspond Pour restaurer le backup le plus récent: ``` ./scripts/restore-cache.sh ``` Pour restaurer un backup à partir d'un bloc précis, par exemple le bloc 4242 (le numéro du bloc se trouve dans le nom du backup du cache): ``` ./scripts/restore-cache.sh 4242 ``` ## Automatisation Vous pouvez décider d'exécuter ce script régulièrement grâce à une tache cron.
Par exemple pour l'exécuter toutes les 3 heures: ``` TERM=xterm # Nécessaire pour la gestion tput des sorties log 0 */3 * * * /path/to/script/g1-stats.sh web >> /var/log/g1-stats.log 2>&1 ```