Sync Algorand Node Network using Fast Catchup (default install) on Raspberry Pi 4 Computer Model B 4GB RAM on 32 GB MicroSD

I am running an Algorand Node with CLI utilities installed system-wide.
To sync network I am using fast catchup on mainnet.
Why it is slow like below?

pi@raspberrypi:~/node $ CATCHPOINT=$(curl https://algorand-catchpoints.s3.us-east-2.amazonaws.com/channel/mainnet/latest.catchpoint)
pi@raspberrypi:~/node $ ./goal node catchup $CATCHPOINT -d data
pi@raspberrypi:~/node $ date && ./goal node status -d data
Fri Jun 11 19:51:27 BST 2021
Last committed block: 153072
Sync Time: 95843.1s
Catchpoint: 14330000#JBBVRLIVJKGLJ4JD2HO3ZM6STVGQ35TQF5TTAXIQV2K6GYQMRYCA
Catchpoint total accounts: 11572344
Catchpoint accounts processed: 1716224
Catchpoint accounts verified: 0
Genesis ID: mainnet-v1.0
Genesis hash: wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
pi@raspberrypi:~/node $ date && ./goal node status -d data
Fri Jun 11 09:30:55 BST 2021
Last committed block: 153072
Sync Time: 58611.1s
Catchpoint: 14330000#JBBVRLIVJKGLJ4JD2HO3ZM6STVGQ35TQF5TTAXIQV2K6GYQMRYCA
Catchpoint total accounts: 11572344
Catchpoint accounts processed: 604672
Catchpoint accounts verified: 0
Genesis ID: mainnet-v1.0
Genesis hash: wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=

What kind of storage are you using?
If it’s an SD card, how fast is it in term of bandwidth and IOPS?

Storage speed is usually the bottleneck.

Hi @fabrice for the storage GB see in the title. Then for specifics below you see an htop and df screenshots. Also if you need to see a different log just tell me the command you want me to perform

It really looks I/O bounds from storage.
Can you run https://www.raspberrypi.org/blog/sd-card-speed-test/ and show the logs?

Raspberry Pi SD Card Speed Test agnostics screenshot

MicroSD specs screenshot
SanDisk Extreme Pro 32 GB 
UHS Speed Class 3 (U3) 
Bus Interface UHS-I 

I think that’s the issue: the performance of your SD card is too low.
People have been using Raspberry Pi to run Algorand.
I think the best is to ask what SD cards they have been using on Discord, channel #run-a-node.

Hello mndlsn,

Can you try the following to check for errors?

grep err data/node.log | tr , ‘\n’ | grep “msg”"

tail data/algod-err.log

Let’s also check if ‘Finished round’ messages are being logged, and get latest node status:

tail -n 400 data/node.log | grep “finished round” | tr , ‘\n’ | grep “msg”"

./goal node status

I have one other command we can use to monitor sync operation that I will get for you too!

Hi @Consiglieri by executing your line advised we see no err thrown

  • grep "RoundInterrupted" data/node.log | tail -n 15 | tr , '\n' | grep "msg\""
  • grep err data/node.log | grep locked | tr , '\n' | grep "msg\"" | sort -nk2 | uniq -c
Screenshot

By the way seems like node finished some catching up but nor round as you asked for

GitHub Go-Algorand issue #2282 Impossible to Sync Node by using Fast Catchup on Raspberry Pi OS Lite. Error thrown seems like a Unix network permission denied

Link preview