Nym Node Troubleshooting
If you have problems running a nym-node
you are likely to find a solution here.
Our documentation often refer to syntax annotated in <>
brackets. We use this expression for variables that are unique to each user (like path, local moniker, versions etcetra).
Any syntax in <>
brackets needs to be substituted with your correct name or version, without the <>
brackets. If you are unsure, please check our table of essential parameters and variables (opens in a new tab).
Binary Build Problems
I am trying to build from the GitHub archive files and the build fails
GitHub automatically includes .zip
and tar.gz
files of the Nym repository in its release. You cannot extract these and build - you'll see something like this:
process didn't exit successfully: `/build/nym/src/nym-0.12.1/target/release/build/nym-socks5-client-c1d0f76a8c7d7e9a/build-script-build` (exit status: 101)
--- stderr
thread 'main' panicked at 'failed to extract build metadata: could not find repository from '/build/nym/src/nym-0.12.1/clients/socks5'; class=Repository (6); code=NotFound (-3)', clients/socks5/build.rs:7:31
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
Why does this happen?
We have scripts which automatically include the Git commit hash and Git tag in the binary for easier debugging later. If you download a .zip and try building from that, it's not a Git repository and build will fail as above.
What to do?
- Follow the instructions in the Binaries section to build nym from source or download precompiled binaries
- To upgrade, follow the upgrade instructions
General Node Config
Where can I find my private and public keys and config?
All config and keys files are stored in a directory named after your node local identifier (<ID>
) which you chosen (if not, default one is default-nym-node
), and can be found at the following PATH: $HOME/.nym/nym-node/<NODE_ID>
where $HOME
is a home directory of the user (your current user in this case) that launched the node or client.
The directory structure for each node will be roughly as follows:
~/.nym/nym-nodes/
└── default-nym-node
├── config
│ └── config.toml
└── data
├── aes128ctr_ipr_ack
├── aes128ctr_nr_ack
├── clients.sqlite
├── cosmos_mnemonic
├── description.toml
├── ed25519_identity
├── ed25519_identity.pub
├── ed25519_ipr_identity
├── ed25519_ipr_identity.pub
├── ed25519_nr_identity
├── ed25519_nr_identity.pub
├── ipr_gateways_info_store.sqlite
├── nr_gateways_info_store.sqlite
├── nr_persistent_reply_store.sqlite
├── x25519_ipr_dh
├── x25519_ipr_dh.pub
├── x25519_noise
├── x25519_noise.pub
├── x25519_nr_dh
├── x25519_nr_dh.pub
├── x25519_sphinx
└── x25519_sphinx.pub
If you cat
the public_sphinx.pem
key, the output will be different from the public key you will see on Nym dashboard (opens in a new tab). The reason for this is that .pem
files are encoded in base64, however on the web they are in base58. Don't be confused if your keys look different. They are the same keys, just with different encoding.
Accidentally killing your node process on exiting session
When you close your current terminal session, you need to make sure you don't kill the Mix Node process! There are multiple ways on how to make it persistent even after exiting your ssh session, the easiest solution is to use tmux
or nohup
, and the more elegant solution is to run the node with systemd
. Read the automation manual here.
What is verloc
and do I have to configure my Nym Node to implement it?
verloc
is short for verifiable location. Mix Nodes and Gateways now measure speed-of-light distances to each other, in an attempt to verify how far apart they are. In later releases, this will allow us to algorithmically verify node locations in a non-fake-able and trustworthy manner.
You don't have to do any additional configuration for your node to implement this, it is a passive process that runs in the background of the mixnet.
Node Functionality Specific Troubleshooting
Choose the mode that you want to troubleshoot.