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.

Prerequisites

You must have these installed:

  • Docker
  • Docker Compose

Clone the validator repository

git clone --recurse-submodules https://github.com/Bundlr-Network/validator.git

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
info

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

Environment Variables

The following environment variables need to be defined:

PORT=80
BUNDLER_URL="https://testnet1.bundlr.network"
GW_CONTRACT="<validator contract address>"
GW_ARWEAVE="https://arweave.testnet1.bundlr.network"

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!