Mainnet Validator

Turn a current node into a validator on the mainnet.

This guide contains instructions on how to setup and run an UX validator.

There are two (2) crucial processes required for a healthy validator node:

In order to become an active validator, you must have more stake than the bottom validatoropen in new window. You may still execute the following steps, but you will not be active and therefore won't receive staking rewards.

Release Compatibility Matrix

Please consult release compatibility matrixopen in new window to make sure you install the right version.

Keyring

Prior to creating your validator, you must first create your "operator" key. Note, this is not your consensus key and will not be used for signing. Instead, it is used to identify you validator in the UX network.

umeed keys add <key-name> [flags]

By default, umeed will store keys in your OS-backed keyring. You can change this behavior by specifying the --keyring-backend flag.

If you already have a key that you'd like to import via a mnemonic, you can provide a --recover flag and the keys add command will prompt you for the BIP39 mnemonic.

Visit the Cosmos SDK's keyring documentationopen in new window for more information

Price Feeder

The x/oracle moduleopen in new window requires that all validators vote on the price of assets which governance has decided to add. In order to vote on these prices, the umee team has built the price feederopen in new window.

Please click hereopen in new window to see what version of the price feeder is compatible with your version of the umeed binary. Please click hereopen in new window to know how to install price-feeder binary.

  1. Download the example config files, Download the price-feeder.toml hereopen in new window and provider config files hereopen in new window

We should maintain the below folder structure for provider-config

- umee-provider-config
  - currency-pairs.toml
  - deviation-thresholds.toml
  - endpoints.toml
  1. Replace the example values in your config Set up your keyring using the description hereopen in new window.

    Update the [account] information with the correct chain-id (umee-1 for mainnet), address, and validator address from your keyring.

    [account]
    address = "umee15nejfgcaanqpw25ru4arvfd0fwy6j8clccvwx4"
    chain_id = "umee-1"
    validator = "umeevaloper12tysz6mzrawenca2t3t7ltym4hfjj8a5upsn2k"
    
  2. In order to get your address & validator address, given a key with the name alice, you can run:

    umeed keys show alice -a --bech=acc
    umeed keys show alice -a --bech=val
    
  3. Create a systemdopen in new window service file

    sudo tee /etc/systemd/system/price-feeder.service > /dev/null <<EOF
    [Unit]
    Description=Umee Price Feeder
    After=online.target[Service]
    StartLimitIntervalSec=0
    StartLimitBurst=0
    
    [Service]
    Type=simple
    User=$USER
    WorkingDirectory=/usr/local/bin
    ExecStart=bash -c 'echo "\n" | price-feeder .price-feeder/config.toml --log-level debug'
    Restart=on-failure
    RestartSec=5s
    LimitNOFILE=65535
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

    Note: The price feeder hits a lot of endpoints to get prices for assets. Sometimes the websocket connections disconnect and cannot reconnect. If this is happening, set up the service file to restart the process after a few hours:

    Restart=always
    RuntimeMaxSec=14400s # 4h
    
  4. Start your service

    sudo systemctl daemon-reload
    sudo systemctl enable price-feeder
    sudo systemctl start price-feeder
    
  5. Please check to make sure your price feeder is running successfully

    sudo journalctl -u price-feeder.service -f
    

If it's not, please check your config. Common problems are:

  • Wrong address
  • Wrong Chain ID
  • Wrong keyring info
  • Invalid providers / token pairs - check coingeckoopen in new window to see the available providers for a given coin
  • Not voting on all required tokens
  1. When ready to delegate feed consent, the price-feeder_address argument is the same as the address = from your price-feeder.toml, eg.

    umeed tx oracle delegate-feed-consent <validator_adress> <price-feeder_address> --chain-id umee-1 --fees 2000uumee
    

Release Notes

Price Feeder official release, v2.4.0open in new window

Installation

If cosmovisor is already installed to automatically swap binaries, skip to installing Price Feeder below.

If this upgrade is to an existing validator, first choose the correct Umee release for your architecture hereopen in new window, manually swap the binaries, and install Price Feeder. If you would like to setup a new mainnet validator, follow those instructions first, before proceeding to install Price Feeder.

Validators must set a mempool version before the update version = "v1"open in new window