Gora Node Runner User Manual
Note: The following page contain instructions for Algorand Node Running. Arbitrum and Polygon are currently in Alpha. The steps below will remain the same, with the exception of using the relevant RPC or Node endpoint.
Introduction
Gora Node Runner (GNR) is the sofware implementing Gora network node. It performs the following key tasks:
Monitoring of Algorand blockchain for new oracle requests
Fulfilling of oracle requests by querying data sources and aggregating results
Submission of results for certification to Gora smart contracts
The GNR is distributed as a Linux-based Docker image. It is designed to run on a docker-enabled customer host or in AWS cloud. Instalation and maintenance of GNR is conducted with GoraNetwork CLI tool - a self-contained command-line executable. A live Algorand node is required by GNR to interact with the blockchain. A Gora node operator must have access to a publically available Algorand node or run one of their own.
Any problems encountered using Gora software as described in this manual, or errors in the manual itself, should be reported here: https://validators.gora.io/bugreport
Prerequisites
This manual is written for someone able to work with command-line (CLI) tools and Linux OS in general. Advanced customization may require editing of text files in JSON format. If you are not comfortable with the above, it is recommended that you enlist professional help or get up to speed using resources widely available online.
For the Node Runner, 64-bit x86 hardware is currently officially supported. Mac, ARM, older 32-bit or any other non-amd86 hardware platforms are not. Most of these have no inherent incompatibilities with Gora software and will likely be supported in future releases. For the CLI tool, Mac platform is supported as well as Linux.
Permissions
At no time should you run Gora software as root. If hacked, software executed as root becomes gateway to complete control of the system it is running on. This makes such software a high-priority target for hackers, which is neither in Gora's interest nor yours. No support will be provided for such usage scenarios.
You should be able to run Gora software as a normal user with no additional setup. If you run into a permissions issue, do not use sudo
to force your way through. If the error is docker-related, make sure you have added yourself to the docker
user group. If adding privileges to your normal user is undesirable, create a new user gora
with useradd
command, give it the necessary permissions and perform all operations as them.
Getting Started
1) Install the required software
Make the downloaded binary executable by running
chmod u+x ./gora
2) Initialize your installation
Initialization of a new Gora node involves the following key steps:
Creating your Gora participation account on Algorand
Initializing it by linking it to your main Algorand account and supplying it with tokens and Algo.
Creating a Gora config file
~/.gora
with info on these accounts as well as connection details for the Algorand node that your Gora node will use.
To start the process, run ./gora init
. You will be guided through the steps with text prompts and messages. You can abort the process at any time by pressing Ctrl-C. To start over, rename or delete the produced config file ~/.gora
.
Make sure that your participation account balance is at least 10 ALGOs. It should have received them during initialization via Gora web app. If it has not, simply send 10 ALGOs to the participation account address using your Algorand wallet.
3a) Run Node Runner on AWS
AWS functionality is currently experimental, new users are encouraged to skip to the section 3b and run their node locally. If you are willing to try running on AWS, run export GORA_EXPERIMENTAL_MODE=1
and proceed with caution.
Then you should see the kind of output that would appear every time you start your node up:
This means the node is starting up and should be online shortly. You can check its status by executing ./gora aws-status
, which should eventually produce an output like:
The IP address above is the public address of your node. Node log messages can be inspected using AWS web UI or by running ./gora aws-log
. To bring the node down, execute ./gora aws-stop
.
3b) Run Node Runner on any Docker-enabled host
Running your Gora node outside of cloud environments gives you more control and can be more economical. Before continuing, make sure that you have installed Docker and added yourself to the docker
group on your host. To start your node, execute: ./gora docker-start
. When run for the first time, it will pull docker image from the registry. Then Node Runner will be launched, logging its messages to standard output, e.g.:
To make it switch into background upon startup, add --background
to the command. To quickly check instance status, use gora docker-status
. To inspect instance's logs, use docker log command, e.g.: docker logs -fn 100 gora-nr
.
4) Stop a Node Runner instance
To stop an AWS-deployed Node Runner instance, run: ./gora aws-stop
. For stopping a locally run instance, hit Ctrl-C if it is running in the foreground, or execute ./gora docker-stop
to stop a background instance.
Updating Gora Software
GoraNetwork CLI tool is updated with
gora update
command. It checks whether there is a more recent version than the one being run, and if so, offers to upgrade it by downloading and replacinggora
binary. Current binary will be backed up.Gora Node Runner is distributed as a docker image, so it will be automatically updated whenever your Gora node is started. To ensure that you are running the latest version, simply stop and start your node again.
Background information
Gora Algorand accounts
To ensure security of operator's staked assets, a Gora node uses not one, but two Algorand accounts:
Main account stakes operator's GORA tokens and receives rewards earned by the node. Its private key is never exposed to the node sofware.
Participation account is created specifically for the use by Gora node and linked to the main account with a record the blockchain. Participation account has no access to operator's stake or rewards, except the small amount accrued since the last time rewards were claimed.
This keeps staked tokens and most of the rewards safe in the unlikely case that your Node Runner instance is compromised.
Gora config file
Gora config file contains settings specific for your Gora node in JSON format. When deploying a node to the cloud or launching it locally, GoraNetwork CLI tool reads this file and passes its contents to the Node Runner via Docker container environment settings. The default location of Gora config file is ~/.gora
. It should contain at least the following settings:
Important! Config file access permissions must be set to deny all access to anyone but the user. On Linux, this is done by running: chmod 0600 ~/.gora
. To protect your account, GoraNetwork CLI tool will fail to work otherwise.
Last updated