[Validator only]

14. Run Validator Nodes

There are two files that your validator needs to run the new network:

  • migration.blob
  • genesis.blob

Both of them can be grabbed by executing the fetch_blobs.sh script of the genesis repository.

First time running the node after genesis ceremony

Option 1: Running with chain override

Since the new genesis has just been generated, your node software doesn't recognize it yet as mainnet. Therefore, you need to override this parameter in the chain configuration.

The following docker-compose snippet shows how to do this:

services:
  iota-node:
    image: iotaledger/iota-node:v0.11.1-alpha
    ports:
      - "8080:8080"
      - "8081:8081"
      - "8084:8084/udp"
      - "9000:9000"
      - "9184:9184"
    volumes:
      - ./key-pairs:/opt/iota/key-pairs/:ro
      - ./validator.yaml:/opt/iota/config/validator.yaml:ro
      - ./genesis.blob:/opt/iota/config/genesis.blob:ro
      - ./migration.blob:/opt/iota/config/migration.blob:ro
      - ./iotadb:/opt/iota/db:rw
    environment:
      - IOTA_PROTOCOL_CONFIG_CHAIN_OVERRIDE=mainnet
    command: [
      "/usr/local/bin/iota-node",
      "--config-path",
      "/opt/iota/config/validator.yaml",
    ]

Option 2: Running with a fresh software release

Once the genesis is finalized, the IOTA Foundation will release a new version of the node software that recognizes the new genesis as the mainnet. Building and releasing this software is a process that takes some time, so you might need to wait a bit before it is available. However, once it is out, you don't need to run your node with the IOTA_PROTOCOL_CONFIG_CHAIN_OVERRIDE environment variable anymore.