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
|
||||
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
|
||||
################################################################################
|
||||
|
||||
[[ -z $debug ]] && debug=false
|
||||
# Exit script if error
|
||||
set -e
|
||||
|
||||
|
@ -18,21 +19,25 @@ if [[ -e $SCRIPTPATH/.env ]]; then source $SCRIPTPATH/.env; else echo "Veuillez
|
|||
startTime=$(date +'%H:%M')
|
||||
day=$(date +'%y-%m-%d')
|
||||
dayP=$(date +'%d-%m-%y')
|
||||
indexhtml="$WEBPATH/index.html"
|
||||
echo -e "\n############# $day à $startTime #############\n"
|
||||
[[ -z $(which jq) || -z $(which bc) || -z $(which curl) ]] && sudo apt update && sudo apt install jq bc curl
|
||||
echo "Initialisation ..."
|
||||
#TXBLOCKS=$(cat $SCRIPTPATH/db/txblocs) #kopa
|
||||
TXBLOCKS=$(curl -s ${DUNITER}/blockchain/with/tx | jq '.result.blocks[]')
|
||||
if $debug; then
|
||||
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" "}'))
|
||||
unset 'TXBLOCKS[${#TXBLOCKS[@]}-1]'
|
||||
echo "TXBLOCKS OK"
|
||||
membresPubkeys=$(curl -s ${DUNITER}/wot/members | jq -r '.results[].pubkey')
|
||||
#membresPubkeys=$(cat db/membresPubkeys) #kopa
|
||||
echo "membresPubkeys OK"
|
||||
nbrMembers=$(echo "$membresPubkeys" | wc -l)
|
||||
lastBloc=${TXBLOCKS[-1]}
|
||||
udBlocs=$(curl -s ${DUNITER}/blockchain/with/ud | jq '.result.blocks[]')
|
||||
echo "udBlocs OK"
|
||||
isWeb=$1
|
||||
jsonFile="$SCRIPTPATH/db/daily.json"
|
||||
|
@ -61,5 +66,6 @@ displayStats
|
|||
|
||||
### Fin de programme
|
||||
day=$(date +'%d-%m-%y')
|
||||
echo -e " ---"
|
||||
echo "$day - Heure de fin: $(date +'%H:%M')"
|
||||
echo "
|
||||
---
|
||||
$day - Heure de fin: $(date +'%H:%M')"
|
||||
|
|
|
@ -17,18 +17,18 @@ addMembers() {
|
|||
simpleWallets="$wallets"
|
||||
for i in $(ls x*); do
|
||||
local walletToSup=$(cat $i)
|
||||
simpleWallets=$(echo "$simpleWallets" | grep -v "$walletToSup")
|
||||
simpleWallets=$(echo "$simpleWallets" | grep -vF "$walletToSup")
|
||||
done
|
||||
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
web() {
|
||||
|
||||
[ ! -d $WEBPATH/history/ ] && mkdir -p $WEBPATH/history/
|
||||
[ ! -d $WEBPATH/graph/ ] && mkdir -p $WEBPATH/graph/
|
||||
[ ! -d $WEBPATH/css ] && cp -r $SCRIPTPATH/tpl/css $WEBPATH/
|
||||
[ ! -d $WEBPATH/js ] && cp -r $SCRIPTPATH/tpl/js $WEBPATH/
|
||||
indexhtml="$WEBPATH/index.html"
|
||||
cp $SCRIPTPATH/tpl/index.html $indexhtml
|
||||
|
||||
datePrevious=$(date +'%y-%m-%d' -d "$day -1 day")
|
||||
|
@ -52,7 +52,7 @@ web() {
|
|||
sed -i "s/_soldeM/$soldeM/g" $indexhtml
|
||||
sed -i "s/_pourcentSimpleWallet/$pourcentSimpleWallet/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
|
||||
[[ -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"
|
||||
|
@ -116,25 +116,27 @@ nbrWallets() {
|
|||
}
|
||||
|
||||
displayStats() {
|
||||
echo -e "\n ---\n"
|
||||
echo "Noeud: $DUNITER"
|
||||
echo "Nombre total de wallet: $nbrTotalWallets"
|
||||
echo "Nombre de membres: $nbrMembers (${pourcentMbrs}%)"
|
||||
echo "Nombre de simple portefeuille: $nbrSimpleWallets (${pourcentWallets}%)"
|
||||
echo -e "\n ---\n"
|
||||
echo "Reçus Wallets: $sumRW"
|
||||
echo "Reçus Membres: $sumRM"
|
||||
echo "Reçus Total: $sumRT"
|
||||
echo -e " ---"
|
||||
echo "Envoyé Wallets: $sumSW"
|
||||
echo "Envoyé Membres: $sumSM"
|
||||
echo "Envoyé Total: $sumST"
|
||||
echo -e " ---"
|
||||
echo "Solde Wallets: $soldeW"
|
||||
echo "Solde Membres: $soldeM"
|
||||
echo -e " ---"
|
||||
echo -e "Masse Monétaire:\t $monetaryMass Ḡ1"
|
||||
echo -e "\n ---\n Analyse\n ---"
|
||||
echo -e "$sleepyG1% des Ḡ1 n'ont jamais été utilisés."
|
||||
echo "
|
||||
---
|
||||
Noeud: $DUNITER
|
||||
Nombre total de wallet: $nbrTotalWallets
|
||||
Nombre de membres: $nbrMembers (${pourcentMbrs}%)
|
||||
Nombre de simple portefeuille: $nbrSimpleWallets (${pourcentWallets}%)
|
||||
---
|
||||
Reçus Wallets: $sumRW
|
||||
Reçus Membres: $sumRM
|
||||
Reçus Total: $sumRT
|
||||
---
|
||||
Envoyé Wallets: $sumSW
|
||||
Envoyé Membres: $sumSM
|
||||
Envoyé Total: $sumST
|
||||
---
|
||||
Solde Wallets: $soldeW
|
||||
Solde Membres: $soldeM
|
||||
---
|
||||
Masse Monétaire: $monetaryMass Ḡ1
|
||||
---
|
||||
Analyse
|
||||
---
|
||||
$sleepyG1% des Ḡ1 n'ont jamais été utilisés."
|
||||
}
|
||||
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
|
||||
scanTxWallets() {
|
||||
local REGEX_PUBKEYS="[a-zA-Z0-9]{42,44}"
|
||||
|
||||
# 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
|
||||
local startFile=$(ls $SCRIPTPATH/cache/walletsUp-* | tail -n1)
|
||||
local startIter=$(echo "$startFile" | awk -F '-' '{ print $NF }')
|
||||
((startIter++))
|
||||
local startBloc=$(head -n1 "$startFile")
|
||||
wallets=$(tail -n +2 "$startFile" | sed '/---/Q' | sort -u)
|
||||
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 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
|
||||
else
|
||||
local startIter=0
|
||||
|
@ -22,11 +22,10 @@ scanTxWallets() {
|
|||
fi
|
||||
|
||||
incExec=1
|
||||
for i in ${!TXBLOCKS[*]}; do
|
||||
for ((i=$startIter; i<${#TXBLOCKS[@]}; i++)); do
|
||||
startExec=$(($(date +%s%N)/1000000))
|
||||
bloc=${TXBLOCKS[$i]}
|
||||
[[ -z $bloc ]] && break
|
||||
[[ $startIter != 0 && $i -le $startIter ]] && continue
|
||||
# [[ $i -lt 290 ]] && continue #kopa
|
||||
sleep 0.05
|
||||
|
||||
|
@ -84,23 +83,23 @@ scanTxWallets() {
|
|||
|
||||
# Exporte les valeurs de la journée dans le fichier JSON
|
||||
jsonify() {
|
||||
[[ -z $valueReceivedW ]] && valueReceivedW=0 || valueReceivedW=$(echo "scale=2; $valueReceivedW/100" | bc)
|
||||
[[ -z $valueReceivedM ]] && valueReceivedM=0 || valueReceivedM=$(echo "scale=2; $valueReceivedM/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 $valueSentM ]] && valueSentM=0 || valueSentM=$(echo "scale=2; $valueSentM/100" | bc)
|
||||
[[ -z $valueSentW ]] && valueSentW=0 || valueSentW=$(echo "scale=2; $valueSentW/100" | bc)
|
||||
[[ -z $nbrMembersToday ]] && nbrMembersToday=0
|
||||
[[ -z $nbrWallets ]] && nbrWallets=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/_RWALLETS/$valueReceivedW/g <<< $jsonTPL)
|
||||
local jsonTPL=$(sed s/_RWALLETS/$valueReceivedW/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/_NBRMEMBERS/$nbrMembersToday/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
|
||||
|
@ -119,7 +118,7 @@ scanTxWallets() {
|
|||
local i
|
||||
for i in $(ls x*); do
|
||||
local walletToSup=$(cat $i)
|
||||
local walletsAujTmp=$(echo "$walletsAujTmp" | grep -v "$walletToSup")
|
||||
local walletsAujTmp=$(echo "$walletsAujTmp" | grep -vF "$walletToSup")
|
||||
done
|
||||
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
|
||||
popd >/dev/null
|
||||
|
@ -133,9 +132,13 @@ scanTxWallets() {
|
|||
nbrMembersToday=$(($nbrMembersTotalToday-$nbrMembersYesterday))
|
||||
|
||||
# Obtention du dividende à ce block
|
||||
udBlock=$(for i in $udBlocs; do [[ $i -ge $bloc ]] && echo $lastBloc && break; lastBloc=$i; done)
|
||||
UDToday=$(curl -s ${DUNITER}/blockchain/block/$udBlock | jq '.dividend')
|
||||
UDToday=$(echo "scale=2; $UDToday/100" | bc)
|
||||
local j
|
||||
for j in $udBlocs; do
|
||||
[[ $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
|
||||
}
|
||||
|
@ -202,14 +205,13 @@ scanTxWallets() {
|
|||
clear
|
||||
echo "Heure de début: $startTime"
|
||||
echo
|
||||
echo "Scan en cours: $progress% - $bloc/$lastBloc"
|
||||
echo "Scan en cours: $progress% - $bloc/$lastBloc (Boucle $i)"
|
||||
echo "Date: $blockDate"
|
||||
echo "Temps d'execution: $midTimeExec"
|
||||
else
|
||||
echo "Scan des blocs avec transactions en cours ..."
|
||||
fi
|
||||
|
||||
# [[ $i -ge 90 ]] && break #kopa
|
||||
# [[ $i -ge 35949 ]] && break #kopa
|
||||
done
|
||||
|
||||
[[ $blockDateLast == $blockDate ]] && applyToday
|
||||
|
|
Loading…
Reference in New Issue