LogoLogo
  • Imua
    • About
  • Manifesto
    • The Problems
    • The Principles
  • Architecture
    • Imua Design Principles
    • Imua Network
    • Imua Modules
    • Client Chain Bridges
      • Trustless Verification of Client Chain State
      • Handling Race Conditions between Imua and Client Chains
    • Client Chain Contracts
  • Concepts
    • Ecosystem
      • Re/stakers
      • Operators
      • Services (AVS)
        • Service Integration with Imua
        • Service Committee
        • Service Integration Details
    • restaked Proof-of-Stake (rPOS)
    • Multi-Token Restaking
    • Multi-Chain Restaking with Trustless Bridging
    • Voting Power
    • Price Oracle
    • Flexible Integration with AVS
    • Tribe Staking
  • Governance
  • Risk Management
    • Risk Analysis
      • Risk Modeling
      • Risk Parameters
      • Crypto-Economic Risk
      • Unintended Slashing
      • Black Swan Events
    • Risk Mitigation
      • Smart Contract Simplicity
      • Audits
      • Slashing Prevention
      • Slashing Vetos
      • Insurance Pools
      • Circuit Breakers
  • Components
    • Testnet
    • Oracle Module
      • Reaching Consensus on Asset Prices
      • Penalty
      • Implementation Detail
    • Smart Contracts
    • Explorer
    • Registry
  • Validator Setup
    • Prerequisites
    • Node Install
    • Compiling Binary from Source
    • Oracle Price Feeder
    • Running the Node
    • Snapshot
    • Register Option 1 (Bootstrap)
    • Register Option 2 (Post Network Launch)
    • Deposit Tokens
    • Delegating Tokens
    • Confirm Election Status
    • Faucets
    • Managing The Validator
    • Security Best Practices
    • Risks & Mitigation
    • Participation in Governance
    • FAQs & Resources
  • Testnet Upgrade to v1.1.2
  • AVS Setup
    • AVS Overview
    • Prerequisites
    • Enhanced and Automated Edition of hello-avs integration guide&example
    • Building the AVS in Imua
    • Hello-World-AVS Example
    • Becoming AVS Operator
    • AVS Register and Deploy
    • AVS Task Example
  • Whitepaper (2023)
    • .pdf
  • FAQ
    • What problems is Imua solving?
    • What are the main design trade-offs that had to be made with an omnichain design?
    • Does the omnichain design imply added trust assumptions (relative to a single-chain design)?
    • What concurrency-related challenges would you face with a different design?
    • How does Imua integrate with new chains?
    • Do specific chains prove unique challenges w.r.t. integration?
    • How is the cross-chain communication is achieved?
    • What are the known attack / censorship vectors here, if any?
    • Are the restaked tokens being pooled in a centralized account?
    • Who will run the validators in the Imua network?
    • Is Imua an AVS?
    • How does Imua address the risks of overloading L1 social consensus?
    • Does the Imua queuing system raise concerns around latency?
    • What are the main benefits of an omnichain design?
Powered by GitBook
On this page
  1. Validator Setup

Testnet v7 to v8 upgrade

This page is designed to explain the upgrade process from Exocore (exocoretestnet_233-7) to Imuachain (imuachaintestnet_233-8).

Last updated 19 days ago

Imuachain v1.1.0 brings support for manual upgrades using Cosmovisor. It is recommended that all validators install and use Cosmovisor to manage the node to make future upgrades easier and less manual than they are currently.

COSMOVISOR_VERSION="v1.7.0"
wget -O cosmovisor_${COSMOVISOR_VERSION}.tar.gz "https://github.com/cosmos/cosmos-sdk/releases/download/cosmovisor%2F${COSMOVISOR_VERSION}/cosmovisor-${COSMOVISOR_VERSION}-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/').tar.gz"

Extract and install the binary to /usr/bin which will need root privileges.

tar -xvzf cosmovisor_${COSMOVISOR_VERSION}.tar.gz
mv cosmovisor /usr/bin/

and move it to /usr/bin as well. Then, initialize the cosmovisor and imuad folders in a $HOMEDIR of your choice. You may need to , if not created already.

# The top three items below may be edited as you see fit
export IMUA_USER="imuauser"
export HOMEDIR="/home/$IMUA_USER/.imuad"
export MONIKER="moniker"
# Leave these unchanged
export DAEMON_NAME="imuad"
export DAEMON_HOME=$HOMEDIR
export CHAIN_ID="imuachaintestnet_233-8"
cosmovisor init $(which imuad)

# also initialize imuad
imuad --home $HOMEDIR init --chain-id $CHAIN_ID $MONIKER
imuad --home $HOMEDIR config chain-id $CHAIN_ID
# file, or test, may be used for headless systems. test is insecure and not
# recommended for production systems.
imuad --home $HOMEDIR config keyring-backend file
$HOMEDIR/config/config.toml
# Comma separated list of seed nodes to connect to
seeds = "5dfa2ddc4ce3535ef98470ffe108e6e12edd1955@seed2t.exocore-restaking.com:26656,4cc9c970fe52be4568942693ecfc2ee2cdb63d44@seed1t.exocore-restaking.com:26656"
persistent_peers = "d5b8d5ac3f399d0fdd1678fa0f419bd0e55f944d@peer1t.exocore-restaking.com:20000,63ab38c845a9cd41f9626db0fd0a227d2407eb3e@peer2t.exocore-restaking.com:26656"
$HOMEDIR/config/app.toml
###############################################################################
###                           Base Configuration                            ###
###############################################################################

# The minimum gas prices a validator is willing to accept for processing a
# transaction. A transaction's fees must meet the minimum of any denomination
# specified in this config (e.g. 0.25token1;0.0001token2).
minimum-gas-prices = "0.0001hua"

<! -- truncated -->

###############################################################################
###                           gRPC Configuration                            ###
###############################################################################

[grpc]

# Enable defines if the gRPC server should be enabled.
enable = true

Now, copy over the account keys and validator key from the exocored folder to this one.

export OLD_HOMEDIR="$HOME/.exocored" # or a custom value
cp -r --preserve=all $OLD_HOMEDIR/keyring-* $HOMEDIR/
cp -f --preserve=all $OLD_HOMEDIR/config/priv_validator_key.json $HOMEDIR/config
/etc/systemd/system/cosmovisor.service
[Unit]
Description=Start Cosmovisor for imuad
After=network.target

[Service]
Type=simple
User=imuauser
Group=imuauser
# Point to your user
Environment="HOME=/home/imuauser"
# Change to your HOMEDIR value
Environment="HOMEDIR=/home/imuauser/.imuad"
# If running non-validator node, `--oracle` may be excluded
ExecStart=/usr/bin/cosmovisor --cosmovisor-config ${HOMEDIR}/cosmovisor/config.toml run start --oracle --home ${HOMEDIR}

[Install]
WantedBy=default.target

Once your node is fully synced, you can unjail your validator if necessary.

Next, we need to configure imuad as instructed .

Configure the with its new configuration in the $HOMEDIR folder. Note that the configuration format has changed and this step must therefore be performed manually.

and place it in the correct location inside $HOMEDIR/config. Create the cosmovisor.servicefile provided below and start the service using systemctl start cosmovisor. Make sure to own everything with the correct user by using chown -R imuauser:imuauser $HOMEDIR.

Download the imuad binary
create the user
previously
oracle price feeder
Download the genesis file