63 lines
2.0 KiB
Markdown
63 lines
2.0 KiB
Markdown
# 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 l'exploiter via la commande:
|
|
```
|
|
./explorer.sh
|
|
```
|
|
|
|
*TODO: Détailler cette partie ...*
|
|
|
|
## 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
|
|
```
|