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é
|
||||
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)
|
||||
|
|
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/)
|
||||
|
||||
*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
|
||||
```
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue