Files
linea-monorepo/testing-tools/extraData.sh
Julien Marchand a001342170 chore: Initial commit
Co-authored-by: Franklin Delehelle <franklin.delehelle@odena.eu>
Co-authored-by: Alexandre Belling <alexandrebelling8@gmail.com>
Co-authored-by: Pedro Novais <jpvnovais@gmail.com>
Co-authored-by: Roman Vaseev <4833306+Filter94@users.noreply.github.com>
Co-authored-by: Bradley Bown <bradbown@googlemail.com>
Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com>
Co-authored-by: Nikolai Golub <nikolai.golub@consensys.net>
Co-authored-by: The Dark Jester <thedarkjester@users.noreply.github.com>
Co-authored-by: jonesho <81145364+jonesho@users.noreply.github.com>
Co-authored-by: Gaurav Ahuja <gauravahuja9@gmail.com>
Co-authored-by: Azam Soleimanian <49027816+Soleimani193@users.noreply.github.com>
Co-authored-by: Andrei A <andrei.alexandru@consensys.net>
Co-authored-by: Arijit Dutta <37040536+arijitdutta67@users.noreply.github.com>
Co-authored-by: Gautam Botrel <gautam.botrel@gmail.com>
Co-authored-by: Ivo Kubjas <ivo.kubjas@consensys.net>
Co-authored-by: gusiri <dreamerty@postech.ac.kr>
Co-authored-by: FlorianHuc <florian.huc@gmail.com>
Co-authored-by: Arya Tabaie <arya.pourtabatabaie@gmail.com>
Co-authored-by: Julink <julien.fontanel@consensys.net>
Co-authored-by: Bogdan Ursu <bogdanursuoffice@gmail.com>
Co-authored-by: Jakub Trąd <jakubtrad@gmail.com>
Co-authored-by: Alessandro Sforzin <alessandro.sforzin@consensys.net>
Co-authored-by: Olivier Bégassat <olivier.begassat.cours@gmail.com>
Co-authored-by: Steve Huang <97596526+stevehuangc7s@users.noreply.github.com>
Co-authored-by: bkolad <blazejkolad@gmail.com>
Co-authored-by: fadyabuhatoum1 <139905934+fadyabuhatoum1@users.noreply.github.com>
Co-authored-by: Blas Rodriguez Irizar <rodrigblas@gmail.com>
Co-authored-by: Eduardo Andrade <eduardofandrade@gmail.com>
Co-authored-by: Ivo Kubjas <tsimmm@gmail.com>
Co-authored-by: Ludcour <ludovic.courcelas@consensys.net>
Co-authored-by: m4sterbunny <harrie.bickle@consensys.net>
Co-authored-by: Alex Panayi <145478258+alexandrospanayi@users.noreply.github.com>
Co-authored-by: Diana Borbe - ConsenSys <diana.borbe@consensys.net>
Co-authored-by: ThomasPiellard <thomas.piellard@gmail.com>
2024-07-31 18:17:20 +02:00

54 lines
2.0 KiB
Bash
Executable File

#!/bin/zsh
# Parallelization factor
N=8
endBlock=$1
blocksBack=$2
dataPoints=$3
endpoint=$4
echo "Args: endBlock=$1 blocksBack=$2 dataPoints=$3 endpoint=$4"
startBlock=$((endBlock - blocksBack))
step=$((blocksBack/dataPoints))
echo "Returning $dataPoints data points from $startBlock to $endBlock with a step of $step"
echo "Scraping data from $endpoint"
for ((i=startBlock; i <= endBlock; i=i+step))
do
(
echo -ne "\rProcessing block #$i / $endBlock";
hexBlockNumber=$(printf "0x%x\n" "$i");
blockFields=$(curl -sH "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBlockByNumber\",\"params\":[\"$hexBlockNumber\", false],\"id\":42}" "$endpoint" | jq '. | "\(.result.extraData) \(.result.timestamp) \(.result.number) \(.error.message)"')
# Removing a quote at the end
blockFields=${blockFields::-1}
extraData=$(echo "$blockFields"| cut -d' ' -f 1)
timestamp=$(echo "$blockFields"| cut -d' ' -f 2)
blockNumber=$(echo "$blockFields"| cut -d' ' -f 3)
error=$(echo "$blockFields"| cut -d' ' -f 4)
decimalTimestamp=$(printf "%d\n" "$timestamp")
decimalBlockNumber=$(printf "%d\n" "$blockNumber")
variableCost=$(echo "$extraData" | cut -c 2-66 | cut -c 13-20)
legacyCost=$(echo "$extraData" | cut -c 2-66 | cut -c 21-28)
decimalVariableCost=$(printf "%d" "0x$variableCost")
decimalLegacyCost=$(printf "%d" "0x$legacyCost")
# File system is used as a hash map pretty much
echo "$decimalVariableCost $decimalTimestamp $decimalBlockNumber $decimalLegacyCost $error" > "/tmp/$i-extraData.txt" &
) &
if [[ $(jobs -r -p | wc -l) -ge $N ]]; then
# now there are $N jobs already running, so wait here for any job
# to be finished so there is a place to start next one.
wait -n
fi
done
printf "\nGathering results...\n"
echo "Cleaning output.txt before writing"
rm output.txt
for ((i=startBlock; i <= endBlock; i=i+step))
do
echo -ne "\rReading /tmp/$i-extraData.txt"
cat /tmp/"$i"-extraData.txt >> output.txt
rm /tmp/"$i"-extraData.txt
done