Change .env.example politic; Explorer use cumulate default command; Edit README
This commit is contained in:
parent
757be0bfc5
commit
ad3e4d1ede
|
@ -1,5 +1,3 @@
|
||||||
DUNITER="https://duniter-g1.p2p.legal" # Adresse du noeud Duniter qui sera scanné
|
DUNITER="https://duniter-g1.p2p.legal" # Adresse du noeud Duniter qui sera scanné
|
||||||
DUNITER2="https://g1.duniter.org" # Seconde adresse par sécurité
|
ESNODE="http://g1.data.duniter.fr" # Adresse du noeud ElasticSearch qui sera scanné (Si nécessaire)
|
||||||
DUNITER3="https://duniter.g1.1000i100.fr" # Troisième adresse par sécurité
|
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)
|
||||||
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)
|
|
||||||
|
|
43
README.md
43
README.md
|
@ -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/)
|
### 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](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).
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
A exécuter dans un environnement Bash Debian/Ubuntu.
|
A exécuter dans un environnement Bash Debian/Ubuntu.
|
||||||
|
|
||||||
## Prérequis
|
*Si vous souhaitez modifier les paramètres par defaut, copiez le fichier .env.example en .env et adaptez les variables selon votre usage.*
|
||||||
|
|
||||||
Copiez le fichier .env.example en .env et adaptez les variables selon votre usage.
|
|
||||||
|
|
||||||
## Exécution
|
## 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`
|
`./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:
|
Pour générer la page web static:
|
||||||
|
|
||||||
`./g1-stats.sh web`
|
`./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
|
## Automatisation
|
||||||
|
|
||||||
Vous pouvez décider d'exécuter ce script régulièrement grâce à une tache cron.
|
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:
|
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
|
||||||
|
```
|
||||||
|
|
|
@ -5,6 +5,7 @@ GPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||||
source $GPATH/.env
|
source $GPATH/.env
|
||||||
|
|
||||||
jsonFile="$GPATH/db/daily.json"
|
jsonFile="$GPATH/db/daily.json"
|
||||||
|
cmd=$1
|
||||||
dateRange=$2
|
dateRange=$2
|
||||||
[[ -z $dateRange ]] && dateRange=$(jq -r '.[].date' $jsonFile | tail -n1)
|
[[ -z $dateRange ]] && dateRange=$(jq -r '.[].date' $jsonFile | tail -n1)
|
||||||
lineNbr=$(grep -n "$dateRange" $jsonFile | cut -d : -f 1)
|
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
|
jq -f lib/sumNbrMembers.jq <<<"$jsonDated" | jq '.UD*.nbrMembers' | awk '{ SUM += $1} END { printf "%.2f", SUM }'; echo
|
||||||
}
|
}
|
||||||
|
|
||||||
$1
|
[[ -z $cmd ]] && cmd=cumulate
|
||||||
|
|
||||||
|
$cmd
|
||||||
|
|
|
@ -13,7 +13,8 @@ set -e
|
||||||
|
|
||||||
# Récupération du chemin absolut du répertoir du script actuel
|
# Récupération du chemin absolut du répertoir du script actuel
|
||||||
GPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
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 ###
|
### Initialisation des données ###
|
||||||
startTime=$(date +'%H:%M')
|
startTime=$(date +'%H:%M')
|
||||||
|
|
Loading…
Reference in New Issue