Harmony Guides
New Validators
Start Here

New Harmony Validators

Welcome to Easy Node Validator's Companion guide. Here we cover what it takes to become a Validator on Harmony ONE and what you can expect along the journey.

This first page has notes you need to keep in mind while going through the official manual installation (opens in a new tab) if you choose that route for your first server.

Harmony Logo

  • Create nodes (servers) to sign blocks for your validator wallet
  • Create a brand and market it, a lot
  • Find a way to add to the community, make people know you're helping
  • Answer questions in the official harmony support channels
  • Work on getting more delegations, you'll need it
  • Debate when it's an appropriate time to add a 2nd BLS key to your server (right now it's around 10 million before you look at a 2nd key)
  • Start new nodes as info and shard conditions change daily

Get started

So you're ready to get started? Well let's get into what's next!

Server Selection

The first thing to get setup is a server. It's up to you to select a provider and host with enough power to run your validator. Do some research as to which validator hosts are in use currently, this changes often.

User Account & SSH Keys

We covered creating a user account in our admin tools section.

Create a Harmony folder

We suggest creating a folder named harmony inside of your user account to store your files and database.

Once you are logged into your new regular user account, create a harmony directory inside the home directory of the new user with the following command:

mkdir ~/harmony

Every time you reconnect you'll have to change directory to your harmony folder. If you ever are "lost" after moving around and need to get back to the harmony folder type the following command:

cd ~/harmony

When you connect or want to run commands, use the command above to get back to that folder. You'll want to run all of your installation commands and validator commands from this folder.

Firewall Setup Notes

For your firewall we only suggest opening up the minimum required ports publicly.

Inbound Rules

  • 22 TCP SSH Access - We suggest locking this to your home or work IP address only and disabling password logins to avoid brute force attacks.
  • 6000 TCP
  • 9000 TCP

Outbound Rules

You're safe to leave all outbound ports open on your firewalls to allow your server to talk out to the internet.

Validator Wallet

ℹ️

In the examples below don't forget to replace serviceuser with your custom account name before you run them if it's different!

Option A: Create on new validator

As a validator your going to need a wallet for validation. The creation will come late in the guide, once your server is online and synced up. We suggest creating a brand new wallet and only using your designated "Validator Wallet" for validating and collecting the rewards you get from it to keep your data separate. You can send the create validator command below:

cd ~/harmony
./hmy keys add serviceuser --passphrase

It will ask for your password twice, and then repeat back your mnemonic phrase. Keep it somewhere safe and secure and never share it with anyone! You only get one shot at writing down your mnemonic phrase with this option, be very careful and record it properly

Option B: Using an existing wallet instead

ℹ️

You can also import an existing wallet in a variety of ways. Take a look at the output of the command ./hmy keys below to see your options.

./hmy keys
Manage your local keys

Usage:
  hmy keys [flags]
  hmy keys [command]

Available Commands:
  add                   Create a new keystore key
  check-passphrase      Check if passphrase for given account is valid.
  export-ks             Export the keystore file contents
  export-private-key    Export the secp256k1 private key
  generate-bls-key      Generate bls keys then encrypt and save the private key with a requested passphrase
  generate-bls-keys     Generates multiple bls keys for a given shard network configuration and then encrypts and saves the private key with a requested passphrase
  get-public-bls-key    Get the public bls key associated with the provided private bls key
  import-ks             Import an existing keystore key
  import-private-key    Import an existing keystore key (only accept secp256k1 private keys)
  list                  List all the local accounts
  location              Show where `hmy` keeps accounts & their keys
  mnemonic              Compute the bip39 mnemonic for some input entropy
  recover-bls-key       Recover bls keys from an encrypted bls key file
  recover-from-mnemonic Recover account from mnemonic
  remove                Remove a key from the keystore
  save-bls-key          Encrypt and save the bls private key with a requested passphrase

Flags:
  -h, --help   help for keys

Global Flags:
      --file string   Path to file for given command when applicable
  -e, --ledger        Use ledger hardware wallet
      --no-latest     Do not add 'latest' to RPC params
      --no-pretty     Disable pretty print JSON outputs
  -n, --node string   <host> (default "http://localhost:9500")
  -v, --verbose       dump out debug information, same as env var HMY_ALL_DEBUG=true

Use "hmy keys [command] --help" for more information about a command.

For example, if you'd like to recover your wallet from a mnemonic phrase, run the following command.

./hmy keys recover-from-mnemonic serviceuser --passphrase

After you've created a wallet or imported an existing wallet successfully you can view your registered validator wallet address with the following command.

./hmy keys list

Fund Wallet

Once you know which wallet you'll be using on your validator, you must send at least 10001 Harmony $ONE to the new wallet before you send your create-validator command on the blockchain during the Official Setup.

BLS Keys

As a new user you'll be setting up some BLS Keys for your server to use on the blockchain during the Official Setup Guide. This section is expanded notes for when that time comes.

Setting up BLS Keys

We suggest making 10 BLS keys on the shard you start with. Save them to your home PC. They can be reused anytime you deploy that shard again and only need to be created once. Once you have your .key & .pass files save them in a folder at home for reuse via WinSCP, scp, rsync, or however you send files to a server.

When you start you won't need more than 1 for quite some time (at least 9.5 million $ONE today) but if you have the others in place you won't need to restart your services and miss blocks to add more keys to your nodes.

Creating new BLS keys

This covers creation of your BLS Key(s) that you decided on before starting the guide. We encourage you to run one on shards 1-3 instead of just 0.

Here you'll be creating the keys, creating a folder, and copying them into the proper folders. You may want to store a backup of these files as well.

To keep things simple, set up a password file before you begin. This will make it easy to copy the password to the required .pass files.

cd ~/harmony
echo -E 'password' > blskey.pass

To create BLS Keys after you've completed the toolbox installation:

./hmy keys generate-bls-keys --count 10 --shard 1 --passphrase-file blskey.pass

This will create .key files in your ~/harmony directory. Copy those key files to your ~/harmony/.hmy/blskey folder.

text copy cp *.key ~/harmony/.hmy/blskeys

The last step to use your blskey.pass file is to edit your harmony.conf file and setup the path.

nano ~/harmony/harmony.conf

Change the line PassFile = [] to read:

PassFile = "./blskey.pass"

Save and exit nano (Ctrl+X y enter)

Backup your .key and .pass files @ home or in the cloud

Using your admin transfer tool of choice, transfer your .key and .pass files to your home pc and store them securely. The key and pass files are all you need backed up to quickly restore a node. Once you create keys for a shard you can save them and re-use them when needed. They do not need to be created again once you have working copies backed up.

We suggest building a folder that contains a folder for each shard and storing your keys in there.

Ready to Install

You're ready to hit our next section which you'll use along side the official harmony documentation to install. Each chapter in the next section matches up to the official Harmony docs website. Read our notes on what to do before you go through their pages so you can avoid a lot of unneccessary information.