From 1ef33ce79751fb849118bb7a0fb5cef72c2d3198 Mon Sep 17 00:00:00 2001 From: serinko <97586125+serinko@users.noreply.github.com> Date: Wed, 29 Jan 2025 12:08:24 +0100 Subject: [PATCH] initialise branch - leaving for later focus now --- documentation/backup-pages/node-api-check.mdx | 165 ++++++++++++++++++ documentation/docs/data/csv/isp-sheet.csv | 45 +++-- 2 files changed, 185 insertions(+), 25 deletions(-) create mode 100644 documentation/backup-pages/node-api-check.mdx diff --git a/documentation/backup-pages/node-api-check.mdx b/documentation/backup-pages/node-api-check.mdx new file mode 100644 index 00000000000..43867da0889 --- /dev/null +++ b/documentation/backup-pages/node-api-check.mdx @@ -0,0 +1,165 @@ +import { Tabs } from 'nextra/components'; +import { Callout } from 'nextra/components'; +import { VarInfo } from 'components/variable-info.tsx'; +import { Steps } from 'nextra/components'; +import { MyTab } from 'components/generic-tabs.tsx'; +import NodeApiCheckHelp from 'components/outputs/command-outputs/node-api-check-help.md'; +import NodeApiCheckQueryHelp from 'components/outputs/command-outputs/node-api-check-query-help.md' + +# Node API Check + + +CLI tool `node_api_check.py`, helping operators to collect all API values about their nodes locally, is not up to date with the API changes introduced with `v2024.13-magura` release version. Please treat it as unstable before we fix it. + + + + +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`](https://validator.nymtech.net/api/v1/openapi.json): a list of all endpoints +- [Swagger UI page](https://validator.nymtech.net/api/swagger/index.html) + +Besides that, node operators can check out their node performance, connectivity and much more on [harbourmaster.nymtech.net](https://harbourmaster.nymtech.net/). + +### Basic API usage + +For information about available endpoints and their status, you can refer to: +```sh +# for http +http://:8080/api/v1/swagger/#/ +# or +http:///api/v1/swagger/#/ + +# for reversed proxy/WSS +https:///api/v1/swagger/#/ +``` + +For example to determine which mode your node is running, you can check `:8080/api/v1/roles` endpoint: +```sh +# for http +http://:8080/api/v1/roles +# or +http:///api/v1/roles + +# for reversed proxy/WSS +https:///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 ``) called `node_api_check.py`. To diagnose your node performance, whether by yourself or by sharing an output in our [operator channel](https://matrix.to/#/#operators:nymtech.chat), this tool provides you with a quick overview of live data. We recommend to run this checker alongside [`nym_gateway_probe`](gateway-probe.md) 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: +```sh +sudo apt install python3 +``` + +- Make sure Python3 is your default Python version: +```sh +update-alternatives --install /usr/bin/python python /usr/bin/python3 1 +``` + +- Verify: +```sh +python --version + +# should return higher than 3 +``` + +- Install Python modules `tabulate`, `pandas` and `argparse` either using [`pip`](https://python.land/virtual-environments/installing-packages-with-pip) or if you installed Python3 system-wide you can install modules directly: + +
+ Using pip, + System-wide Python installation, + ]} defaultIndex="1"> + + ```sh + pip install tabulate pandas argparse + ``` + + + ```sh + sudo apt install python3-tabulate python3-pandas python3-argparse -y + ``` + + +
+ +###### 2. Install `node_api_check.py` and make executable + +To run the program you neet to have [`node_api_check.py`](https://github.com/nymtech/nym/tree/develop/scripts/node_api_check.py) and [`api_endpoints.json`](https://github.com/nymtech/nym/tree/develop/scripts/api_endpoints.json). + +- If you [compiled from source](../../binaries/building-nym.mdx), 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: +```sh +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: +```sh +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: +```sh +./node_api_check.py --help +``` + +- Command Output: + + + +#### `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. + +```sh +./node_api_check query_stats --help +``` + +- Command output: + + + +The most common usage may be `./node_api_check.py query_stats ` where `` 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](https://harbourmaster.nymtech.net). + + +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`: +```sh +./node_api_check version_count 1.1.0 1.1.1 1.1.2 1.1.3 --markdown +``` diff --git a/documentation/docs/data/csv/isp-sheet.csv b/documentation/docs/data/csv/isp-sheet.csv index f72973f9240..da033b1579f 100644 --- a/documentation/docs/data/csv/isp-sheet.csv +++ b/documentation/docs/data/csv/isp-sheet.csv @@ -1,26 +1,21 @@ **ISP**,**Locations**,**Public IPv6**,**Crypto Payments**,**Comments**,**Last Updated** -[Flokinet](https://flokinet.is),"Netherlands, Iceland, Romania,France","Yes, needs a ticket and custom setup","yes, including XMR","Very slow customer support","05/2024" -[BitLaunch](https://bitlaunch.io),"Canada, USA, UK","No","Yes","Expensive. Digial Ocean through BitLanch has IPv6","05/2024" -[Hostinger](https://hostinger.com),"France, Lithuania, India, USA, Brazil","Yes, out of the box","Yes","Crypto payments must be done per each server monthly or annually.","05/2024" -[Linode](https://linode.com),"USA, Canada, Japan, India, Indonesia, Sweden, Netherlands, Germany, Brazil, France, UK, Australia, Italy","Yes out of the box","No, only through [BitLAunch](https://bitlaunch.io)","IPv6 sometimes need to be re-added in Networking tab, no reboot needed","05/2024" -[Cherry Servers](https://www.cherryservers.com),"Lithuania, Netherlands, USA, Singapore","No","Yes","Issued IP doesn’t match the location offered by the provider.","05/2024" -[Njalla](https://nja.la),"Sweden","Yes","Yes","Privacy vandguards! The biggest VPS 45 is 3 cores only, but it works better than many “larger” servers on the market.","05/2024" -[HostSailor](https://hostsailor.com),"USA","Yes, based on ticket","Yes","The IPv6 setup needs custom research and is not documented","05/2024" -[Misaka](https://www.misaka.io/),"South Africa","Yes, native support","No","Very Expensive","05/2024" -[IsHosting](https://ishosting.com/en),"Brazil, Netherlands","Yes, based on ticket","Yes","Expensive","05/2024" -[AlexHost](https://alexhost.com),"Moldova, Bulgaria, Sweden, Netherlands","Yes, on by default","Yes","They allow TOR Bridges, Relays. Exit nodes are only allowed on dedicated servers (prices start from 26 EUR)","07/2024" -[iHostArt](https://ihostart.com),"Romania","Yes, on by default","Yes","Super permissive provider. They do allow Tor Exit/Relay/Bridge. Pro-free speech etc. Recently, IPv6 geolocation was set to North Korea, so be aware.","07/2024" -[Incognet](https://incognet.io),"Netherlands and USA","Yes, on by default","Yes","They allow Tor exit nodes but you must adhere to their rules https://incognet.io/tor-exits","07/2024" -[vSys Host](https://vsys.host),"Ukraine, Netherlands, USA","Yes, on by default","Yes","Pretty permissive provider registered in Ukraine. Should allow Relay/Exit nodes but nothing in T&C, so better double check.","07/2024" -[LiteServer](https://liteserver.nl),"Netherlands","Yes, on by default","Yes","Very reliable Dutch provider. They do allow Relay nodes but for Exit nodes you need to contact them. Always check T&C https://liteserver.nl/legal","07/2024" -[TerraHost](https://terrahost.no),"Norway","Yes, on by default","Yes","Very reliable Norwegian provider. Only allow exit nodes on Dedicated servers subject to certain caveats (you must open a ticket). Always check T&C https://terrahost.no/avtalebetingelser","07/2024" -[Mevspace](https://mevspace.com),"Poland","Yes, on by default","Yes","Flexible Polish providers with 3 DCs in Poland. They do allow Tor Exit nodes but you may need a dedicated server for this. Make sure you open a ticket to check. As of today's date, they have 48h for 1 EUR tariff","07/2024" -[Hostiko](https://hostiko.com.ua),"Ukraine, Germany","Yes, on by default","Yes","Ukrainian provider. They allow Exit nodes on Germany boxes but limit the bandwidth, you also have to restrict certain ports like 25 and 587. Make sure you open a ticket.","07/2024" -[Hostslick](https://hostslick.com),"Netherlands, Germany","Yes, on by default","Yes","Good amount of bandwidth for the price. Make sure you open the ticket if you want to run Exit node","07/2024" -[RDP](https://rdp.sh),"Netherlands, USA, Poland","Yes, on by default","Yes","German provider. Exit nodes are allowed, policy is here https://rdp.sh/docs/faq/tor ports 25,465,587 must be closed. Make sure you open a ticket before running an exit node.","07/2024" - - - - - - +[Flokinet](https://flokinet.is),"Netherlands, Iceland, Romania,France","Yes, needs a ticket and custom setup","yes, including XMR",Very slow customer support,05/2024 +[BitLaunch](https://bitlaunch.io),"Canada, USA, UK",No,Yes,Expensive. Digial Ocean through BitLanch has IPv6,05/2024 +[Hostinger](https://hostinger.com),"France, Lithuania, India, USA, Brazil","Yes, out of the box",Yes,Crypto payments must be done per each server monthly or annually.,05/2024 +[Linode](https://linode.com),"USA, Canada, Japan, India, Indonesia, Sweden, Netherlands, Germany, Brazil, France, UK, Australia, Italy",Yes out of the box,"No, only through [BitLAunch](https://bitlaunch.io)","IPv6 sometimes need to be re-added in Networking tab, no reboot needed",05/2024 +[Cherry Servers](https://www.cherryservers.com),"Lithuania, Netherlands, USA, Singapore",No,Yes,Issued IP doesn’t match the location offered by the provider.,05/2024 +[Njalla](https://nja.la),Sweden,Yes,Yes,"Privacy vandguards! The biggest VPS 45 is 3 cores only, but it works better than many “larger” servers on the market.",05/2024 +[HostSailor](https://hostsailor.com),USA,"Yes, based on ticket",Yes,The IPv6 setup needs custom research and is not documented,05/2024 +[Misaka](https://www.misaka.io/),South Africa,"Yes, native support",No,Very Expensive,05/2024 +[IsHosting](https://ishosting.com/en),"Brazil, Netherlands","Yes, based on ticket",Yes,Expensive,05/2024 +[AlexHost](https://alexhost.com),"Moldova, Bulgaria, Sweden, Netherlands","Yes, on by default",Yes,"They allow TOR Bridges, Relays. Exit nodes are only allowed on dedicated servers (prices start from 26 EUR)",07/2024 +[iHostArt](https://ihostart.com),Romania,"Yes, on by default",Yes,"Super permissive provider. They do allow Tor Exit/Relay/Bridge. Pro-free speech etc. Recently, IPv6 geolocation was set to North Korea, so be aware.",07/2024 +[Incognet](https://incognet.io),Netherlands and USA,"Yes, on by default",Yes,They allow Tor exit nodes but you must adhere to their rules https://incognet.io/tor-exits,07/2024 +[vSys Host](https://vsys.host),"Ukraine, Netherlands, USA","Yes, on by default",Yes,"Pretty permissive provider registered in Ukraine. Should allow Relay/Exit nodes but nothing in T&C, so better double check.",07/2024 +[LiteServer](https://liteserver.nl),Netherlands,"Yes, on by default",Yes,Very reliable Dutch provider. They do allow Relay nodes but for Exit nodes you need to contact them. Always check T&C https://liteserver.nl/legal,07/2024 +[TerraHost](https://terrahost.no),Norway,"Yes, on by default",Yes,Very reliable Norwegian provider. Only allow exit nodes on Dedicated servers subject to certain caveats (you must open a ticket). Always check T&C https://terrahost.no/avtalebetingelser,07/2024 +[Mevspace](https://mevspace.com),Poland,"Yes, on by default",Yes,"Flexible Polish providers with 3 DCs in Poland. They do allow Tor Exit nodes but you may need a dedicated server for this. Make sure you open a ticket to check. As of today's date, they have 48h for 1 EUR tariff",07/2024 +[Hostiko](https://hostiko.com.ua),"Ukraine, Germany","Yes, on by default",Yes,"Ukrainian provider. They allow Exit nodes on Germany boxes but limit the bandwidth, you also have to restrict certain ports like 25 and 587. Make sure you open a ticket.",07/2024 +[Hostslick](https://hostslick.com),"Netherlands, Germany","Yes, on by default",Yes,Good amount of bandwidth for the price. Make sure you open the ticket if you want to run Exit node,07/2024 +[RDP](https://rdp.sh),"Netherlands, USA, Poland","Yes, on by default",Yes,"German provider. Exit nodes are allowed, policy is here https://rdp.sh/docs/faq/tor ports 25,465,587 must be closed. Make sure you open a ticket before running an exit node.",07/2024 +[PQ.Hosting](https://bill.pq.hosting),"Netherlands, USA, UK, Moldova, France","Yes, for a small fee",Yes,Support claims that they allow everything. So far Nym nodes never had any problems,01/2025