Need clarification, as I tried to install a node and have been waiting days for the node block to initialize up to latest block on TestNet. Then after 10 days for some unknown reason the
systemctl service for algorand somehow resets itself, restarts itself, and changes the service file back to use -d /var/lib/algorand
Now I have all of the
set of algorand node files in 2 directories.
I used the
Red Hat distribution centos env section and edited the system service file (Probably wrong way) for -d to be /var/lib/algorand/node/testnetdata and set ALGORAND_DATA env var.
sudo -u algorand -E -s
add to end of file
All I want is for this to be easy to read and easy to do.
- To make it easier for everyone. Can you please split up this documentation link
to be 5 separate webpages.
webpage 1. Requirements to install a node - Hardware
webpage 2. Installation with a package manager for Debian based distributions
webpage 3. Installation with a package manager for Red Hat based distributions
webpage 4. Installing on Linux using wget (these not verified, but should work)
webpage 5. Installation with the updater script for Mac
Then each webpage have the same sections but specific to the env:
Section 1. Explain the entire initialization process and how to know it’s done syncing.
Section 2. Explain user
algod and using
sudo -u algorand -E -s with another user i.e. algodev
Section 3. Add algodev user permissions file to /etc/sudoers.d/
Section 3. Installing the Devtools
Section 4. Start Node
Section 5. Installing algod as a systemd service
Section 6. How to use Catchup
Section 7. How to use goal as different user, i.e. algodev, when using systemctl start algorand
Section 8 How to edit systemctl service template and switch Testnet to Mainnet, etc.
I’m fine with /usr/bin having algod and goal
- how do I use goal to check status if I’m algodev user and using
systemctl start algorandwhich was started as root. For example:
su -l algodev
/usr/bin/sudo -u algorand -E -s goal node status -w 6000 -d /var/lib/algorand/node/testnetdata
- how do I use goal node catchup when running node with systemctl start algorand
sudo -u algorand -E -s goal node catchup <CATCHPOINT_TOKEN> -d /var/lib/algorand/node/testnetdata
Since systemctl is running node as a service, can I even use goal node catchup?
Another question I have, is if I installed with Red Hat package manager, how do I do an update when using systemctl? anything like yum update. When using the systemctl service approach, should I never use update.sh script. This copies all files, sames as an install, but to cwd. I like the update script as that’s how I first start to use algorand and running node with goal commands.
Another question I have, is in the algorand@.service.template (which isn’t included, or I can’t find it, when installing using Red Hat package manager, can we add this as part of Red Hat package manager install?) can the notes in the template file be explicit. Instead of
asterisk can it be
algorand and so I’m not giving access to any service to the algo user just algorand service to algo user.
Another question, I have, is can we suppress the amount of writes to the node log file during an initialization. Just a guess, but once this log file gets to be really big it slows the initialization down much so. Just an idea. My asumption is using a catchup can’t be done before an initialization is complete.
To allow the update script (which runs as the algo user) to manipulate
the algorand systemd service, the following lines need to be added to
/etc/sudoers (using visudo):
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl start *
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl stop *
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart *
algo ALL=(ALL) NOPASSWD: /usr/bin/systemctl status *
I would be happy spending my time reviewing these new separate
Install a Node webpages answering every possible question and providing feedback… than getting stuck over and over guessing on what I did wrong and how to figure out how to do it right.