Skip to content
Config and instructions for running IoTeX testnet node
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Update for rc5 hotfix1 Mar 21, 2019
genesis.yaml Update for rc5 Mar 21, 2019 Update Mar 21, 2019
infra.png Add files via upload Mar 14, 2019 Update Mar 16, 2019

IoTeX TestNet Manual


Check the release notes for what's new in v0.5.0-rc5.

Note: make sure you always rebase to the LATEST iotex-testnet repo

Note: for those who participated in the previous testnet, please restart with the docker image v0.5.0-rc5-hotfix1. you MUST clean up the local database this time!

Join TestNet

  1. Pull the docker image:
docker pull iotex/iotex-core:v0.5.0-rc5-hotfix1

If you have problem to pull the image from docker hub, you can also try our mirror image on gcloud

  1. Edit config.yaml in this repo, look for externalHost and producerPrivKey, replace [...] with your external IP and private key and uncomment the lines. Check the following section for how to generate a key.

  2. Export IOTEX_HOME, create directories, and copy config.yaml and genesis.yaml into $IOTEX_HOME/etc.

cd iotex-testnet


mkdir -p $IOTEX_HOME/data
mkdir -p $IOTEX_HOME/log
mkdir -p $IOTEX_HOME/etc

cp config.yaml $IOTEX_HOME/etc/
cp genesis.yaml $IOTEX_HOME/etc/
  1. Run the following command to start a node:
docker run -d --name IoTeX-Node\
        -p 4689:4689 \
        -p 14014:14014 \
        -p 8080:8080 \
        -v=$IOTEX_HOME/data:/var/data:rw \
        -v=$IOTEX_HOME/log:/var/log:rw \
        -v=$IOTEX_HOME/etc/config.yaml:/etc/iotex/config_override.yaml:ro \
        -v=$IOTEX_HOME/etc/genesis.yaml:/etc/iotex/genesis.yaml:ro \
        iotex/iotex-core:v0.5.0-rc5-hotfix1 \
        iotex-server \
        -config-path=/etc/iotex/config_override.yaml \
        -genesis-path=/etc/iotex/genesis.yaml \

Now your node should be started successfully.

Note that the command above will also make your node be a gateway, which could process API requests from users. If you don't want to enable this plugin, you could remove two lines from the command above: -p 14014:14014 \ and -plugin=gateway.

  1. Make sure TCP ports 4689, 14014, 8080 are open on your firewall and load balancer (if any).

Interact with TestNet

You can install ioctl (a command-line interface for interacting with IoTeX blockchain)

curl | sh

Make sure ioctl is pointed to the testnet endpoint:

ioctl config set endpoint

Generate key:

ioctl account create

Get active delegates of current epoch:

ioctl node delegate

Refer to CLI document for more details.

Checking node log

Container logs can be accessed with the following command.

docker logs IoTeX-Node

content can be filtered with:

docker logs -f --tail 100 IoTeX-Node |grep --color -E "epoch|height|error|rolldposctx"

Stop and remove container

When starting the container with --name=IoTeX-Node, you must remove before a new building

docker stop IoTeX-Node
docker rm IoTeX-Node

Pause and Restarting container

Container can be "stopped" and "restarted" with:

docker stop IoTeX-Node
docker start IoTeX-Node

Fast Block Sync

IoTeX rootchain supports bootstrapping from archives (see below) which will greatly help to reduce the time spent on synchronization.

rm -rf data/

Before these instructions, if you want to run your node as a gateway, please export IOTEX_SNAPSHOT_NAME=data-with-idx-latest.tar.gz, otherwise, export IOTEX_SNAPSHOT_NAME=data-latest.tar.gz.

Then docker run ... as above after the snapshot is ready.

You can’t perform that action at this time.