Skip to main content

Setup a validator

Hardware Requirements:

The following hardware minimum requirements are recommended for running the validator node:

  • Memory: 8 GB RAM
  • CPU: Quad-Core
  • Disk: 250 GB SSD Storage
  • Bandwidth: 1 Gbps for download/100 Mbps for upload

Setting up your validator node

The following tutorial is done on an Ubuntu Linux 20.04 (LTS) x64 instance machine.


You must have these installed:

  • Docker
  • Docker Compose

Clone the validator repository

git clone --recurse-submodules

Arweave Wallet

Save your Arweave wallet in the project root at ./wallet.json. You can generate a new one here.

Alternatively, you can use the wallet generator tool in this repository (requires cargo. Just run):

cargo run --bin wallet-tool create > wallet.json

To get the address of the generated wallet:

cargo run --bin wallet-tool show-address --wallet ./wallet.json

To do both in one command, run:

cargo run --bin wallet-tool create | tee wallet.json |  cargo run --bin wallet-tool -- show-address

The wallet tools require additional dependencies, notably: build-essential and libpq-dev

Environment Variables

The following environment variables need to be defined:

GW_CONTRACT="<validator contract address>"

You can find an example in the example.env file. Copy them by running:

cp example.env .env

Build and run

To build and run the validator:

docker-compose up

Upgrading validator

Navigate to the validator folder then:

Update the repository

git pull origin master

Update the contracts submodule:

git submodule update --init --recurse

Build the updated validator

docker-compose build

Run the validator

docker-compose up

To do all these steps at once:

git pull origin master && git submodule update --init --recursive && docker-compose up -d

Your validator should now be running!