5.0 KiB
Node API Check
Any syntax in
<>brackets is a user's unique variable/version. Exchange with a corresponding name without the<>brackets.
Operating a nym-node is not a "set and forget" endeavor, it takes some work. To diagnose node performance querying APIs is a good knowledge to have. There are two main places to look for API endpoints regarding nym-node:
openapi.json: a list of all endpoints- Swagger UI page
Besides that, Gateway operators can check out their node performance, connectivity and much more on harbourmaster.nymtech.net.
Basic API usage
For information about available endpoints and their status, you can refer to:
# sustitude <NODE_IP_ADDRESS> or <NODE_DOMAIN> with a real one
# for http
http://<NODE_IP_ADDRESS>:8080/api/v1/swagger/#/
# or
http://<NODE_IP_ADDRESS>/api/v1/swagger/#/
# for reversed proxy/WSS
https://<NODE_DOMAIN>/api/v1/swagger/#/
For example to determine which mode your node is running, you can check :8080/api/v1/roles endpoint:
# sustitude <NODE_IP_ADDRESS> or <NODE_DOMAIN> with a real one
# for http
http://<NODE_IP_ADDRESS>:8080/api/v1/roles
# or
http://<NODE_IP_ADDRESS>/api/v1/roles
# for reversed proxy/WSS
https://<NODE_DOMAIN>/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, 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 has a function counting all existing nodes in provided version.
Setup
Pre-requsities
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
# controll
python --version
# should return higher than 3
- Install Python modules
tabulate,pandasandargparse:
- either using
pipand then running:
pip install tabulate pandas argparse
- or if you installed Python3 system-wide you can install modules directly:
sudo apt install python3-tabulate python3-pandas python3-argparse
Installation
- Get
node_api_check.pyandapi_endpoints.json. If you compiled from source, you already have both of these files. 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
Run with --help flag to see the available commands:
```python
<!--cmdrun cd ../../../../scripts && python ./node_api_check.py --help-->
```
query_stats
When you want to see all the options connected to a command, add a --help flag after the command of your choice, like in this example:
```python
<!--cmdrun cd ../../../../scripts && python ./node_api_check.py query_stats --help-->
```
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 |
-n |
returns output without routing history which can be lengthy |
--output |
-o |
exports output to a file, possible to add a target path |
version_count
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