mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-08 19:58:01 -05:00
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>
54 lines
2.0 KiB
Bash
Executable File
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
|