FAQs & Resources

Common Questions

  1. Why are there so many addresses / mnemonics?

    Exocore uses collateral from multiple blockchains to operate its Proof-of-Stake (PoS) mechanism. This means that participants might need several different addresses to manage their assets across these blockchains.

    Additionally, the validator private key has its own separate mnemonic to enhance security and facilitate key management.

    Essentially, three keys are involved in the management of your node:

    1. Account Key

      Used for managing assets.

    2. Consensus Key

      Used for signing blocks.

    3. Ethereum Key

      Used for managing staked assets on Ethereum.

  2. Why do I need to associate my staker address to my validator address?

    Validators need a minimum self delegation to be considered for inclusion in the active validator set. Since your address on the asset chain (Ethereum) is different from your address on Exocore, you need to associate them.

  3. What is the Bootstrap process?

    The Bootstrap process is the method by which Exocore launches its network with a fully open, decentralized validator set. Unlike other networks that begin with a predefined subset of stakeholders as initial token holders (and hence validators), Exocore allows anyone to become a validator during the network launch phase, ensuring greater decentralization from the outset.

  4. How do I recover a lost validator key?

    Unfortunately, if you lose your validator key and don’t have a backup, it cannot be recovered. However, we do support replacing it with another key. See exocored tx operator set-cons-key --help.

  5. What happens if my node goes offline?

    Prolonged downtime leads to slashing and being kicked out from the validator set.

  6. How do I backup my node?

    Backup $HOMEDIR, excluding the data folder (which can only be backed up if the node is offline). Alternatively, use snapshot-based backups like LVM or ZFS.

Common Issues & Solutions

  • Node Fails to Start with panic: staking param <xxxx> not found in assets module

    • Issue: Running exocored start reports the captioned error

    • Solution: If you run exocored start before downloading the correct genesis file, this error is reported. To fix it, stop the node (if not already stopped), download the correct genesis file to the correct location, run rm -rf $HOMEDIR/data/*.db $HOMEDIR/data/snapshots and restart the node

  • Node Fails to Start with failed to load latest version

    • Issue: Post a binary upgrade, this error is reported.

    • Solution: When running upgrades in which the chain-id is modified, the old data must be abandoned. Try again with a different $HOMEDIR path. However, do not clear your existing location unless you have backed up your private key(s).

  • Node Fails to Start with Any Other Reason

    • Issue: The node fails to start or crashes immediately.

    • Solution: Check the logs with journalctl -u exocore -f for specific error messages. Ensure that all dependencies are installed and that your configuration files are correctly set up.

  • The Node Can't Find Peers from Seed Nodes

    • Issue: The logs indicate Connection is closed @ recvRoutine (likely by the other side) and Stopping peer for error with respect to the seed nodes.

    • Solution: The seed nodes are designed to avoid DoS attacks by responding with a list of peers and then closing the connection. The node will retry connecting to the received peers, as well as the seed nodes, within 30 seconds of this response. As long as the seed node IP and port are configured correctly, the connection will begin shortly.

  • Syncing Takes Too Long

    • Issue: The node is taking an extended time to sync with the network.

    • Solution: Verify that your internet connection is stable, check your firewall, and if the node is connected to a sufficient number of peers. You can check the number of peers using curl -s http://localhost:26657/net_info | jq -r .result.n_peers

  • Validator Missing Blocks

    • Issue: Your validator is missing blocks, leading to reduced rewards.

    • Solution: Ensure that your node is online and has adequate system resources (CPU, RAM). Review your system’s logs for any signs of network or resource issues that could cause missed blocks.

  • Node Out of Sync

    • Issue: The node falls out of sync with the network.

    • Solution: Restart the node using systemctl restart exocore. Check the sync status with exocored status | jq .SyncInfo.catching_up. If the issue persists, consider resetting the data and resyncing from scratch.

  • Node Reports wrong Block.Header.AppHash

    • Issue: The node reports wrong Block.Header.AppHash. Expected XXX, got XXX module=blockchain server=node during syncing and is stuck at block 8255565.

    • Solution: A known issue in exocored 1.0.5 runnning testnet v6 causes this issue. The following steps can be used to remedy the situation.

      • Stop the node.

      • Upgrade the binary to 1.0.6, replacing the existing binary in /usr/bin/exocored.

      • Rollback the node (with the newer binary) by executing exocored rollback --home $HOMEDIR.

      • Start the node with the newer binary.

Troubleshooting Tips

  • Check Logs: Always start troubleshooting by checking the logs. Use journalctl -u exocore -f for real-time logs and review any error messages or warnings.

  • Network Configuration: Ensure that your network configuration allows for sufficient peer connections. You may need to adjust firewall settings or increase the maximum number of open files with ulimit if you encounter connection issues.

  • Resource Monitoring: Monitor system resources like CPU, memory, and disk I/O to ensure your node has enough capacity to perform efficiently. Tools like htop, iotop, and df can be helpful.

  • Regular Updates: Keep your node software up to date to ensure compatibility with the network and to benefit from performance improvements and security patches.

  • Backup Configurations: Regularly backup your configuration files and private keys. This ensures that you can recover quickly in case of hardware failure or other issues.

Useful Commands

Stop the node

systemctl stop exocore

Start the node

systemctl start exocore

Restart the node

systemctl restart exocore

Find my exo1... (account) address

exocored --home $HOMEDIR keys show -a $ACCOUNT_KEY_NAME

Get current height

exocored query block | jq .block.header.height

Check sync status

exocored status | jq

Get current validator set

exocored query tendermint-validator-set

Get own validator address

exocored --home $HOMEDIR tendermint show-address

Convert address formats

exocored debug addr <VALUE>

Get bytes32 val pub key

exocored --home $HOMEDIR --output json keys consensus-pubkey-to-bytes | jq -r .bytes32

Get bytes32 val pub key (another method)

exocored debug pubkey $(exocored --home $HOMEDIR tendermint show-validator)

Get JSON val pub key

exocored --home $HOMEDIR tendermint show-validator

Check node logs

journalctl -u exocore -f

Get the number of peers

curl -s http://localhost:26657/net_info

Check transaction status

exocored query tx <hash>

Find my consensus address

exocored --home $HOMEDIR tendermint show-address

Find my P2P ID

exocored --home $HOMEDIR tendermint show-node-id

(assuming the node port hasn't changed; if it has, it may be supplied with --node)

Support Channels / Contact Us

TODO

Last updated