How to start your own Validator (+ forger & relay nodes)

Registering a Validator

If you only want to launch relay nodes you can skip registering a validator.

  1. Open nOS Web Wallet

  2. Log in with your mnemonic key, or create a new wallet.
    Make sure to store your mnemonic key in a safe and secure location!

  3. Make sure you have at least 100 coins in your wallet.
    If you’re on the public testnet, you can click Get coins to get free coins (You can request free coins once every 3 days):

  4. On the right next to “Validators”, click Register Validator.

  5. Enter your desired username (lowercase letters, numbers, and underscores only) for your Validator and click “Register”.

  6. Users can now vote for your Validator by entering your username in Search Validator, or by clicking your username in the Validators list.

  7. You can vote for yourself by clicking Find Validator and entering your username. Then click Vote.

Setting up your nodes

Your Forging Node is your server that will verify transactions and forge blocks. You must have a forging node in order to collect block rewards and transaction fees when you’re in the Top 47.

Your Relay Nodes are API servers that maintain a copy of the blockchain. Users and apps in the network can automatically connect to nearby relay nodes to make transactions and get blockchain data.
Your forging node will also need reliable relay nodes to connect with, so if you’re running a Validator you should host at least two Relays.

We’re going to install your relay nodes first using the simple “core-control” package.

Once we set up the first relay, we can create a snapshot and instantly create our second one.

Recommended Node Specs

Forging Node:

  • Ubuntu 16.x / 18.x
  • 2 CPU
  • 8GB RAM
  • 50+ GB SSD (HDD)

Relay Node:

  • Ubuntu 16.x / 18.x
  • 1 CPU
  • 3GB-4GB RAM
  • 50+ GB SSD (HDD)

Creating Relay Nodes

  1. Go to DigitalOcean or any other VPS service (AWS, Google Cloud, Vultr etc). (Note: This is a DigitalOcean referral link that grants you $100 credit for 60 days, more than enough to run your nodes at zero cost for the first two months.).

Important: If you’re signing up with a referral link, make sure to turn off your adblockers (e.g. Brave Browser can block your referral data from your session).

  1. Once logged in to DigitalOcean, create a new Droplet.

  2. Select the $15/mo Standard Droplet (3 GB RAM / 1 CPU):

  3. Select your preferred hosting location. You’ll use the same location for all your nodes. This can be your own country, or you can ask the community in which country more nodes are needed:

  4. If you don’t have an SSH Key, click New SSH Key and follow the on-screen instructions:

  5. Enter a hostname such as “relay-1”

  6. Add the tag “nos” to your droplet:

  7. You can optionally enable backups for $3/mo. Low cost for an important feature. Enabling it is recommended.

Setting up core-control

Now we’re going to set up core-control.

  1. Log in to your VPS using SSH: Instructions for Windows - Instructions for macOS/Linux.

  2. Once logged in, create a new user:

adduser nos
usermod -aG sudo nos
su nos

Whenever you log in to your droplet, you can (and should always) log in with su nos.
You can also configure it as your default user account when logging in with PuTTy or OpenSSH.

  1. Navigate to your nos user directory:
cd ~

Clone the core-control repository and navigate into it:

git clone -b nos-devnet
cd core-control

Now we can install the blockchain node software (enter one of the two commands below based on your preference):

# If you'd like core-control to set up everything, including a firewall:
./ install core

# OR: If you don't want your firewall (UFW) auto-configured (advanced users):
./ install core advanced

The installation will take a few minutes.

  1. After installation is done, we can create a snapshot in our VPS dashboard to quickly create the second relay. Click on the VPS in your dashboard and create a snapshot:

  2. After the snapshot is made, go to create a new VPS, but instead of selecting Ubuntu, we’ll select the snapshot we just made:

  3. Select the same server plan (3GB RAM, 1 CPU for $15/mo), add the SSH key you created for the first server, set your hostname to relay-2, add the nos tag, and if you already have a back-up plan for relay-1 you don’t need to add another back-up plan for this one.

  4. Click create and log in to your new node using OpenSSH or PuTTy. Now you should have two SSH sessions open: one for relay-1 and another for relay-2.

  5. In relay-2, execute the following to log in as the nos user and go to the core-control directory:

su nos
cd ~/core-control
  1. Now execute the following commands in both relay-1 and relay-2:
./ start relay
./ logs

Next time you log in to your nodes, as the nos user, you can run ccontrol <command> without navigating to the core-control directory.

You can run ccontrol logs to check the node logs.

  1. The relay node should now be live and working.

Forging Node Set-up

We can use the snapshot we made when we set up our first node to quickly bootstrap the forger:

  1. Create a new VPS, select your relay-1 snapshot, and select the 8GB RAM / 4 CPU plan ($40/mo on DigitalOcean).

  2. Select your SSH key, enter the hostname forger-1 and add the nos tag. Adding the back-up plan for your forger is recommended.

  3. Create the node and log in with SSH.

  4. Configure your private key by entering:

ccontrol secret set {your secret here}

Replace {your secret here} with your validator’s mnemonic key, without the { ... } brackets.

  1. Run the following:
ccontrol start core
ccontrol logs

You should see your forger start syncing blocks.

When your Validator has enough votes to be in the Top 47, you’ll start forging blocks and collecting block rewards and transaction fees.

If you’re in the top 5, you’ll earn 0.02 NOS extra per block!

While you’re not in the Top 47, all of your nodes will still sync the blockchain and help secure and increase the performance of the network.

Now it’s time to advertise your validator to the community with a Validator Announcement Thread!