Troubleshooting Chainweb
Running a Node
Peer Sync Errors
If you're running a node and getting something like this the following, then it means that peer synchronization has failed:
This can happen for a variety of reasons.
Out of date binaries
One of the most prevalent is that a node is attempting to enter the network with out of date binaries or dependencies. For example, if a node is attempting to synchronize with an improper version of librocksdb
, then peer synchronization will fail. The solution is to make that all are up to date with the most recent official release of chainweb-node
.
Timeout exceptions
If the synchronizing node fails to provide timely feedback, nodes will receive a timeout exception. In general this is fine, and only considered a warning. No cause for alarm, and nodes can sync to alternative nodes in the meantime. These exceptions are usually post-fixed by a ConnectionTimeout
statement.
Something went wrong
"Something went wrong" exceptions are thrown when an internal server error occurs due to misconfiguration. Just in case, however, consider asking in the Discord to check with us and make sure your node is configured correctly and on a happy path.
Regenerate deleted configs
Issue ./chainweb-node --print-config
to create a fresh config yaml.
Mining KDA
Discover peers to mine
Every Chainweb node maintains a list of peers. If you want a list of peers to mine, curl the /cut/peer
endpoint on any node to discover its list of peers. A good start would be any bootstrap node:
See if a node is minable
Keep up to date with the list of minable nodes, or to test or yourself, point your miner at any of the available nodes and see if it starts mining. This is easiest if you set the default log level to debug
. For example:
Balance isn't showing up after mining a block
Proof-of-Work algorithms rely on the fact that only one winning chain is chosen after a certain length of time. In the meantime, there can be many competing chains which can become several (up to 10's of) blocks long on which you'll see your miner potentially winning blocks. When a winner is chosen and the forks resolve, only those blocks mined by miners on the winning chain will be perceived by the network to be correct, and they will be awarded a block reward. As a result, you can do mining for a while and win a ton of blocks, but if you're mining on a fork you may subsequently not see a change in balance if the fork does not win the race. The solution to this is to help contribute to a healthy distribution of hash power across the network by running your own node and making sure not to centralize your mining attempts on particularly powerful nodes.
404 Errors
Miners will receive 404 errors when miners fail to connect to a node. This can happen for a variety of reasons:
Network misconfiguration
If you do not have incoming and outgoing SSL traffic enabled on your router, miners will 404. Please make sure that you have the correct router configuration. NATs tend to be a problem if you are running on AWS. Make sure this is off.
The node is down
If you receive a 404, the node may be down. Diagnose this by either pinging a node with ping -c 3 <node ip>
and seeing if it pings back or sending a cURL request to a node's health check endpoint:
A healthy node should return the following:
If a node is down, simply switch your miner to a new node which is up. In general, bootstrap nodes should always be up for mining, but it is usually fastest to mine to a peer due to lower congestion rates.
Last updated