Files
nym/docker
2025-05-07 18:10:06 +02:00
..
2025-05-07 17:30:26 +02:00

Nym Validator

This contains the configuration needed to run a Nym validator using Docker

SECURITY: This runs the validator as the root user inside the container for simplicity and development purposes. This setup should NOT be used in any other fashion.

Initial Setup

Before building and running the validator, you'll need to create the required directories:

# Create required directories
mkdir -p data/validator data/addresses
chmod -R 777 data

Running on Apple (Mx) Macs with Colima

When running on Apple Silicon Macs, we are using Colima with x86_64 emulation to properly run the validator:

  1. Install Colima
brew install colima
  1. Set up a Colima VM with x86_64 architecture and Rosetta support:
# Create a Colima VM with x86_64 architecture
colima start nym-validator --arch x86_64 --cpu 4 --memory 8 --disk 20 --vm-type=vz --vz-rosetta --mount-type=virtiofs
  1. Build and start the validator:
# Make sure you're using the Colima context
docker context use colima-nym-validator

# Build the validator
docker-compose build validator

# Start the validator
docker-compose up -d validator

Standard Operation (Intel/AMD x86_64 Systems)

For standard x86_64 systems:

# Build the validator
docker-compose build validator

# Start the validator
docker-compose up -d validator

The genesis validator will be initialized with the network configuration defined in the docker-compose.yml file.

Managing the Validator

To check the validator logs:

docker logs -f validator

To get the admin mnemonic:

docker exec validator cat /root/output/node_admin_mnemonic

To stop the validator:

docker-compose down

Terminating and Cleaning Up Validator Data

If you need to completely terminate your validator and remove all associated data:

# Stop the containers
docker-compose down

# Remove the volumes
docker-compose down -v

# Delete the data directories
rm -rf data

# If you want to start fresh, recreate the directories
mkdir -p data/validator/config data/addresses
chmod -R 777 data

This will completely remove all blockchain state, keys, and configuration, allowing you to start with a clean validator instance

Using nym-cli for Smart Contract Operations

The nym-cli utility can be used to manage and execute WASM smart contracts. You can access the CLI from within the validator container:

docker exec -it validator ./nym-cli cosmwasm --help

Available Commands:

  • upload: Upload a smart contract WASM blob
  • init: Init a WASM smart contract
  • generate-init-message: Generate an instantiate message
  • migrate: Migrate a WASM smart contract
  • execute: Execute a WASM smart contract method
  • raw-contract-state: Obtain raw contract state of a cosmwasm smart contract

Example Usage:

To upload a contract:

docker exec -it validator ./nym-cli cosmwasm upload \
  --mnemonic $(cat /root/output/node_admin_mnemonic) \
  --wasm-file /path/to/contract.wasm

To initialize a contract:

docker exec -it validator ./nym-cli cosmwasm init \
  --mnemonic $(cat /root/output/node_admin_mnemonic) \
  --code-id <CODE_ID> \
  --init-msg '{"key": "value"}'

For more detailed options, use the help command:

docker exec -it validator ./nym-cli cosmwasm <COMMAND> --help