DEV Community

DC
DC

Posted on

Your Guide to the Prerequisites for Running Nodes on Oasis (Part 2): Stake Requirements and Node Installation

Before you can run a node for a blockchain protocol, there are several things to prepare. In this 4-part series, I discuss the prerequisites for running nodes on Oasis in detail. In part 1, we learned about hardware and cloud providers. Here, I will cover stake requirements and how to install the Oasis Node.

Stake Requirements

Based on your node role and whether you are on the mainnet or the testnet, you need to keep in mind the following requirements.

  1. Registration of entity
    Mainnet: 100 ROSE
    Testnet: 100 TEST
    Note: To get the latest entity registration requirement, you will need to run the command oasis network show native-token.

  2. Registration of node
    Mainnet: 100 ROSE
    Testnet: 100 TEST

  3. Size of the validator set
    Mainnet: 120
    Testnet: 110
    Notes: The validator set is the consensus committee, and its size is capped by the max_validators committee-scheduler parameter. To view the current value, you will need to run the command oasis network show parameters.
    For mainnet, to find out whether you are eligible to receive a delegation from the Oasis Protocol Foundation, check out the Delegation Policy.
    For testnet, the faucet generates only a limited number of TEST tokens. If you need more, you will need to contact the team on the official Discord in the testnet channel.

  4. Run a Sapphire or Emerald compute node
    Mainnet: 5,000,000 ROSE + member of the validator set

  5. Run a Cipher compute node
    Mainnet: member of the validator set

Notes: The docs list no separate testnet figures.
To get the latest paratime-specific stake requirements, you will need to run the command oasis network show and specify the paratime ID for mainnet.
To know who the current top validators are, you can do that either with Oasis Explorer or with the CLI command oasis network show validators.

As mentioned, requirements vary according to your choice of node role. Here is a snapshot of the role-specific steps to set up a working node from scratch.

Note: There are no specific requirements for non-validator nodes.

To check whether you meet the requirements for your node role, you will first need to view the balance of your account. You can do that either with Oasis Explorer or with the CLI command oasis account show.

Installing the Oasis Node

The Oasis Node is a binary created from the Oasis Core repository's go/ directory. It is a single executable and contains the logic for running your node in various roles. Currently, the Oasis Node is only supported on x86_64 Linux systems.

Setting up the working directory

You need a place to store necessary files before installing the Oasis Node, so that is the first step. In this guide, /node refers to the working directory.

In the /node directory, start by creating the following subdirectories to allocate specific storage roles.

  • etc/: configuration and entity.json
  • data/: node's data
  • bin/: oasis-node binary
  • runtimes/: paratime .orc bundles

To establish the directory structure along with the corresponding permissions, you will need to execute this command.

mkdir -m700 -p /node/{etc,bin,runtimes,data}
Enter fullscreen mode Exit fullscreen mode

Note: Creating directories under / usually requires root privileges. Make sure the account that will run the node owns /node afterwards, since the 700 permissions give access to the owner only.

Copying the Genesis file

You can find the latest Genesis file for mainnet and testnet as part of the network parameters. The next step involves downloading the latest genesis.json file and copying it to /node/etc/genesis.json on the server.

Once done, you can now get the oasis-node Binary.

Downloading a binary release

The Oasis Protocol Foundation builds and provides the binaries. Since the Oasis Node is part of the Oasis Core release, start by finding the network parameters linked earlier for the respective mainnet and testnet. Next, follow the Oasis Core version link to its GitHub release, where the downloads are listed under Assets.

Building from source

Building from source is highly suggested, but the Oasis documentation currently treats it as beyond its scope. You will need to check out Oasis Core's Build Environment Setup and Building documentation for more details.
Note: The code in the current master branch may be incompatible with the code used by other nodes on the network. It is thus essential that you use the version specified in the network parameters linked earlier for the respective mainnet and testnet.

Adding oasis-node binary to PATH

If you are installing the oasis-node binary next to your Oasis Node data directory, you will need to copy/symlink it to /node/bin. Now, if you are installing the binary for the current user, the copy/symlink needs to be to ~/.local/bin. To install it for all users of the system, you have to copy it to /usr/local/bin.

Running paratimes

This is applicable only if you are running a paratime node. You will then need to install some additional software packages.

You will need Bubblewrap 0.4.1+ to create process sandboxes.
On Ubuntu 20.04+, you can install it with this command.

sudo apt install bubblewrap
Enter fullscreen mode Exit fullscreen mode

For Fedora, use this command instead.

sudo dnf install bubblewrap
Enter fullscreen mode Exit fullscreen mode

This concludes part 2 of the prerequisites series. In the next part, I will discuss system configuration.

  • For technical specs, APIs, architecture, and integration guides, the Oasis documentation is your starting point.
  • For direct support on specific issues, the Oasis engineering team and other node operators are available in the node-operators channel on the official Discord.

Top comments (0)