Setting up Zilliqa Rosetta with Seed node


Setup

info

Please note that whitelisting will be required for operating a Zilliqa seed node. Currently, whitelisting is granted on a case by case basis and usually for reason such as supporting exchange infrastracture.

Step 1: Download Zilliqa-rosetta latest release from https://github.com/Zilliqa/zilliqa-rosetta/releases.

Step 2: Build Zilliqa-rosetta Docker image from Zilliqa and Scilla source code

sh ./build_docker.sh

If you need to build Zilliqa-rosetta with a specific Zilliqa and Scilla version, you can using the following

docker build \
--build-arg ROSETTA_COMMIT_OR_TAG=<ROSETTA_TAG> \
--build-arg SCILLA_COMMIT_OR_TAG=<SCILLA_TAG> \
--build-arg COMMIT_OR_TAG=<ZILLIQA_TAG> \
-t rosetta:1.0 .

Please note compiling Zilliqa and Scilla may take some time.

Step 3: Create config.yaml for Zilliqa-rosetta. We have also provided a sample of testnet and mainnet configuration.

Step 4: Generation of keypair for whitelisting (only for public key whitelisting method)

If you are using public key whtielisting method and wish to generate a keypair, you can do the following

mkdir secrets
docker run --rm \
--env GENKEYPAIR="true" \
rosetta:1.0 > secrets/mykey.txt

Remember to inform the Zilliqa team of your public key for whitelisting purpose

Step 5:Running Zilliqa-rosetta

docker run -d \
--env BLOCKCHAIN_NETWORK="<NETWORK_TO_USE>" \
--env IP_ADDRESS="<SEED_NODE_HOST_IP>" \
--env MULTIPLIER_SYNC="<Y_or_N>" \
--env SEED_PRIVATE_KEY="<SEED_PRIVATE_KEY>" \
--env TESTNET_NAME="<NAME_OF_THE_TESTNET>" \
--env BUCKET_NAME="<NAME_OF_THE_PERSISTENCE_BUCKET>" \
-v $(pwd)/secrets/mykey.txt:/run/zilliqa/mykey.txt \
-p 4201:4201 -p 4301:4301 -p 4501:4501 -p 33133:33133 -p 8080:8080 \
--name rosetta rosetta:1.0
VariableDescription
NETWORK_TO_USEtestnet or mainnet
SEED_NODE_HOST_IPPublic IP for Zilliqa seed node
SEED_PRIVATE_KEYprviate key of the whitelisted keypair. Optional field
NAME_OF_THE_TESTNETRefer to network meta
NAME_OF_THE_PERSISTENCE_BUCKETRefer to network meta

Maintanance

Restarting Zilliqa Rosetta

docker stop <container name>
docker start <container name>