Split large wallet list for grep

This commit is contained in:
poka 2020-09-21 06:37:52 +02:00
parent b67de6d2d1
commit bd2b6abf99
3 changed files with 37 additions and 5 deletions

View File

@ -22,8 +22,8 @@ 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[]')
TXBLOCKS=$(cat $SCRIPTPATH/db/txblocs) #kopa
#TXBLOCKS=$(curl -s ${DUNITER}/blockchain/with/tx | jq '.result.blocks[]')
TXBLOCKS=($(echo "$TXBLOCKS" | sort -hu | awk '{printf $1" "}'))
unset 'TXBLOCKS[${#TXBLOCKS[@]}-1]'
echo "TXBLOCKS OK"

View File

@ -6,7 +6,21 @@ addMembers() {
wallets=$(echo -e "$wallets" | sort -u)
echo "Isolation des simples portefeuilles..."
simpleWallets=$(echo "$wallets" | grep -v "$membresPubkeys")
# On split la listes des wallets pour ne pas saturer grep
local id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
local tmpSplit="/tmp/g1stats-splits-$id"
mkdir -p $tmpSplit
pushd $tmpSplit >/dev/null || exit 1
split -d -l 2500 <<<"$membresPubkeys"
simpleWallets="$wallets"
for i in $(ls x*); do
local walletToSup=$(cat $i)
simpleWallets=$(echo "$simpleWallets" | grep -v "$walletToSup")
done
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
popd >/dev/null
}
web() {

View File

@ -107,7 +107,25 @@ scanTxWallets() {
applyToday() {
[[ -z $wallets ]] && wallets="#"
WALLETS=$(echo -e "$wallets" | grep .)
nbrWallets=$(echo -e "$walletsAuj" | sort -u | awk 'NF' | grep -v "$membresPubkeys" | grep -v "$WALLETS" | wc -l)
# On split la listes des wallets pour ne pas saturer grep
local id=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
local tmpSplit="/tmp/g1stats-splits-$id"
mkdir -p $tmpSplit
pushd $tmpSplit >/dev/null || exit 1
echo -e "$membresPubkeys\n$WALLETS" | split -d -l 2500
walletsAujTmp=$(echo -e "$walletsAuj" | sort -u | awk 'NF')
local i
for i in $(ls x*); do
local walletToSup=$(cat $i)
local walletsAujTmp=$(echo "$walletsAujTmp" | grep -v "$walletToSup")
done
[[ -d $tmpSplit ]] && rm -r $tmpSplit || exit 1
popd >/dev/null
nbrWallets=$(echo "$walletsAujTmp" | wc -l)
unset walletsAujTmp
# Calcul du nombre de nouveaux membres à ce block
nbrMembersTotalToday=$(jq '.membersCount' <<<"$blocBrut")
@ -191,7 +209,7 @@ scanTxWallets() {
echo "Scan des blocs avec transactions en cours ..."
fi
# [[ $i -ge 10 ]] && break #kopa
[[ $i -ge 90 ]] && break #kopa
done
[[ $blockDateLast == $blockDate ]] && applyToday