Cardano Stake Pool on Raspberry Pi - Need Help with ARM Binaries

I am writing the Cardano community on behalf of our small group of engineers, presently working on a passion project to establish a Cardano stake pool with:

x1 Raspberry Pi 4 8GB as a Cardano relay
x1 Raspberry Pi 4 8GB to be a block producing node

Shortly after we started the process of downloading the required libraries into Linux, we discovered that the ARM processors are incompatible with the code, which was designed for x86 processors. We started researching a solution and discovered the following projects that had successfully created ARM based Cardano Nodes on Raspberry Pi:

Berry Pool
Cardano on the Rocks

While both of these are great resources, we would prefer to compile the code from source (using IOHK libraries = Building a node from source – IOHK Support). However, during the setup, we could not successfully install an updated Cabal library because of the following error:

-bash: /usr/bin/id: cannot execute binary file

…and further research revealed this was due to the processor incompatibility:

We would like to proceed with compiling the node from code because we eventually want to start using larger Raspberry Pi configurations such as Turing Pi Clusters and I doubt we can customize the code from Berry Pool or Cardano on the Rocks to suit our needs for these more complicated setups.

Considering the above, could you provide any recommendations or refer us to an individual/group/resource who could help us reconcile the ARM processor in Raspberry Pi 4 with the x86 binaries in IOHK/Cardano libraries?

We appreciate your time and look forward to your reply.

2 Likes

Your wasting your time. Regardless that it “can” run the node and relay it can barely run them and the requirement will be just going up. Since mary 1 relay + 1 bp node needs a bit more than 8GB memory so unless they come out with an RPI 16GB just give up with it.

1 Like

You could have a look at this …
https://tdiesler.gitbook.io/cardano/v/iohk/plain-docker/raspberrypi-4

Whether you want …

  • A plain Docker setup, which also runs on a Raspberry Pi
  • Everything in one script with Docker Compose
  • Advanced enterprise setup with Kubernetes

here you should find step-by-step instructions to get your nodes up and running.

You could follow the instructions on how to install the 64bit OS on a PI4 and then simply run

$ docker run --detach \
    --name=relay \
    -p 3001:3001 \
    -e CARDANO_UPDATE_TOPOLOGY=true \
    -v /mnt/disks/data00:/opt/cardano/data \
    nessusio/cardano-node:dev run    

This would get you a running relay node which you can then see for yourself whether it can keep up with the load. The relay may be the problem. The Block Producer runs just fine on a Pi 4

I have indeed also seen conditions where the Pi Relay could not keep up and was falling more and more behind. I believe this was because of lots of invalid Tx, which I saw in the log.

1 Like

That’s a fair point, but as I stated before, it’s more of a passion project: we just want to do it. Plus I feel that Raspberry Pi will get better with time, and since it has a good price point for the hardware, I think it has a lot of future potential. Plus, it seems that Charles enjoys it too:

However, that’s some good info on the memory constraints, and although I still want to work with Raspberry Pi, I’ll be looking at other options with better memory for a more commercial stake pool. I would welcome any hardware recommendations you might have.

Researching more on this solution. Will respond with results soon.

Interested in the answer to this. I was hoping to use Rasp Pi to create a staking pool(s) with my senior students. Figured it would be a great way to wrap up the year.

Running a Cardano node on RaspberryPi is easy.
Here are the instructions of running it and here those of preparing the Pi.

Hey, so i have a Pi4 8GB locally complied cardano-node & cardano-cli 1.25.1 from sources and running in Ubuntu Server 20.04 64bit, I used:

Guide: Installing the node from source — cardano-node Documentation 1.0.0 documentation

https://downloads.haskell.org/cabal/cabal-install-3.4.0.0/cabal-install-3.4.0.0-aarch64-ubuntu-18.04.tar.xz

And

https://downloads.haskell.org/~ghc/8.10.2/ghc-8.10.2-aarch64-deb10-linux.tar.xz

Seemed to compile fine after I resolved a missing dependency “apt-get install libnuma-dev”

Unfortunately even though the relay runs and syncs, it mysteriously stop syncing after a period of time, around 10-30 minutes. No idea what the issue is. CPU is stull humming away at 200%, but the echo just stops and no new tips are added to the DB. Restarting the node restarts the sync, until it stops again. Could be a hardware issue, but I have had a USB3 SSD on this Pi for a long time running block-chains so Im not sure why this happens.

1 Like

@Scalextrix This like is [BUG] - Initial sync may block forever with CPU maxed out · Issue #2251 · input-output-hk/cardano-node · GitHub

@tomdx We came back to this work today and ran into several problems with setting up docker on the Raspberry Pi. Running into Debian version conflicts with Docker and bash errors. I have a feeling we there are issues with the previously installed libraries from when we started the x86 version of the Cardano node. I think we need to wipe the card and start the Docker installation from scratch.

Sorry for the delay in our replies. We can only work on this project once or twice a week as everyone here has day jobs and families, so we have a limited amount of time to meet and move this forward.

Great info in the Cardano article you posted.

Thanks. If you follow these simple steps you should be running in no time.

Hi there Tomdx!

I have a question, I’m pretty “noob” with raspberry pi’s, but I do have a pi 4 8gb here.

Maybe it would be fun to start a stakepool to learn a thing or two, but is it working as intended or is a raspberry pi more a proof of concept that it works, but not really suited for a stakepool?

Have a great day!

I started out with with running both the Relay + Block Producer on the same Pi - all on Docker of course. Then, with metadata and native Tokens, I saw a steep increase in Tx activity, which seemed to overwhelm the single Pi. I have since moved the Relay to an Intel machine but kept the Block Producer on the Pi. The BP seems mostly bored …

The ETH node is also running on a Pi4. I have both Pis hosted for very little money, which pays for electricity, network and backup storage. With the improvements in 1.26.0 it may again become possible to move the relay back on a Pi, but that’s is a little early to say for sure.

All the Best.

Anybody kind enough to share the binary for cardano 1.26.1 on Pi?

You can get them from here

Here is a Pi Stake Pool guide we in the ARMing Cardano telegram group have created Welcome Pi Operators - Raspberry Pi Stake Pool

We have the binaries in here and basic tutorials to get you started…

2 Likes

There’s tons of guides that have been posted so far, but if you want to add in SSD boot, I have the full guide here: GitHub - canad1an/cardano-stake-pool

Not sure what you mean by “barely run them”. There are many RPi stake pools doing just fine on Pi 4B 8GB setups minting many blocks each epoch, even with only one relay connected. We haven’t hit the wall yet and 1.26.1 did improve things.

I have finally managed to compile V1.26.1 binaries on Raspberry Pi 4 running Ubuntu.
I have posted binaries here:

Thanks to @Scalextrix 's post above which gave me a starting point.

That’s very kind of you. Thanks.