Welcome to validator AlxVoy ANODE.TEAM



Zenrock

Zenrock

Links

Mainnet service

Explorers

Sync

RPC & API

Peers and seeds

Genesis and addrbook

Wasm

Service script (Install, State-Sync, Snapshot, Delete)

wget -O Zenrock.sh https://anode.team/Zenrock/main/Zenrock.sh && chmod u+x Zenrock.sh && ./Zenrock.sh

Installation

Hardware Requirements

  • Memory 16GB
  • CPUs Quad Core or larger AMD or Intel (amd64) CPU
  • Disk At least 500GB NVMe Storage

Software Requirements

  • Prerequisite: go1.24.3 required. ref
  • Prerequisite: git. ref

Install last binary

wget https://github.com/Zenrock-Foundation/zrchain/releases/download/v6.13.0/zenrockd.zip
unzip zenrockd.zip && rm -r zenrockd.zip
chmod +x zenrockd
mv zenrockd $HOME/go/bin/zenrockd

if an error has occurred, you can simply download the binary

wget -O $HOME/go/bin/zenrock https://anode.team/Zenrock/main/zenrock && chmod +x $HOME/go/bin/zenrock

Init the config files

zenrock init [moniker] --chain-id diamond-1
sed -i "s/chain-id = .*/chain-id = \"diamond-1\"/" $HOME/.zrchain/config/client.toml

Create a wallet

zenrockd keys add [wallet_name]

Download genesis and addrbook

curl https://anode.team/Zenrock/main/genesis.json > ~/.zrchain/config/genesis.json
curl https://anode.team/Zenrock/main/addrbook.json > ~/.zrchain/config/addrbook.json

Add peers, seed

SEEDS=""
PEERS="a1d193c088ba7db8921c6c2c3f1a2efb5fd04d50@65.108.229.19:26796"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.zrchain/config/config.toml

Add min gas

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0urock"|g' $HOME/.zrchain/config/app.toml

Set custom ports

curl -sSL https://anode.team/set-ports.sh | bash -s -- .zrchain

Pruning and indexer

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.zrchain/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.zrchain/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.zrchain/config/app.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.zrchain/config/config.toml

Create the service file

sudo tee /etc/systemd/system/zenrockd.service > /dev/null <<EOF
[Unit]
Description=Zenrock
After=network-online.target

[Service]
User=$USER
ExecStart=$(which zenrockd) start
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Load service and start

sudo systemctl daemon-reload && sudo systemctl enable zenrock
sudo systemctl restart zenrock && journalctl -fu zenrock -o cat

Create Validator

echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(zenrockd comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
    "amount": "1000000urock",
    "moniker": "[moniker]",
    "identity": "[identity]",
    "website": "[website]",
    "details": "[details],
    "security-contact": "[contact]",
    "commission-rate": "0.10",
    "commission-max-rate": "0.20",
    "commission-max-change-rate": "0.01",
    "min-self-delegation": "1"
}" > validator.json
zenrockd tx staking create-validator validator.json \
    --from [wallet_name] \
    --chain-id diamond-1 \
    --fees 200urock

Sidecar

Create the necessary directories

mkdir -p $HOME/.zrchain/sidecar/bin
mkdir -p $HOME/.zrchain/sidecar/keys

Install last binary

wget -O $HOME/.zrchain/sidecar/bin/zenrock-sidecar https://github.com/Zenrock-Foundation/zrchain/releases/download/v6.13.2/validator_sidecar
chmod +x $HOME/.zrchain/sidecar/bin/zenrock-sidecar

Set a password for sidecar wallets

read -p "Enter password for the keys: " key_pass

Build BLS binary

git clone https://github.com/zenrocklabs/zenrock-validators
cd $HOME/zenrock-validators/utils/keygen/bls/
go mod tidy
go build

Create a BLS key

bls_output_file=$HOME/.zrchain/sidecar/keys/bls.key.json
$HOME/zenrock-validators/utils/keygen/bls/bls --password $key_pass -output-file $bls_output_file

Build ECDSA binary

cd $HOME/zenrock-validators/utils/keygen/ecdsa/
go mod tidy
go build

Create a ECDSA key

ecdsa_output_file=$HOME/.zrchain/sidecar/keys/ecdsa.key.json
ecdsa_creation=$($HOME/zenrock-validators/utils/keygen/ecdsa/ecdsa --password $key_pass -output-file $ecdsa_output_file)
ecdsa_address=$(echo "$ecdsa_creation" | grep "Public address" | cut -d: -f2)

Create a configuration file config.yaml

nano $HOME/.zrchain/sidecar/config.yaml
enabled: true
grpc_port: 9191
zrchain_rpc: "localhost:9190"
state_file: "cache.json"
operator_config: "/root/.zrchain/sidecar/eigen_operator_config.yaml"
network: "mainnet"
eth_rpc:
  #local: "http://127.0.0.1:8545"
  testnet: "[https://rpc-endpoint-holesky-here]"
  mainnet: "[https://rpc-endpoint-mainnet-here]"
