FAQs & Resources
Common Questions
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:
Account Key
Used for managing assets.
Consensus Key
Used for signing blocks.
Ethereum Key
Used for managing staked assets on Ethereum.
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.
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.
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
.What happens if my node goes offline?
Prolonged downtime leads to slashing and being kicked out from the validator set.
How do I backup my node?
Backup
$HOMEDIR
, excluding thedata
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 errorSolution: 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, runrm -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)
andStopping 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 withexocored 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 block8255565
.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
, anddf
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