Elixir
  • About Elixir
  • Network Architecture
    • Validators
    • Fraud Proofs
    • Exchange Orderbook Connections
  • deUSD
    • deUSD Architecture
      • deUSD's RWA Institutional Program
      • Execution Buffer Fund
      • Centralized Exchange Execution
      • (Upcoming) Decentralized Exchange Execution
    • Addresses
    • Utility
    • Yield Calculation
    • Potion Rewards
    • Dashboard (WIP)
    • API
    • Risks
      • Smart Contract Risk
      • Custody Risk
      • Execution Risk
      • Collateral Risk
      • Regulatory Risk
  • Native Exchange Integrations
    • Building Orderbooks
    • Preventing Gamification
    • Exchange Rewards
  • The ELX Token
  • Staking / Delegation
  • Running an Elixir Mainnet Validator
  • Audits
  • Bug Bounty
  • Socials
  • FAQ
Powered by GitBook
On this page
  • Preparations
  • Hardware Requirements
  • Docker Installation
  • Validator Private Key Generation
  • Validator Setup
  • Download The Environment Template
  • Running Your Validator
  • Pull The Docker Image
  • Start Your Validator
  • Upgrading your validator
  • Where To Find Support
  • Discord
  • Report A Bug

Running an Elixir Mainnet Validator

Elixir Mainnet Validator Setup Guide

Last updated 6 months ago

Below is a step-by-step guide to running a validator on the Elixir Network's mainnet and helping to ensure security and effectiveness for building orderbooks.

Preparations

Hardware Requirements

Most hardware is capable of running a validator node. However, it is recommended that you have a system that can be run 24 hours a day, with 8GB of memory and a reliable 100Mbit internet connection. Disk usage is minimal; in most cases, 100GB of storage should be enough.

Docker Installation

Running a validator will require a system configured with an up-to-date install of . Please follow the for your Operating System. Verify your installation works by opening a terminal and running docker ps. You should see something similar to the following output:

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

If you receive an error, revisit the installation guide for your operating system.

Validator Private Key Generation

Elixir recommends using a dedicated wallet for your validator. This wallet will be used for signing transactions in the Elixir Network and the security of this wallet is paramount to earning rewards in the Elixir Network. You will need both the private key and public wallet address to set up and enroll your validator.

Generating A Private Key In Metamask

In Metamask, this can be done by clicking the "My Accounts" icon in the top right, and clicking "+ Create Account." You can obtain the private key by clicking Account Details from the ellipsis menu, and then clicking "Export private key".

For security, this wallet should never be used for anything other than running a mainnet validator.

Validator Setup

Download The Environment Template

Environment Variable
Value

STRATEGY_EXECUTOR_DISPLAY_NAME

This is the public-facing name for you or your organization. This will be visible on Elixir Network dashboards and your uptime and performance metrics will be tied to this name. Only alphanumeric characters, underscore, dash, and space allowed.

STRATEGY_EXECUTOR_BENEFICIARY

Set this to the wallet address you want to receive your Elixir Network validator rewards (when available). This can be any wallet address--EOA, Hardware wallet, Multisig, etc..

SIGNER_PRIVATE_KEY

The private key that was generated in the Preparations steps above. This should be a new, never-used wallet and will never need funds.

Note: This field does not start with 0x

Running Your Validator

Pull The Docker Image

Download the Docker image for the mainnet validator by running the following docker command:

docker pull elixirprotocol/validator

Start Your Validator

Run the validator by executing the following docker command, replacing /path/to/validator.env with the full path to the validator environment file you created in the Validator Setup step:

docker run -it \
  --env-file /path/to/validator.env \
  --name elixir \
  elixirprotocol/validator

Optional: Setting A Restart Policy For Your Validator

Docker allows you to configure a restart policy for docker containers. Elixir recommends running your validator as a daemon with the unless-stopped restart policy:

docker run -d \
  --env-file /path/to/validator.env \
  --name elixir \
  --restart unless-stopped \
  elixirprotocol/validator

Optional: Running A Validator On Apple/ARM Silicon

If you are running on a non-x86 architecture, you may need to set the --platform flag appropriately when starting the validator docker image:

docker run -d \
  --env-file /path/to/validator.env \
  --name elixir \
  --platform linux/amd64 \
  elixirprotocol/validator

Optional: Exposing Health Checks and Metrics

The validator image exposes HTTP endpoints for running health checks and exposes metrics suitable for monitoring with Prometheus. To access this endpoint, you must open port 17690 on the docker container. Doing so will allow you to view the /health and /metrics endpoints in the container.

docker run -d \
  --env-file /path/to/validator.env \
  --name elixir \
  -p 17690:17690 \
  elixirprotocol/validator

Upgrading your validator

As the Elixir team continues to improve the validator, you may need to pull the latest version of the validator. To do so, open a command line in the directory with your Dockerfile and execute the following commands:

docker kill elixir
docker rm elixir
docker pull elixirprotocol/validator

And rerun the docker command you used to start the validator.

Where To Find Support

Discord

  • #validator-announcements: This is an announcements channel you can subscribe to in order to get alerts and notifications for new versions of the validator software. This will be the primary channel the Elixir team will use to notify when there is a new version of the validator software to pull or any version-specific instructions to follow.

  • #node-operators: A DevOps-focused channel where node operators can find peer support, share tips and best practices, and talk about any findings they have. Keep conversation in this channel direct and topical--no "GM"s.

Report A Bug

Download the and open it up in a text editor. Set the values using the legend below:

Our has a thriving and supportive community. Here is a short list of the important channels:

If you find a bug and need to bring it to the developers' attention, you can always file a report in the .

Docker
installation guide
validator environment template file
Discord server
Issue Tracker