Skip to content

Instantly share code, notes, and snippets.

@gotjoshua
Created February 17, 2021 19:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gotjoshua/866d4b46071e80ccca9b8c2a3107f112 to your computer and use it in GitHub Desktop.
Save gotjoshua/866d4b46071e80ccca9b8c2a3107f112 to your computer and use it in GitHub Desktop.
loop over a block range and report memo stats
#!/bin/bash
START_HEIGHT=${1:-41500}
END_HEIGHT=${2:-43200}
NODE="--node http://${3:-161.35.51.84}:26657"
LOOP_RANGE=$(eval echo {$START_HEIGHT..$END_HEIGHT})
RUNNING_MEMOS=()
for BLOCK_HEIGHT in $LOOP_RANGE; do
eachPage=1
CMD="regen query txs --events 'tx.height=${BLOCK_HEIGHT}' --limit 100 --page=${eachPage} $NODE"
# echo "First Page cmd: $CMD | jq ." # useful to check result
RESULT=$(eval $CMD)
MEMOS=$(echo $RESULT | jq -r '.txs[].tx.body.memo' | sed 's/Xtra.*//')
COUNT=$(echo $RESULT | jq -r '.total_count')
PAGES=$(( (COUNT + 100 - 1 ) / 100 )) # works because bash has no floating point https://stackoverflow.com/a/2395027/2919380
echo -en "page 1"
if [[ $PAGES -gt 1 ]]; then
RANGE=$(eval echo {2..$PAGES})
for eachPage in $RANGE; do
echo -en "\b\b..page ${eachPage}"
CMD="regen query txs --events 'tx.height=${BLOCK_HEIGHT}' --limit 100 --page=${eachPage} $NODE"
RESULT=$(eval $CMD)
MEMOS+=$(echo $RESULT | jq -r '.txs[].tx.body.memo' | sed 's/Xtra.*//')
done
fi
echo -e "\n\n Block: $BLOCK_HEIGHT Txs: $COUNT "
MEMOS=($(echo $MEMOS))
RUNNING_MEMOS+=( "${MEMOS[@]}" )
(IFS=$'\n'; sort <<< "${MEMOS[*]}") | uniq -c | sort -n
echo
(IFS=$'\n'; sort <<< "${RUNNING_MEMOS[*]}") | uniq -c | sort -n
echo -e "\n\n Total Txs: ${#RUNNING_MEMOS[@]} \n\n"
done
@gotjoshua
Copy link
Author


   Blocks   41500-43200
   Total Txs: 216229

    967 Noderunners
   1109 test
   1110 stress
   1253 nuevax
   1302 IDs
   1305 Army
   1407 regen71601760
   1431 max999
   1433 alexandr0
   1472 cyberG
   1494 ushakov
   1495 LIUHUA
   1509 JIANCHI
   1514 MINMIN
   1521 XIAOFEI
   1549 ericet
   1564 web34ever
   1567 WeStaking
   1595 y3v63n
   1743 Opt52
   1824 quest-opposed-guerrilla
   1913 stakethat
   2114 rootedsolutions
   2383 Agrestus
   2421 DSRV
   2850 Pandora
   4074 Chainflow
   4099 PoSFreak
   4123 posfreak
   5931 Provalidator
   6381 begreen
   8008 regenald
  14123 Cryptonic
  15921 waynewayner
  16457 BeeVault
  37199 Forbole
  53014 wallet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment