Edit

Troubleshootinga

Here are some common problems you might encounter while trying to set up the Coda daemon. If you can't find your issue here please ask for help on Discord or open an issue on Github.

Port forwardinga

If you're running a Coda node on a home or office machine, you'll have to set up port forwarding to make your node visible on the internet to other Coda nodes. Note that when running Coda in the cloud, this is unnecessary -- instead you should configure security groups for your cloud provider.

Using UPnPa

Follow the steps below to use MiniUPnP to forward ports on your router:

Run the following command:

    $ sudo upnpc -r 8302 TCP 8303 UDP

If this command succeeds, you'll see a response indicating that the ports have been successfully redirected:

...
InternalIP:Port = 192.168.101.7:8302
external 148.64.99.117:8302 TCP is redirected to internal 192.168.101.7:8302 (duration=0)
...
InternalIP:Port = 192.168.101.7:8303
external 148.64.99.117:8303 UDP is redirected to internal 192.168.101.7:8303 (duration=0)

If you are on a shared network (like an office wireless network), you may get the following error if someone else on the same network has already redirected these ports:

AddPortMapping(8302, 8302, 192.168.101.7) failed with code 718 (ConflictInMappingEntry)

If this happens, you can forward different ports, as long as they are unused by another application:

    $ sudo upnpc -r <custom-port> TCP <custom-port + 1> UDP

If you forward custom ports, keep in mind:

  • The UDP port forwarded has to be the next consecutive port from the TCP mapping.
  • When running Coda daemon commands in the next step, you'll need to add the flag -external-port <custom-port> passing in the TCP port you forwarded above.

Manual port forwardinga

Depending on your router, you may see one of the following errors:

  • No IGD UPnP Device found on the network!
  • connect: Connection refused

If so, find your router model and search for <model> port forwarding and follow the instructions to forward the ports from your router to your device running the Coda node. You'll need to open the TCP port 8302, and the UDP port 8303 by default.

Issues determining IP addressa

If you see couldn't determine our IP from the internet, use -external-ip flag, then the daemon failed to determine its own IP from these service providers. Your firewall may be blocking HTTP/S requests, or the network connection may not be working.

To bypass this, pass in the flag -external-ip <your-ip-address> when starting the Coda daemon. To get your external IP address, run curl ifconfig.me.

macOS Hostnamea

If you're running Coda on macOS and see the following time out error monitor.ml.Error "Timed out getting connection from process", you'll need to add your hostname to /etc/hosts by running the following:

  • $ hostname to get your hostname
  • $ vim /etc/hosts to open your hostfile and add the mapping:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       <ADD YOUR HOSTNAME HERE>

This is necessary because sometimes macOS doesn't resolve your hostname to your local IP address.

Connectivity Issuesa

  • If the number of peers is 0, there may be an issue with the IP address - make sure you typed in the IP address and port exactly as specified in Start a Coda node.
  • If sync status is Bootstrap, you'll need to wait for a bit for your node to catch up to the rest of the network. In the Coda network, we do not have to download full transaction history from the genesis block, but nodes participating in block production and compression need to download recent history and the current account data in the network. Future versions of the client will allow non-operating nodes to avoid having to download this data.
  • If sync status is Offline or Bootstrap for more than 15 minutes, you may need to configure port forwarding for your router. Otherwise you may need to resolve connectivity issues with your home network.

Other issuesa

Accepting incoming connectionsa

If you see one or more warnings like the below, then choose "Allow":

Do you want the application "coda" to accept incoming network connections?

Failure on daemon restarta

If you restart the Coda daemon and it fails, then try deleting your config folder by running rm -rf ~/.coda-config directory and starting the daemon again.

Daemon restart on computer sleepa

If the machine running your Coda node enters sleep mode or hibernates, you will need to restart the Coda daemon once the machine becomes active.

Failed to connect to any initial peersa

Look in the logs for messages about "Chain ID mismatch". These messages mean your daemon was compiled for a different chain than the peers it tried to connect to. This can happen normally, but during startup at least one peer needs to have a matching chain ID.

Otherwise, if there are messages about "Retrieving chain ID failed", or other errors, you may need to configure port forwarding for your router.