Participate in Consensus from Ledger Nano S/X using Raspberry Pi

Hi, I’m interested in running a participation node using a Raspberry Pi (e.g. model 4B 2GB) and a Ledger Nano X. I came across the tutorial Participate in Consensus from Ledger Nano S/X which states:

If you have a low stake account, you may be able to use a Raspberry Pi 4 for this purpose.

I have a few questions regarding this statement:

  • What is considered a low stake account? Are we talking about 10s, 100s, 1000s, … of ALGOs?
  • The statement seems to indicate a connection between stake and required processing power for running a participation node. If that’s the case, what’s the maximum recommended stake for running on a Raspberry Pi 4 (using an SSD for storage)?
  • Is there a recommended minimum stake for which participating in consensus is considered worthwhile?

Thanks in advance for any insights!

Best regards,
Martin

Welcome to Algorand!

  • I would say anything below 1M is good for Raspberry Pi.
  • There are almost no additional requirements with regards to processing power when using higher stake. The statement was in regards to the fact that for higher stake accounts, failure of the node might have more consequences so you want a node that is more reliable.
  • Any stake is good for the health of the blockchain. You vote proportionally to your stake. Concretely, today there are about 3B online Algos. If you have 1,000 Algos, this means you have 1/3,000,000 of the stake. Each round, step 1 committee is of size 2990, and step 2 committee is of size 1500. And there are 3600/4.3 rounds per hour. So a 1,000-Algo stake will vote around 3600/4.3*(2990+1000)/3,000,000 = 1.25 times an hour.

Note: Nowadays, to run a node and participate properly, you’ll need a Raspberry PI 4 with at least 4GB of RAM and an external USB-3 SSD (ideally NVMe, but recent SATA would work too - slow/old SATA SSD may not work). SD cards won’t work. See https://prismic-io.s3.amazonaws.com/algorandfoundationv2/c29a77f5-3891-45a1-91ca-4a558cee2a03_Algorand+Participation+Node+on+a+Resberry+Pi.pdf

3 Likes

Hi Fabrice, thanks a lot for your prompt reply - very much appreciated!

@fabrice

What are the consequences should a node fail and are you referring to the node itself failing or a drop of internet connection?

I have a Pi 4 with 8GB RAM and USB-3 NVMe SSD but haven’t put my node online as my internet connection fails (for a minute or two) once or twice a week.

Thank you for your time and any information you may be able to provide me with.

This kind of limited and rare node downtime should not be a problem for the PPoS: as soon as your Internet connection is back the node will catch up again with the network and start voting again.

If your Internet connection downtime were to be more severe, in that case it would not be healthy for the PPoS.

2 Likes

Thank you for that information @cusma

Two more questions, what does PPoS stand for and what are the consequences should the node fail? For example, do you lose your Algo’s deposited to the node wallet, the rewards that you would have received, or both?

Forgive my ignorance and I greatly appreciate any information you or anyone else may be able to provide me with.

PPoS stands for Pure Proof of Stake, that is the mechanism through which block proposers and validators committees are selected for each new block in the Algorand blockchain. The probability of being selected to propose and vote on blocks is proportional to the amount of your stake. Here you have a complete overview over the Algorand Consensus.

Algorand Consensus does not include slashing, punishment mechanism nor locking of the stake. If your stake is marked as online (that is, at the service of the PPoS) and your node goes down for long time your node will be acting badly for the network behavior, like if it was an adversary. This is why accounts should always mark themselves offline if they are not actually available to participate (due, for example, to long lasting outages of Internet connection or power).

2 Likes

Fantastic and helpful information @cusma

Very much appreciated!

Assuming I lose my home internet connection is there a way to set my node as offline using my mobile device’s cellular connection?

My thinking, please correct me if I am wrong, is that I would run the node as online and participating but when I receive notice that my internet dropped out I can jump on my mobile phone and submit a transaction using the official “Algrorand Wallet” app on my Android phone to mark it as offline.

I’ve reviewed the “Register Offline” documentation but my limited experience limits my comprehension (for now).

On the tutorials page there is a “Setup Node using Raspberry Pi” tutorial which is great. But I think what is needed is a video “managing” said node. I have experience creating video tutorials and would be happy to volunteer in creating one for this case. Just need someone to help me experiment with the above and I have a decent amount of Algo’s to spare for testing.

Either way, very much appreciate your time and information @cusma

Love being a part, albeit small, of this great community. Long live the Algorand blockchain.

Currently is not possible to write, sign and send an offline key registration transaction from the Mobile Wallet. You should generate the offline key registration transaction using goal on the Raspberry Pi and sign it with your Nano Ledger following these steps (I’m assuming you are using those equipments due to thread’s title). Then you should have a “back-up” end-point of a synced node (or maybe a third party node as a service) to submit the transaction to the network.

It would be a great content for a tutorial on the Developer Portal.

1 Like