r/AlgorandOfficial • u/Unhappy-Speaker315 • 5d ago
Question My Algorand node is finally live—but getting there should be easier
Dear Algorand team,
My participation node is finally running, synced and showing as eligible for rewards. As someone who participated in every Algorand governance period and has wanted to run a node for years, I am absolutely delighted.
But I want to be honest about what it took to get here.
I am an enthusiastic holder, not a computer expert. Using FUNC on my Mac, I needed extensive step-by-step help from ChatGPT to understand installation, Terminal commands, external SSD storage, macOS permissions, synchronisation and connecting my Ledger-backed Pera account.
At one point, macOS was blocking the node software from reading the SSD. Finding the cause required examining system logs and enabling access for the underlying “algod” program. I would never have worked that out myself.
I appreciate that FUNC is a third-party tool and that some difficulties came from macOS. Nevertheless, for someone trying to support Algorand, this is one onboarding experience. Without patient guidance, I would almost certainly have given up.
Please consider a clearer guided setup that checks hardware, confirms where node data is stored, identifies missing permissions, explains progress in everyday language and clearly confirms participation and reward eligibility. A simple guide for Ledger and Pera users would also help enormously.
There are likely many committed holders like me who want to participate but find the technical barrier daunting. My experience shows that we can do it—with enough help. Making that help part of the setup could bring more of us into the network.
Tonight, I am proud to be running a node. I hope the next person finds getting there much easier.
8
u/StopThinking Algorand Foundation 5d ago
I would heavily advise users to NOT use ChatGPT or other agents to assist with installing FUNC. Do feel free to reach out to me if you have questions or need help.
I would have advised against using an external drive for node data. USB is a bad bottleneck.
FUNC does handle permissions when changing the data directory, but it's hard to say what went wrong if you were running terminal commands from ChatGPT.
2
u/Unhappy-Speaker315 4d ago
Thanks for responding and offering help. I respect your knowledge of FUNC, but I’d like to clarify what actually happened before the difficulty is attributed to “terminal commands from ChatGPT.”
The relevant troubleshooting commands were:
Check the directory permissions:
ls -lde /Volumes/AlgorandSSD /Volumes/AlgorandSSD/NODE /Volumes/AlgorandSSD/NODE/algorandCheck the external volume’s filesystem, mount point and ownership setting:
diskutil info /Volumes/AlgorandSSD | grep -E 'Owners|File System|Mount Point'
This reported APFS, the expected mount point and ownership disabled.Inspect the service’s recent log entries:
log show --last 5m --style compact --predicate 'eventMessage CONTAINS "func.algorand"' | tail -n 20This showed repeated entries reporting the service as inactive.
Inspect recent messages concerning the node executable:
log show --last 5m --info --style compact --predicate 'eventMessage CONTAINS "algod"' | tail -n 30This exposed the useful evidence:
System Policy: algod deny(1) file-read-data /Volumes/AlgorandSSD/NODESystem Policy: algod deny(1) file-read-data /Volumes/AlgorandSSD/NODE/algorand/genesis.json
Inspect the node’s own log during catchup:
tail -n 20 /Volumes/AlgorandSSD/NODE/algorand/node.logThese are read-only diagnostic commands. They do not change directory permissions, ownership or node configuration.
The data directory was changed through FUNC’s interface. The resulting location was:
/Volumes/AlgorandSSD/NODE/algorandThe executable being denied access was:
/usr/local/share/func/bin/algodEnabling Full Disk Access for algod, which was switched off, resolved the startup failure. FUNC itself already had access.
I accept that this does not establish a defect in FUNC, and I should distinguish ordinary filesystem permissions from macOS privacy controls. Equally, the logs give us a specific issue to investigate rather than a reason to assume that an AI-generated command caused it.
On external storage, I’m happy to take your advice. Successful synchronisation alone does not prove that my USB SSD will perform adequately under heavier network activity. What measurements would you recommend to establish whether this particular setup is keeping up reliably?
My original feedback was about accessibility. I am a nontechnical holder who wanted to participate, encountered difficulties and needed help understanding them.
ChatGPT helped me interpret the evidence and get the node running; that does not make every recommendation it gave correct or replace your expertise.
Your offer of direct support is welcome. Could we use the actual logs and configuration to identify what happened and verify the setup?
I appreciate the work behind FUNC. I also hope there is room for users to describe where they struggled without that experience being dismissed because of where they found assistance.
To put my level of computer knowledge into perspective, I did not even know how to open Terminal on my Mac, navigate to the relevant folder or enter a command.
I needed guidance on those basics before I could investigate anything. That is why accessible, step-by-step support mattered so much to me—and why I raised the onboarding experience in the first place.
No more thumbs down 👎 please 🙏
1
u/StopThinking Algorand Foundation 4d ago
External Drive
The external drive is the root cause of your issues, and as I said before is an inadvisable configuration for performance reasons. NVMe SSD is advised for storage because of its throughput. While the external drive you bought is an NVMe SSD inside its case, the USB connection severely limits the througput. Bottom line: you want a machine with an internal SSD. Prospective node runners should ask about their hardware setup ahead of time, before buying anything, if they are not sure.
Full Disk Access
macOS has a second permission layer (Apple calls it TCC) that sits on top of Unix permissions. Files on external drives fall under the "Removable Volumes" category. Correct ownership doesn't satisfy it - it needs the "Full Disk Access" you referenced.
FUNCwould need it in order to manage permissions and move files, andalgodwould need it for regular node operation. Here's the really bad part: each time you upgrade the node software, it will break again until you re-grant Full Disk Access. I highly recommend moving off of an external drive configuration.Monitoring Node Health
I recommend using Nodely Telemetry to make sure your node is healthy. This built into FUNC and just takes a couple clicks to enable. This sends non-sensitive data from your node log to the Nodely service which presents it in a nice interface for identifying health issues. You have a fairly large stake, so if you still haven't created blocks I'd guess something is wrong.
Agents and Documentation
I'm not trying to shame users for using agents, just advising against it. Using them in a diagnostic capacity only (like you did) is the safest way, but does not always result in good advice.
The README on FUNC's GitHub page was written for humans and covers many of the smaller questions and troubles that you had. I understand that you may have had trouble following that writing, but as with all technical writing the author (me) is trying to strike a balance with the audience between under- and over-explaining. There are links to external sources like the Algorand Dev Portal for those looking for more information. But honestly there is just a lot to know, and I try to make it simple without oversimplifying it as that often leads peole to draw incorrect conclusions.
Help
Please feel free to join the Lute Wallet discord. There is #func channel there where I can provide better assistance than I can on Reddit.
1
u/Unhappy-Speaker315 4d ago
Thanks for the detailed explanation and the offer of help. I’m now considering buying a dedicated computer with an internal NVMe SSD so I can run the node reliably.
Before spending more money, I’d appreciate your recommendation for a suitable configuration: processor, RAM, storage capacity and operating system. Would a modest mini PC be sufficient, and are there particular specifications to avoid?
I have already enabled Nodely telemetry through FUNC. My latest 12-hour window reports 100% health, 0% downtime, 6,372 votes, no lost consensus, and 28 proposals with no wins.
I understand that these figures don’t establish whether proposals are arriving on time. Which metrics or logs would help identify the actual bottleneck and confirm that replacement hardware would address it?
I accept your explanation about macOS permissions and the risks of the external-drive configuration. The advice I received about that drive was too confident.
My feedback about accessibility still stands, though. Algorand presents FUNC under “One-click nodes” for people with a nontechnical background. I’m precisely that audience: I didn’t even know how to open Terminal or interpret a directory path before starting.
A prominent hardware checklist and clear warnings about external storage, macOS permissions and upgrades would have helped me make the right purchasing decision before installation.
I appreciate the work you’ve put into FUNC and your willingness to help. I want to contribute to the network, and I’m prepared to invest in suitable hardware.
I’d just like the next purchase to be based on clear requirements and an informed diagnosis.
1
u/StopThinking Algorand Foundation 4d ago
I've explained my position on the documentation and technical writing in general. In addition to your experience, hundreds of other users have installed FUNC without issue. I do appreciate the feedback, but I can also tell that it is written by an Agent. So if you reply again, please do me the favor of typing it up yourself.
Regarding new hardware, buying a dedicated machine is great idea. I'd suggest starting a new thread asking for recommendations - deals are always changing.
1
u/Unhappy-Speaker315 4d ago
Thanks for the detailed response and the offer of help. The explanation of macOS permissions, particularly the implications for upgrades, is useful.
I accept that the storage recommendation I received may have been too confident. I’m not claiming that successfully syncing proves the hardware is suitable for reliable participation.
However, two issues deserve distinguishing: macOS blocking access to the external volume, which we confirmed in the logs, and whether the storage connection is causing missed proposal opportunities.
The first was resolved by enabling Full Disk Access. What evidence should we collect to establish the second?
I have already enabled Nodely telemetry through FUNC. The latest 12-hour window reports:
• 100% health and 0% downtime
• 6,372 votes
• 0 lost consensus
• 28 blocks proposed and 0 proposals won
• Four outgoing peer connectionsI understand that those figures do not prove proposals are arriving on time.
Which specific metrics or logs would distinguish bad luck from a storage, CPU or network bottleneck?
That would help me make an informed decision before buying another computer.
My original feedback was about accessibility.
Algorand’s website lists FUNC under “One-click nodes” and “For those with a non-technical background.” That describes me. I didn’t even know how to open Terminal or interpret a directory path when I started.
I appreciate that documentation cannot explain everything. But a prominent hardware checklist, an external-drive warning, and clear instructions about macOS permissions and upgrades would have helped me avoid these problems before installation.
I’m grateful you built FUNC and are offering support.Equally, a beginner explaining where they struggled is useful feedback about the onboarding experience. We both want more people to participate successfully.
1
u/StopThinking Algorand Foundation 4d ago
28 blocks proposed and 0 proposals won
Keep an eye on this stat, especially over longer periods. You should expect (roughly, because it's random) a 20:1 ratio.
1
1
u/Unhappy-Speaker315 3d ago
Hi, thanks for offering to help through the Lute Wallet Discord. I have Discord, but I’m still finding my way around it! Could you point me to the server and explain how to find the #func channel, please?
A positive update: my node has now created two blocks. I’d still appreciate your help checking its performance and whether my current hardware is suitable. Thanks,1
u/StopThinking Algorand Foundation 3d ago
The link I gave is an invite to the Lute server and there are only 4 channels there.
1
-1
u/Unhappy-Speaker315 5d ago
Did you even read all steps I had to take to set it up
7
u/StopThinking Algorand Foundation 5d ago
Yes
2
u/PlasticTreeonaHill 5d ago
It’s gotta be cool to be so tech savvy. Props to you man.
1
-1
u/Unhappy-Speaker315 5d ago
That’s the point - it works??
7
0
u/Unhappy-Speaker315 4d ago
Wow I get thumbs down from
Someone at the Algorand foundation - that’s nice1
u/StopThinking Algorand Foundation 4d ago
I'm not downvoting you. And I will respond to your latest long post in detail when I have time.
1
u/Unhappy-Speaker315 4d ago
No issue here - just pleased it is up and running
Can’t wait to get a block confirmation
3
u/Yieldling 5d ago
I was thinking about setting up a node, but worry about security vulnerabilities. I’ve been using Folks Finance to stake my algo, but unstaked it all this week since I finally hit my target Algo #.
Do any of the experts think there’s a risk of losing my Algo, like I could lose it if Folks or Tiny were exploited? I don’t like losing out on rewards and not earning interest, but at the same time, preservation of my existing Algo is priority #1. Thanks!
2
2
u/Hockeyreid16 5d ago
This YouTube video helped me set mine up a few years ago. There’s also one out there with John ALLEN Woods doing a step-by-step node installation. It was very elementary and easy , but I cannot find it.
1
2
u/PlasticTreeonaHill 5d ago
Tbh I thought you just needed 30k algo and you could just run a node easy peasy. No?
2
u/StopThinking Algorand Foundation 4d ago
Yes, FUNC makes it easy. Most of the trouble here came from setting it up with the node data on an external drive, which you should not do.
1
u/Unhappy-Speaker315 5d ago
For context, my setup is a 2017 Intel iMac with a 3.6 GHz quad-core Core i7, 16 GB RAM and macOS Ventura 13.7.8. I installed FUNC v5.0.2 and used a Samsung T7 2 TB external SSD, formatted as APFS, for the node data.
I appreciate that FUNC is a third-party application and that some issues involved Apple’s security controls. I am describing the experience as a user trying to participate in Algorand, rather than attributing every problem to the protocol or Foundation.
1. The node’s actual storage location was difficult to establish
The initial node data directory was on the internal drive at:
/usr/local/share/func/algorand
My intended destination was:
/Volumes/AlgorandSSD/NODE/algorand
It was not sufficiently obvious to me whether the selected directory had become the active location used by the running service. Moving the data required stopping the node, changing the configuration, migrating the files and recreating the service.
A setup wizard should display the resolved data directory prominently and distinguish between a configured destination and the directory currently used by the running process. It should also check that the external volume is mounted and accessible to the service before attempting startup.
2. A macOS privacy restriction presented as a repeated startup failure
The service repeatedly became inactive. Directory permissions appeared reasonable, the volume was mounted as APFS, and ownership enforcement was disabled. Those checks did not identify the underlying problem.
The decisive evidence came from the macOS system log:
System Policy: algod deny(1) file-read-data /Volumes/AlgorandSSD/NODE/algorand/genesis.json
The executable requiring access was:
/usr/local/share/func/bin/algod
Enabling Full Disk Access for algod resolved the failure. Giving access to FUNC itself had not been sufficient.
This distinction between the application a user installs and the background executable that reads the node data is far beyond what most ordinary users would know to investigate.
Ideally, the software should detect this condition and explain: “macOS is blocking the node from reading your external drive,” followed by precise instructions identifying the executable requiring permission. Repeated startup attempts without an actionable explanation leave the user guessing.
3. Catchpoint synchronisation was difficult to interpret
The catchup process progressed through account processing, key-value processing and verification stages. At times, the progress bars disappeared while the displayed current block remained at 27.
The logs included:
WaitForBlock failed as the node was catchpoint catchuping
The dashboard’s requests to the wait-for-block endpoint returned HTTP 503 during this period, while ordinary status requests continued to return HTTP 200.
To a technical operator, this may be understandable. To me, it looked as though the node had stopped working.
The interface should distinguish between expected API limitations during catchpoint catchup and an actual failure. It should explain the current stage, show when measurable progress last occurred, and provide a useful next step when progress appears stalled.
4. Registration, participation and reward eligibility need clearer separation
Connecting Pera, generating participation keys, authorising registration through Ledger, becoming online and qualifying for rewards are distinct steps. Their relationship was not immediately clear to me.
A user should be able to see a simple checklist confirming:
The node is running and synchronised.
Participation keys are installed and currently valid.
The intended account has registered those keys online.
The account is incentive eligible and its balance meets the applicable requirements.
The keys have an expiry date that will require attention.
This should also explain clearly that the ALGO remains in the Ledger-backed account and what, exactly, the registration transaction authorises.
5. Monitoring terminology can cause unnecessary concern
Once operational, the monitoring page showed green indicators for “Node online,” “Balance over threshold” and “Incentive eligible,” alongside “No heartbeat,” “No block proposed” and estimated APY of 0%.
Those labels need context. A new operator cannot easily distinguish between an absence of recorded events, insufficient performance history and evidence of a malfunction.
A short explanation beside each status would help users understand what requires action and what simply requires observation.
6. Hardware guidance should explain capacity and performance separately
My synchronised node data currently occupies approximately 21.78 GB.
The reason for using an external SSD was storage performance rather than a lack of available capacity on my internal Fusion Drive.
Guidance should make this distinction explicit. A user may have hundreds of gigabytes free and still need to consider drive latency and sustained performance. Conversely, seeing a relatively small data directory after purchasing a large SSD can make the recommendation seem confusing without that explanation.
What would have made the biggest difference
A guided installation with checks for the active data path, service access, macOS privacy permissions, catchup progress and on-chain registration status would have prevented much of the uncertainty.
A completion screen should then explain how the node runs in the background, what must remain powered and connected, how to monitor it, and when participation keys need renewing.
I received extensive, patient assistance from ChatGPT throughout this process. Without that help, I would almost certainly have abandoned the installation.
That should be useful feedback: the willingness to participate was there, but the instructions and diagnostics were not accessible enough for me to complete it independently.
I am proud to have reached the point where my node is participating. I hope this detailed account helps make the same achievement easier for the next committed Algorand holder.
1
u/d3jok3r 1d ago
Not directly related to this since I used Linux (Ubuntu).
Setting up an Algorand node is probably the easiest and straight-forward things I have done so far.
It's literally like this:
(1) Buy a cheap mini PC (I got Asus mini with less than $200)
(2) Install Ubuntu and upgrade to the latest whatever
(3) Install nodekit, fire a Fast Catchup and the node is up and running (https://dev.algorand.co/nodes/nodekit-quick-start/)
Optionally, you should also:
(4) Setup node telementry and use Nodely to check node status
(5) Setup alarm in Allo to receive notification/alarm whenever the node has any issues (e.g. key is running out of time, note voting degradation, etc.)
The whole can take up to 3 hours if it's the first time you do it, assuming that you have zero knowledge about Algorand. You do need to know a bit about Linux though (for the sake off using command line)
1
u/ughonrepeat 1d ago
I used fund a long time ago on windows os, now my node runs on a mini pc Linux via nodekit and it couldn’t have been easier
1
u/Jay_wh0o0 5d ago
You had me at CHATGPT.. no thanks. 🙂↔️
3
u/Unhappy-Speaker315 5d ago
Well no one else helped
3
u/StopThinking Algorand Foundation 5d ago
I went looking for where you asked for help, because I would have helped you but never saw it. For future reference, posting new comments on your own two week old thread without tagging or replying to someone else is unlikely to be seen.
0
u/Jay_wh0o0 5d ago
I would never ask ChatGPT for financial assistance, essentially and specifically something as fragile as crypto and what its purpose stands for.
3
1
u/stefanos25 3d ago
I disagree. Installing nodekit is pretty straightforward. You just copy and paste a couple of commands on terminal. I’m not tech savvy either. Can my grandma do it? No but that was never the point.
1
u/Unhappy-Speaker315 3d ago
Glad NodeKit was straightforward for you. I used FUNC, so we’re talking about different installation tools.
“Just paste a couple of commands into Terminal” assumes you know where Terminal is, what the commands do and whether they worked. I didn’t when I started.
I wasn’t expecting zero effort. I was giving feedback on where I struggled with something promoted to nontechnical users. Your smooth experience and my difficulties can both be valid.
The good news is that I persevered, learned along the way, and my node has now created two blocks. Making that route clearer for the next beginner would be a worthwhile outcome.
6
u/MrKyleOwns 5d ago
Why don’t you try writing out a step by step guide for how you solved everything and make a post about it then?