Improve grep for large matchs fir -F option; Fix UDToday when bloc is null
This commit is contained in:
parent
20575ce15e
commit
62a30b0260
|
@ -4,3 +4,4 @@ db/*
|
||||||
cache
|
cache
|
||||||
debug.log
|
debug.log
|
||||||
bk-debug.log
|
bk-debug.log
|
||||||
|
bk
|
||||||
|
|
22
g1-stats.sh
22
g1-stats.sh
|
@ -7,6 +7,7 @@
|
||||||
# Git: https://git.p2p.legal/axiom-team/g1-stats
|
# Git: https://git.p2p.legal/axiom-team/g1-stats
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
[[ -z $debug ]] && debug=false
|
||||||
# Exit script if error
|
# Exit script if error
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
@ -18,21 +19,25 @@ if [[ -e $SCRIPTPATH/.env ]]; then source $SCRIPTPATH/.env; else echo "Veuillez
|
||||||
startTime=$(date +'%H:%M')
|
startTime=$(date +'%H:%M')
|
||||||
day=$(date +'%y-%m-%d')
|
day=$(date +'%y-%m-%d')
|
||||||
dayP=$(date +'%d-%m-%y')
|
dayP=$(date +'%d-%m-%y')
|
||||||
indexhtml="$WEBPATH/index.html"
|
|
||||||
echo -e "\n############# $day à $startTime #############\n"
|
echo -e "\n############# $day à $startTime #############\n"
|
||||||
[[ -z $(which jq) || -z $(which bc) || -z $(which curl) ]] && sudo apt update && sudo apt install jq bc curl
|
[[ -z $(which jq) || -z $(which bc) || -z $(which curl) ]] && sudo apt update && sudo apt install jq bc curl
|
||||||
echo "Initialisation ..."
|
echo "Initialisation ..."
|
||||||
#TXBLOCKS=$(cat $SCRIPTPATH/db/txblocs) #kopa
|
if $debug; then
|
||||||
TXBLOCKS=$(curl -s ${DUNITER}/blockchain/with/tx | jq '.result.blocks[]')
|
TXBLOCKS=$(cat $SCRIPTPATH/db/txblocs)
|
||||||
|
membresPubkeys=$(cat db/membresPubkeys)
|
||||||
|
udBlocs=$(cat db/udblocs)
|
||||||
|
else
|
||||||
|
TXBLOCKS=$(curl -s ${DUNITER}/blockchain/with/tx | jq '.result.blocks[]')
|
||||||
|
membresPubkeys=$(curl -s ${DUNITER}/wot/members | jq -r '.results[].pubkey')
|
||||||
|
udBlocs=$(curl -s ${DUNITER}/blockchain/with/ud | jq '.result.blocks[]')
|
||||||
|
fi
|
||||||
|
|
||||||
TXBLOCKS=($(echo "$TXBLOCKS" | sort -hu | awk '{printf $1" "}'))
|
TXBLOCKS=($(echo "$TXBLOCKS" | sort -hu | awk '{printf $1" "}'))
|
||||||
unset 'TXBLOCKS[${#TXBLOCKS[@]}-1]'
|
unset 'TXBLOCKS[${#TXBLOCKS[@]}-1]'
|
||||||
echo "TXBLOCKS OK"
|
echo "TXBLOCKS OK"
|
||||||
membresPubkeys=$(curl -s ${DUNITER}/wot/members | jq -r '.results[].pubkey')
|
|
||||||
#membresPubkeys=$(cat db/membresPubkeys) #kopa
|
|
||||||
echo "membresPubkeys OK"
|
echo "membresPubkeys OK"
|
||||||
nbrMembers=$(echo "$membresPubkeys" | wc -l)
|
nbrMembers=$(echo "$membresPubkeys" | wc -l)
|
||||||
lastBloc=${TXBLOCKS[-1]}
|
lastBloc=${TXBLOCKS[-1]}
|
||||||
udBlocs=$(curl -s ${DUNITER}/blockchain/with/ud | jq '.result.blocks[]')
|
|
||||||
echo "udBlocs OK"
|
echo "udBlocs OK"
|
||||||
isWeb=$1
|
isWeb=$1
|
||||||
jsonFile="$SCRIPTPATH/db/daily.json"
|
jsonFile="$SCRIPTPATH/db/daily.json"
|
||||||
|
@ -61,5 +66,6 @@ displayStats
|
||||||
|
|
||||||
### Fin de programme
|
### Fin de programme
|
||||||
day=$(date +'%d-%m-%y')
|
day=$(date +'%d-%m-%y')
|
||||||
echo -e " ---"
|
echo "
|
||||||
echo "$day - Heure de fin: $(date +'%H:%M')"
|
---
|
||||||
|
$day - Heure de fin: $(date +'%H:%M')"
|
||||||
|
|
|
@ -17,18 +17,18 @@ addMembers() {
|
||||||
simpleWallets="$wallets"
|
simpleWallets="$wallets"
|
||||||
for i in $(ls x*); do
|
for i in $(ls x*); do
|
||||||
local walletToSup=$(cat $i)
|
local walletToSup=$(cat $i)
|
||||||
simpleWallets=$(echo "$simpleWallets" | grep -v "$walletToSup")
|
simpleWallets=$(echo "$simpleWallets" | grep -vF "$walletToSup")
|
||||||
done
|
done
|
||||||
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
|
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
web() {
|
web() {
|
||||||
|
|
||||||
[ ! -d $WEBPATH/history/ ] && mkdir -p $WEBPATH/history/
|
[ ! -d $WEBPATH/history/ ] && mkdir -p $WEBPATH/history/
|
||||||
[ ! -d $WEBPATH/graph/ ] && mkdir -p $WEBPATH/graph/
|
[ ! -d $WEBPATH/graph/ ] && mkdir -p $WEBPATH/graph/
|
||||||
[ ! -d $WEBPATH/css ] && cp -r $SCRIPTPATH/tpl/css $WEBPATH/
|
[ ! -d $WEBPATH/css ] && cp -r $SCRIPTPATH/tpl/css $WEBPATH/
|
||||||
[ ! -d $WEBPATH/js ] && cp -r $SCRIPTPATH/tpl/js $WEBPATH/
|
[ ! -d $WEBPATH/js ] && cp -r $SCRIPTPATH/tpl/js $WEBPATH/
|
||||||
|
indexhtml="$WEBPATH/index.html"
|
||||||
cp $SCRIPTPATH/tpl/index.html $indexhtml
|
cp $SCRIPTPATH/tpl/index.html $indexhtml
|
||||||
|
|
||||||
datePrevious=$(date +'%y-%m-%d' -d "$day -1 day")
|
datePrevious=$(date +'%y-%m-%d' -d "$day -1 day")
|
||||||
|
@ -52,7 +52,7 @@ web() {
|
||||||
sed -i "s/_soldeM/$soldeM/g" $indexhtml
|
sed -i "s/_soldeM/$soldeM/g" $indexhtml
|
||||||
sed -i "s/_pourcentSimpleWallet/$pourcentSimpleWallet/g" $indexhtml
|
sed -i "s/_pourcentSimpleWallet/$pourcentSimpleWallet/g" $indexhtml
|
||||||
sed -i "s/_nonConsumedUDT/$nonConsumedUDT/g" $indexhtml
|
sed -i "s/_nonConsumedUDT/$nonConsumedUDT/g" $indexhtml
|
||||||
sed -i "s/_monetaryMass/$monetaryMass/g" $indexhtml
|
sed -i "s/_monetaryMass/$monetaryMass/g" $indexhtml
|
||||||
sed -i "s/_sleepyG1/$sleepyG1/g" $indexhtml
|
sed -i "s/_sleepyG1/$sleepyG1/g" $indexhtml
|
||||||
[[ -z $(grep '"display:none;" class="previous"' $indexhtml) ]] && sed -i "s/_datePrevious/$datePrevious/g" $indexhtml && setPrevious="Oui"
|
[[ -z $(grep '"display:none;" class="previous"' $indexhtml) ]] && sed -i "s/_datePrevious/$datePrevious/g" $indexhtml && setPrevious="Oui"
|
||||||
[[ -z $(grep '"display:none;" class="next"' $indexhtml) ]] && sed -i "s/_dateNext/$dateNext/g" $indexhtml && setNext="Oui"
|
[[ -z $(grep '"display:none;" class="next"' $indexhtml) ]] && sed -i "s/_dateNext/$dateNext/g" $indexhtml && setNext="Oui"
|
||||||
|
@ -116,25 +116,27 @@ nbrWallets() {
|
||||||
}
|
}
|
||||||
|
|
||||||
displayStats() {
|
displayStats() {
|
||||||
echo -e "\n ---\n"
|
echo "
|
||||||
echo "Noeud: $DUNITER"
|
---
|
||||||
echo "Nombre total de wallet: $nbrTotalWallets"
|
Noeud: $DUNITER
|
||||||
echo "Nombre de membres: $nbrMembers (${pourcentMbrs}%)"
|
Nombre total de wallet: $nbrTotalWallets
|
||||||
echo "Nombre de simple portefeuille: $nbrSimpleWallets (${pourcentWallets}%)"
|
Nombre de membres: $nbrMembers (${pourcentMbrs}%)
|
||||||
echo -e "\n ---\n"
|
Nombre de simple portefeuille: $nbrSimpleWallets (${pourcentWallets}%)
|
||||||
echo "Reçus Wallets: $sumRW"
|
---
|
||||||
echo "Reçus Membres: $sumRM"
|
Reçus Wallets: $sumRW
|
||||||
echo "Reçus Total: $sumRT"
|
Reçus Membres: $sumRM
|
||||||
echo -e " ---"
|
Reçus Total: $sumRT
|
||||||
echo "Envoyé Wallets: $sumSW"
|
---
|
||||||
echo "Envoyé Membres: $sumSM"
|
Envoyé Wallets: $sumSW
|
||||||
echo "Envoyé Total: $sumST"
|
Envoyé Membres: $sumSM
|
||||||
echo -e " ---"
|
Envoyé Total: $sumST
|
||||||
echo "Solde Wallets: $soldeW"
|
---
|
||||||
echo "Solde Membres: $soldeM"
|
Solde Wallets: $soldeW
|
||||||
echo -e " ---"
|
Solde Membres: $soldeM
|
||||||
echo -e "Masse Monétaire:\t $monetaryMass Ḡ1"
|
---
|
||||||
echo -e "\n ---\n Analyse\n ---"
|
Masse Monétaire: $monetaryMass Ḡ1
|
||||||
echo -e "$sleepyG1% des Ḡ1 n'ont jamais été utilisés."
|
---
|
||||||
|
Analyse
|
||||||
|
---
|
||||||
|
$sleepyG1% des Ḡ1 n'ont jamais été utilisés."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,18 +2,18 @@
|
||||||
|
|
||||||
scanTxWallets() {
|
scanTxWallets() {
|
||||||
local REGEX_PUBKEYS="[a-zA-Z0-9]{42,44}"
|
local REGEX_PUBKEYS="[a-zA-Z0-9]{42,44}"
|
||||||
|
|
||||||
# On vérifie le cache existant et on démarre au dernier bloc en cache
|
# On vérifie le cache existant et on démarre au dernier bloc en cache
|
||||||
if ls $SCRIPTPATH/cache/walletsUp-* > /dev/null 2>&1; then
|
if ls $SCRIPTPATH/cache/walletsUp-* > /dev/null 2>&1; then
|
||||||
local startFile=$(ls $SCRIPTPATH/cache/walletsUp-* | tail -n1)
|
local startFile=$(ls $SCRIPTPATH/cache/walletsUp-* | tail -n1)
|
||||||
local startIter=$(echo "$startFile" | awk -F '-' '{ print $NF }')
|
local startIter=$(echo "$startFile" | awk -F '-' '{ print $NF }')
|
||||||
|
((startIter++))
|
||||||
local startBloc=$(head -n1 "$startFile")
|
local startBloc=$(head -n1 "$startFile")
|
||||||
wallets=$(tail -n +2 "$startFile" | sed '/---/Q' | sort -u)
|
wallets=$(tail -n +2 "$startFile" | sed '/---/Q' | sort -u)
|
||||||
local walletsAuj=$(cat "$startFile" | sed -e '1,/---/d' | sed '/---/Q' | grep .)$'\n'
|
local walletsAuj=$(cat "$startFile" | sed -e '1,/---/d' | sed '/---/Q' | grep .)$'\n'
|
||||||
local nbrMembersYesterday=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 1)
|
local nbrMembersYesterday=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 1)
|
||||||
local blockDateLast=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 2)
|
local blockDateLast=$(cat "$startFile" | sed -e '1,/---/d' | sed -e '1,/---/d' | sed '/---/Q' | grep . | cut -d '|' -f 2)
|
||||||
|
|
||||||
##kopa [[ $lastBloc == $startBloc ]] && return 10
|
[[ $lastBloc == $startBloc ]] && return
|
||||||
rm $startFile
|
rm $startFile
|
||||||
else
|
else
|
||||||
local startIter=0
|
local startIter=0
|
||||||
|
@ -22,11 +22,10 @@ scanTxWallets() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
incExec=1
|
incExec=1
|
||||||
for i in ${!TXBLOCKS[*]}; do
|
for ((i=$startIter; i<${#TXBLOCKS[@]}; i++)); do
|
||||||
startExec=$(($(date +%s%N)/1000000))
|
startExec=$(($(date +%s%N)/1000000))
|
||||||
bloc=${TXBLOCKS[$i]}
|
bloc=${TXBLOCKS[$i]}
|
||||||
[[ -z $bloc ]] && break
|
[[ -z $bloc ]] && break
|
||||||
[[ $startIter != 0 && $i -le $startIter ]] && continue
|
|
||||||
# [[ $i -lt 290 ]] && continue #kopa
|
# [[ $i -lt 290 ]] && continue #kopa
|
||||||
sleep 0.05
|
sleep 0.05
|
||||||
|
|
||||||
|
@ -84,23 +83,23 @@ scanTxWallets() {
|
||||||
|
|
||||||
# Exporte les valeurs de la journée dans le fichier JSON
|
# Exporte les valeurs de la journée dans le fichier JSON
|
||||||
jsonify() {
|
jsonify() {
|
||||||
[[ -z $valueReceivedW ]] && valueReceivedW=0 || valueReceivedW=$(echo "scale=2; $valueReceivedW/100" | bc)
|
[[ -z $valueReceivedW ]] && valueReceivedW=0 || valueReceivedW=$(echo "scale=2; $valueReceivedW/100" | bc)
|
||||||
[[ -z $valueReceivedM ]] && valueReceivedM=0 || valueReceivedM=$(echo "scale=2; $valueReceivedM/100" | bc)
|
[[ -z $valueReceivedM ]] && valueReceivedM=0 || valueReceivedM=$(echo "scale=2; $valueReceivedM/100" | bc)
|
||||||
[[ -z $valueSentM ]] && valueSentM=0 || valueSentM=$(echo "scale=2; $valueSentM/100" | bc)
|
[[ -z $valueSentM ]] && valueSentM=0 || valueSentM=$(echo "scale=2; $valueSentM/100" | bc)
|
||||||
[[ -z $valueSentW ]] && valueSentW=0 || valueSentW=$(echo "scale=2; $valueSentW/100" | bc)
|
[[ -z $valueSentW ]] && valueSentW=0 || valueSentW=$(echo "scale=2; $valueSentW/100" | bc)
|
||||||
[[ -z $nbrMembersToday ]] && nbrMembersToday=0
|
[[ -z $nbrMembersToday ]] && nbrMembersToday=0
|
||||||
[[ -z $nbrWallets ]] && nbrWallets=0
|
[[ -z $nbrWallets ]] && nbrWallets=0
|
||||||
[[ -z $UDToday ]] && UDToday=0
|
[[ -z $UDToday ]] && UDToday=0
|
||||||
|
|
||||||
local jsonTPL=$(sed s/_DATE/$blockDateLast/g $SCRIPTPATH/tpl/daily.json)
|
local jsonTPL=$(sed s/_DATE/$blockDateLast/g $SCRIPTPATH/tpl/daily.json)
|
||||||
local jsonTPL=$(sed s/_UDTODAY/$UDToday/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_UDTODAY/$UDToday/g <<< $jsonTPL)
|
||||||
local jsonTPL=$(sed s/_RWALLETS/$valueReceivedW/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_RWALLETS/$valueReceivedW/g <<< $jsonTPL)
|
||||||
local jsonTPL=$(sed s/_SWALLETS/$valueSentW/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_SWALLETS/$valueSentW/g <<< $jsonTPL)
|
||||||
local jsonTPL=$(sed s/_RMEMBERS/$valueReceivedM/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_RMEMBERS/$valueReceivedM/g <<< $jsonTPL)
|
||||||
local jsonTPL=$(sed s/_SMEMBERS/$valueSentM/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_SMEMBERS/$valueSentM/g <<< $jsonTPL)
|
||||||
local jsonTPL=$(sed s/_NBRMEMBERS/$nbrMembersToday/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_NBRMEMBERS/$nbrMembersToday/g <<< $jsonTPL)
|
||||||
local jsonTPL=$(sed s/_NBRWALLETS/$nbrWallets/g <<< $jsonTPL)
|
local jsonTPL=$(sed s/_NBRWALLETS/$nbrWallets/g <<< $jsonTPL)
|
||||||
echo -e "$jsonTPL" | tr -d '\\' >> $jsonFile
|
echo -e "$jsonTPL" | tr -d '\\' >> $jsonFile
|
||||||
}
|
}
|
||||||
|
|
||||||
# Si la date du bloc courant est différente du bloc précedent, alors on stock les valeurs journalières
|
# Si la date du bloc courant est différente du bloc précedent, alors on stock les valeurs journalières
|
||||||
|
@ -119,7 +118,7 @@ scanTxWallets() {
|
||||||
local i
|
local i
|
||||||
for i in $(ls x*); do
|
for i in $(ls x*); do
|
||||||
local walletToSup=$(cat $i)
|
local walletToSup=$(cat $i)
|
||||||
local walletsAujTmp=$(echo "$walletsAujTmp" | grep -v "$walletToSup")
|
local walletsAujTmp=$(echo "$walletsAujTmp" | grep -vF "$walletToSup")
|
||||||
done
|
done
|
||||||
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
|
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
@ -133,9 +132,13 @@ scanTxWallets() {
|
||||||
nbrMembersToday=$(($nbrMembersTotalToday-$nbrMembersYesterday))
|
nbrMembersToday=$(($nbrMembersTotalToday-$nbrMembersYesterday))
|
||||||
|
|
||||||
# Obtention du dividende à ce block
|
# Obtention du dividende à ce block
|
||||||
udBlock=$(for i in $udBlocs; do [[ $i -ge $bloc ]] && echo $lastBloc && break; lastBloc=$i; done)
|
local j
|
||||||
UDToday=$(curl -s ${DUNITER}/blockchain/block/$udBlock | jq '.dividend')
|
for j in $udBlocs; do
|
||||||
UDToday=$(echo "scale=2; $UDToday/100" | bc)
|
[[ $j -ge $bloc ]] && break
|
||||||
|
lastUdBloc=$j
|
||||||
|
done
|
||||||
|
[[ -z $lastUdBloc ]] && lastUdBloc=$(echo "$udBlocs" | tail -n1)
|
||||||
|
UDToday=$(curl -s ${DUNITER}/blockchain/block/$lastUdBloc | jq '.dividend' | xargs -i echo "scale=2; {}/100" | bc)
|
||||||
|
|
||||||
jsonify
|
jsonify
|
||||||
}
|
}
|
||||||
|
@ -202,14 +205,13 @@ scanTxWallets() {
|
||||||
clear
|
clear
|
||||||
echo "Heure de début: $startTime"
|
echo "Heure de début: $startTime"
|
||||||
echo
|
echo
|
||||||
echo "Scan en cours: $progress% - $bloc/$lastBloc"
|
echo "Scan en cours: $progress% - $bloc/$lastBloc (Boucle $i)"
|
||||||
echo "Date: $blockDate"
|
echo "Date: $blockDate"
|
||||||
echo "Temps d'execution: $midTimeExec"
|
echo "Temps d'execution: $midTimeExec"
|
||||||
else
|
else
|
||||||
echo "Scan des blocs avec transactions en cours ..."
|
echo "Scan des blocs avec transactions en cours ..."
|
||||||
fi
|
fi
|
||||||
|
# [[ $i -ge 35949 ]] && break #kopa
|
||||||
# [[ $i -ge 90 ]] && break #kopa
|
|
||||||
done
|
done
|
||||||
|
|
||||||
[[ $blockDateLast == $blockDate ]] && applyToday
|
[[ $blockDateLast == $blockDate ]] && applyToday
|
||||||
|
|
Loading…
Reference in New Issue