solana_rpc:
  testnet: "[https://rpc-endpoint-testnet-here]"
  mainnet: "[https://rpc-endpoint-mainnet-here]"
proxy_rpc:
  url:
  user:
  password:
neutrino:
  path: "/root/.zrchain/sidecar/neutrino"

Create a configuration file eigen_operator_config.

nano $HOME/.zrchain/sidecar/eigen_operator_config.yaml
register_operator_on_startup: true
register_on_startup: true
production: true

ecdsa_private_key_store_path: /root/.zrchain/sidecar/keys/ecdsa.key.json
bls_private_key_store_path: /root/.zrchain/sidecar/keys/bls.key.json

aggregator_server_ip_port_address: avs-aggregator.diamond.zenrocklabs.io:8090

eth_rpc_url: [ETH MAIN ENDPOINT HERE]
eth_ws_url: [ETH MAIN WSS ENDPOINT HERE]

enable_metrics: true
eigen_metrics_ip_port_address: 0.0.0.0:9292
enable_node_api: true
node_api_ip_port_address: 0.0.0.0:9191

operator_address: [VALUE FROM STEP - ECDSA key]
operator_validator_address: [VALUE FROM STEP - zenvaloper address]

avs_registry_coordinator_address: 0xFbFECE8f29f499c32206d8bFfA57da2b124790C7
operator_state_retriever_address: 0x03d0452e70711f169eB6B6F5Ab33d8571c313ef6

token_strategy_addr: 0xa5430Ca83713F877B77b54d5A24FD3D230DF854B

Create the service file

tee /etc/systemd/system/zenrock-sidecar.service > /dev/null <<EOF
[Unit]
Description=Zenrock-sidecar
After=network-online.target

[Service]
User=$USER
ExecStart=$HOME/.zrchain/sidecar/bin/zenrock-sidecar
Restart=on-failure
RestartSec=30
LimitNOFILE=65535
Environment="OPERATOR_BLS_KEY_PASSWORD=$key_pass"
Environment="OPERATOR_ECDSA_KEY_PASSWORD=$key_pass"
Environment="SIDECAR_CONFIG_FILE=$HOME/.zrchain/sidecar/config.yaml"

[Install]
WantedBy=multi-user.target
EOF

Load service and start

sudo systemctl daemon-reload && sudo systemctl enable zenrock-sidecar
sudo systemctl restart zenrock-sidecar && journalctl -fu zenrock-sidecar -o cat

Testnet service

Explorers

Sync

RPC & API

Peers and seeds

Genesis and addrbook

Wasm

Service script (Install, State-Sync, Snapshot, Delete)

wget -O Zenrock.sh https://anode.team/Zenrock/test/Zenrock.sh && chmod u+x Zenrock.sh && ./Zenrock.sh

Installation

Hardware Requirements

  • Memory 16GB
  • CPUs Quad Core or larger AMD or Intel (amd64) CPU
  • Disk At least 500GB NVMe Storage

Software Requirements

  • Prerequisite: go1.24.3 required. ref
  • Prerequisite: git. ref

Install last binary

wget https://github.com/Zenrock-Foundation/zrchain/releases/download/v6.13.0/zenrockd.zip
unzip zenrockd.zip && rm -r zenrockd.zip
chmod +x zenrockd
mv zenrockd $HOME/go/bin/zenrockd

if an error has occurred, you can simply download the binary

wget -O $HOME/go/bin/zenrock https://anode.team/Zenrock/test/zenrock && chmod +x $HOME/go/bin/zenrock

Init the config files

zenrock init [moniker] --chain-id diamond-1
sed -i "s/chain-id = .*/chain-id = \"diamond-1\"/" $HOME/.zrchain/config/client.toml

Create a wallet

zenrockd keys add [wallet_name]

Download genesis and addrbook

curl https://anode.team/Zenrock/test/genesis.json > ~/.zrchain/config/genesis.json
curl https://anode.team/Zenrock/test/addrbook.json > ~/.zrchain/config/addrbook.json

Add peers, seed

SEEDS=""
PEERS="a1d193c088ba7db8921c6c2c3f1a2efb5fd04d50@65.108.229.19:26796"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.zrchain/config/config.toml

Add min gas

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0urock"|g' $HOME/.zrchain/config/app.toml

Set custom ports

curl -sSL https://anode.team/set-ports.sh | bash -s -- .zrchain

Pruning and indexer

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.zrchain/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.zrchain/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.zrchain/config/app.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.zrchain/config/config.toml

Create the service file

sudo tee /etc/systemd/system/zenrockd.service > /dev/null <<EOF
[Unit]
Description=Zenrock
After=network-online.target

[Service]
User=$USER
ExecStart=$(which zenrockd) start
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Load service and start

sudo systemctl daemon-reload && sudo systemctl enable zenrock
sudo systemctl restart zenrock && journalctl -fu zenrock -o cat

