Node API Check
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).
Operating a nym-node
is not a "set and forget" endeavor, it takes some work. To diagnose node network performance through querying APIs, is a good knowledge to have. These are the main places to look for API endpoints regarding nym-node
:
openapi.json
(opens in a new tab): a list of all endpoints- Swagger UI page (opens in a new tab)
Besides that, node operators can check out their node performance, connectivity and much more on harbourmaster.nymtech.net (opens in a new tab).
Basic API usage
For information about available endpoints and their status, you can refer to:
# for http
http://<PUBLIC_IP>:8080/api/v1/swagger/#/
# or
http://<PUBLIC_IP>/api/v1/swagger/#/
# for reversed proxy/WSS
https://<HOSTNAME>/api/v1/swagger/#/
For example to determine which mode your node is running, you can check :8080/api/v1/roles
endpoint:
# for http
http://<PUBLIC_IP>:8080/api/v1/roles
# or
http://<PUBLIC_IP>/api/v1/roles
# for reversed proxy/WSS
https://<HOSTNAME>/api/v1/roles
node_api_check.py
To make this a bit easier, we made a CLI tool querying all available API endpoints based on node Identity Key
(further denoted as <ID_KEY>
) called node_api_check.py
. To diagnose your node performance, whether by yourself or by sharing an output in our operator channel (opens in a new tab), this tool provides you with a quick overview of live data. We recommend to run this checker alongside nym_gateway_probe
to triage both performance and an actual routing.
Besides querying any bonded node APIs, nym_api_check.py
has a function counting all existing nodes in provided version.
Setup
Pre-requsities
1. Install and configure Python3
- Start with installing Python3:
sudo apt install python3
- Make sure Python3 is your default Python version:
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
- Verify:
python --version
# should return higher than 3
- Install Python modules
tabulate
,pandas
andargparse
either usingpip
(opens in a new tab) or if you installed Python3 system-wide you can install modules directly:
2. Install node_api_check.py
and make executable
To run the program you neet to have node_api_check.py
(opens in a new tab) and api_endpoints.json
(opens in a new tab).
-
If you compiled from source, you already have both of these files. Note that the latest version of this program may be on
develop
branch. -
If you prefer to download them individually, do it by opening terminal in your desired location and running:
wget https://raw.githubusercontent.com/nymtech/nym/tree/develop/node_api_check.py
wget https://raw.githubusercontent.com/nymtech/nym/tree/develop/api_endpoints.json
- Make executable:
chmod u+x node_api_check.py
Now you are ready to check your node.
Usage & Commands
- Run the program with
--help
flag to see the available commands:
./node_api_check.py --help
- Command Output:
usage: Nym-node API check [-h] [-V]
{query_stats,q,query,version_count,v,version} ...
Run through all endpoints and print results.
positional arguments:
{query_stats,q,query,version_count,v,version}
query_stats (q, query)
Get all nodes API endpoints
version_count (v, version)
Sum of nodes in given version(s)
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
query_stats
When you want to see all the options connected to any command, add a --help
flag after the command of your choice. Command query_stats
is the most useful one of this program.
./node_api_check query_stats --help
- Command output:
usage: Nym-node API check query_stats [-h] [--no_routing_history]
[--no_verloc_metrics] [-m] [-o [OUTPUT]]
id
positional arguments:
id supply nym-node identity key
options:
-h, --help show this help message and exit
--no_routing_history Display node stats without routing history
--no_verloc_metrics Display node stats without verloc metrics
-m, --markdown Display results in markdown format
-o [OUTPUT], --output [OUTPUT]
Save results to file (in current dir or supply with
path without filename)
The most common usage may be ./node_api_check.py query_stats <ID_KEY>
where <ID_KEY>
is required, substitute it with node Identity Key.
Optional arguments
Flag | Shortcut | Description |
---|---|---|
--markdown | -m | returns output in markdown format |
--no_routing_history | None | returns output without routing history which can be lengthy |
--no_verloc_metrics | None | returns output without verloc measurement which can be lengthy |
--output | -o | exports output to a file, possible to add a target path |
version_count
To see a quick overview of nym-node
version distribution in numbers and graph, visit Nym Harbourmaster (opens in a new tab).
Another command is version_count
where at least one nym-node
version is required. In case of multiple version count, separate the versions with space. We recommend to run this command with --markdown
flag for a nicer output. This is an example where we want to look up how many registered nodes are on versions 1.1.0
, 1.1.1
, 1.1.2
and 1.1.3
:
./node_api_check version_count 1.1.0 1.1.1 1.1.2 1.1.3 --markdown