Change .env.example politic; Explorer use cumulate default command; Edit README

This commit is contained in:
poka 2020-09-25 02:40:08 +02:00
parent 757be0bfc5
commit ad3e4d1ede
4 changed files with 42 additions and 17 deletions

View File

@ -1,5 +1,3 @@
DUNITER="https://duniter-g1.p2p.legal" # Adresse du noeud Duniter qui sera scanné
DUNITER2="https://g1.duniter.org" # Seconde adresse par sécurité
DUNITER3="https://duniter.g1.1000i100.fr" # Troisième adresse par sécurité
ESNODE="http://g1.data.duniter.fr" # Adresse du noeud ElasticSearch qui sera scanné
WEBPATH="/var/www/g1-stats" # Dossier qui sera créé si vous choisissez l'option web pour la mise en ligne des données (nécessite une configuration apache ou nginx)
DUNITER="https://duniter-g1.p2p.legal" # Adresse du noeud Duniter qui sera scanné
ESNODE="http://g1.data.duniter.fr" # Adresse du noeud ElasticSearch qui sera scanné (Si nécessaire)
WEBPATH="/var/www/g1-stats" # Dossier qui sera créé si vous choisissez l'option web pour la mise en ligne des données (nécessite une configuration apache ou nginx)

View File

@ -1,27 +1,50 @@
# Extraction de quelques chiffres liés à la ḡ1
# Indexation de la blockchain Duniter/Ḡ1
## Sous forme d'un fichier JSON journalier et d'outils d'exploitation de ce JSON
### Visible sur: [https://g1-stats.axiom-team.fr/](https://g1-stats.axiom-team.fr/)
*Ce code n'a pas été testé dans un autre environement que le miens (Debian 10), il est publié par simple soucis de transparence et d'audit*
Utilise l'API BMA pour l'extraction des clés publiques ḡ1 membres et non membres, ainsi que l'API ElasticSearch de Cesium+ pour la récupération des soldes par soucis d'optimisation.
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.
## Prérequis
Copiez le fichier .env.example en .env et adaptez les variables selon votre usage.
*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: Plus 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:
`echo "0 */3 * * * /path/to/script/g1-stats.sh web >> /var/log/g1-stats.log 2>&1" >> /var/spool/cron/crontabs/$USER`
```
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
```

View File

@ -5,6 +5,7 @@ GPATH="$( cd "$(dirname "$0")" ; pwd -P )"
source $GPATH/.env
jsonFile="$GPATH/db/daily.json"
cmd=$1
dateRange=$2
[[ -z $dateRange ]] && dateRange=$(jq -r '.[].date' $jsonFile | tail -n1)
lineNbr=$(grep -n "$dateRange" $jsonFile | cut -d : -f 1)
@ -53,4 +54,6 @@ mass() {
jq -f lib/sumNbrMembers.jq <<<"$jsonDated" | jq '.UD*.nbrMembers' | awk '{ SUM += $1} END { printf "%.2f", SUM }'; echo
}
$1
[[ -z $cmd ]] && cmd=cumulate
$cmd

View File

@ -13,7 +13,8 @@ set -e
# Récupération du chemin absolut du répertoir du script actuel
GPATH="$( cd "$(dirname "$0")" ; pwd -P )"
if [[ -e $GPATH/.env ]]; then source $GPATH/.env; else echo "Veuillez créer votre fichier .env inspiré de .env.example" && exit 1; fi
[[ ! -f $GPATH/.env ]] && cp $GPATH/.env.example $GPATH/.env
source $GPATH/.env
### Initialisation des données ###
startTime=$(date +'%H:%M')