Create Validator

echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(zenrockd comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
    "amount": "1000000urock",
    "moniker": "[moniker]",
    "identity": "[identity]",
    "website": "[website]",
    "details": "[details],
    "security-contact": "[contact]",
    "commission-rate": "0.10",
    "commission-max-rate": "0.20",
    "commission-max-change-rate": "0.01",
    "min-self-delegation": "1"
}" > validator.json
zenrockd tx staking create-validator validator.json \
    --from [wallet_name] \
    --chain-id diamond-1 \
    --fees 200urock

Sidecar

Create the necessary directories

mkdir -p $HOME/.zrchain/sidecar/bin
mkdir -p $HOME/.zrchain/sidecar/keys

Install last binary

wget -O $HOME/.zrchain/sidecar/bin/zenrock-sidecar https://github.com/Zenrock-Foundation/zrchain/releases/download/v6.13.2/validator_sidecar
chmod +x $HOME/.zrchain/sidecar/bin/zenrock-sidecar

Set a password for sidecar wallets

read -p "Enter password for the keys: " key_pass

Build BLS binary

git clone https://github.com/zenrocklabs/zenrock-validators
cd $HOME/zenrock-validators/utils/keygen/bls/
go mod tidy
go build

Create a BLS key

bls_output_file=$HOME/.zrchain/sidecar/keys/bls.key.json
$HOME/zenrock-validators/utils/keygen/bls/bls --password $key_pass -output-file $bls_output_file

Build ECDSA binary

cd $HOME/zenrock-validators/utils/keygen/ecdsa/
go mod tidy
go build

Create a ECDSA key

ecdsa_output_file=$HOME/.zrchain/sidecar/keys/ecdsa.key.json
ecdsa_creation=$($HOME/zenrock-validators/utils/keygen/ecdsa/ecdsa --password $key_pass -output-file $ecdsa_output_file)
ecdsa_address=$(echo "$ecdsa_creation" | grep "Public address" | cut -d: -f2)

Create a configuration file config.yaml

nano $HOME/.zrchain/sidecar/config.yaml
enabled: true
grpc_port: 9191
zrchain_rpc: "localhost:9190"
state_file: "cache.json"
operator_config: "/root/.zrchain/sidecar/eigen_operator_config.yaml"
network: "mainnet"
eth_rpc:
  #local: "http://127.0.0.1:8545"
  testnet: "[https://rpc-endpoint-holesky-here]"
  mainnet: "[https://rpc-endpoint-mainnet-here]"
solana_rpc:
  testnet: "[https://rpc-endpoint-testnet-here]"
  mainnet: "[https://rpc-endpoint-mainnet-here]"
proxy_rpc:
  url:
  user:
  password:
neutrino:
  path: "/root/.zrchain/sidecar/neutrino"

Create a configuration file eigen_operator_config.

nano $HOME/.zrchain/sidecar/eigen_operator_config.yaml
register_operator_on_startup: true
register_on_startup: true
production: true

ecdsa_private_key_store_path: /root/.zrchain/sidecar/keys/ecdsa.key.json
bls_private_key_store_path: /root/.zrchain/sidecar/keys/bls.key.json

aggregator_server_ip_port_address: avs-aggregator.diamond.zenrocklabs.io:8090

eth_rpc_url: [ETH MAIN ENDPOINT HERE]
eth_ws_url: [ETH MAIN WSS ENDPOINT HERE]

enable_metrics: true
eigen_metrics_ip_port_address: 0.0.0.0:9292
enable_node_api: true
node_api_ip_port_address: 0.0.0.0:9191

operator_address: [VALUE FROM STEP - ECDSA key]
operator_validator_address: [VALUE FROM STEP - zenvaloper address]

avs_registry_coordinator_address: 0xFbFECE8f29f499c32206d8bFfA57da2b124790C7
operator_state_retriever_address: 0x03d0452e70711f169eB6B6F5Ab33d8571c313ef6

token_strategy_addr: 0xa5430Ca83713F877B77b54d5A24FD3D230DF854B

Create the service file

tee /etc/systemd/system/zenrock-sidecar.service > /dev/null <<EOF
[Unit]
Description=Zenrock-sidecar
After=network-online.target

[Service]
User=$USER
ExecStart=$HOME/.zrchain/sidecar/bin/zenrock-sidecar
Restart=on-failure
RestartSec=30
LimitNOFILE=65535
Environment="OPERATOR_BLS_KEY_PASSWORD=$key_pass"
Environment="OPERATOR_ECDSA_KEY_PASSWORD=$key_pass"
Environment="SIDECAR_CONFIG_FILE=$HOME/.zrchain/sidecar/config.yaml"

[Install]
WantedBy=multi-user.target
EOF

Load service and start

sudo systemctl daemon-reload && sudo systemctl enable zenrock-sidecar
sudo systemctl restart zenrock-sidecar && journalctl -fu zenrock-sidecar -o cat