diff --git a/documentation/docs/components/operators/snippets/ports-nym-node.mdx b/documentation/docs/components/operators/snippets/ports-nym-node.mdx index d9d2813045..adc15fc6ab 100644 --- a/documentation/docs/components/operators/snippets/ports-nym-node.mdx +++ b/documentation/docs/components/operators/snippets/ports-nym-node.mdx @@ -1,13 +1,14 @@ Open the needed ports for `nym-node` by running these commands: ```sh -ufw allow 22/tcp # SSH - you're in control of these ports -ufw allow 80/tcp # HTTP -ufw allow 443/tcp # HTTPS -ufw allow 1789/tcp # Nym specific -ufw allow 1790/tcp # Nym specific -ufw allow 8080/tcp # Nym specific - nym-node-api -ufw allow 9000/tcp # Nym Specific - clients port -ufw allow 9001/tcp # Nym specific - wss port -ufw allow 51822/udp # WireGuard +ufw allow 22/tcp # SSH - you're in control of these ports +ufw allow 80/tcp # HTTP +ufw allow 443/tcp # HTTPS +ufw allow 1789/tcp # Nym specific - Mixnet +ufw allow 1790/tcp # Nym specific - Verloc +ufw allow 8080/tcp # Nym specific - nym-node-api +ufw allow 9000/tcp # Nym Specific - clients port +ufw allow 9001/tcp # Nym specific - wss port +ufw allow 51822/udp # WireGuard +ufw allow in on nymwg to any port 51830 proto tcp # bandwidth queries/topup - inside the tunnel ``` diff --git a/documentation/docs/components/outputs/api-scraping-outputs/circulating-supply.json b/documentation/docs/components/outputs/api-scraping-outputs/circulating-supply.json index 83ee4980db..4b71af2328 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/circulating-supply.json +++ b/documentation/docs/components/outputs/api-scraping-outputs/circulating-supply.json @@ -5,7 +5,7 @@ }, "mixmining_reserve": { "denom": "unym", - "amount": "182883243257647" + "amount": "180875972213757" }, "vesting_tokens": { "denom": "unym", @@ -13,6 +13,6 @@ }, "circulating_supply": { "denom": "unym", - "amount": "817116756742353" + "amount": "819124027786243" } } diff --git a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/circulating-supply.md b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/circulating-supply.md index 3762743930..e1811f4408 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/circulating-supply.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/circulating-supply.md @@ -1 +1 @@ -817_116_756 +819_124_027 diff --git a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/epoch-reward-budget.md b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/epoch-reward-budget.md index 2a89edffe7..cde61716af 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/epoch-reward-budget.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/epoch-reward-budget.md @@ -1 +1 @@ -5_080 +5_024 diff --git a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/stake-saturation.md b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/stake-saturation.md index 7dce4fcd05..5a818ac526 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/stake-saturation.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/stake-saturation.md @@ -1 +1 @@ -250_000 +250_614 diff --git a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-target.md b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-target.md index a4417fced3..8896188535 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-target.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking-target.md @@ -1 +1 @@ -60_000_000 +60_147_392 diff --git a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking_supply.md b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking_supply.md index a4417fced3..108b28c216 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking_supply.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/staking_supply.md @@ -1 +1 @@ -60_000_000 +60_147_391 diff --git a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/token-table.md b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/token-table.md index ea63891258..ed4f907b1b 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/token-table.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/nyx-outputs/token-table.md @@ -1,7 +1,7 @@ | **Item** | **Description** | **Amount in NYM** | |:-------------------|:------------------------------------------------------|--------------------:| | Total Supply | Maximum amount of NYM token in existence | 1_000_000_000 | -| Mixmining Reserve | Tokens releasing for operators rewards | 182_883_243 | +| Mixmining Reserve | Tokens releasing for operators rewards | 180_875_972 | | Vesting Tokens | Tokens locked outside of cicrulation for future claim | 0 | -| Circulating Supply | Amount of unlocked tokens | 817_116_756 | -| Stake Saturation | Optimal size of node self-bond + delegation | 250_000 | +| Circulating Supply | Amount of unlocked tokens | 819_124_027 | +| Stake Saturation | Optimal size of node self-bond + delegation | 250_614 | diff --git a/documentation/docs/components/outputs/api-scraping-outputs/reward-params.json b/documentation/docs/components/outputs/api-scraping-outputs/reward-params.json index cd175a8719..83380b5686 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/reward-params.json +++ b/documentation/docs/components/outputs/api-scraping-outputs/reward-params.json @@ -1,10 +1,10 @@ { "interval": { - "reward_pool": "182883243257647.891553460395608456", - "staking_supply": "60000000000000", + "reward_pool": "180875972213757.135840914936141948", + "staking_supply": "60147391744900.170789956043539529", "staking_supply_scale_factor": "0.07342892", - "epoch_reward_budget": "5080090090.490219209818344322", - "stake_saturation_point": "250000000000", + "epoch_reward_budget": "5024332561.493253773358748226", + "stake_saturation_point": "250614132270.417378291483514748", "sybil_resistance": "0.3", "active_set_work_factor": "10", "interval_pool_emission": "0.02" diff --git a/documentation/docs/components/outputs/api-scraping-outputs/time-now.md b/documentation/docs/components/outputs/api-scraping-outputs/time-now.md index 2467bafbb8..e639f79661 100644 --- a/documentation/docs/components/outputs/api-scraping-outputs/time-now.md +++ b/documentation/docs/components/outputs/api-scraping-outputs/time-now.md @@ -1 +1 @@ -Tuesday, September 16th 2025, 11:07:26 UTC +Wednesday, October 1st 2025, 11:16:15 UTC diff --git a/documentation/docs/components/outputs/command-outputs/nym-node-run-help.md b/documentation/docs/components/outputs/command-outputs/nym-node-run-help.md index 1a70eacf1d..29cf2e2826 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-node-run-help.md +++ b/documentation/docs/components/outputs/command-outputs/nym-node-run-help.md @@ -58,8 +58,8 @@ Options: Specifies whether the wireguard service is enabled on this node [env: NYMNODE_WG_ENABLED=] [possible values: true, false] --wireguard-bind-address Socket address this node will use for binding its wireguard interface. default: `[::]:51822` [env: NYMNODE_WG_BIND_ADDRESS=] - --wireguard-announced-port - Port announced to external clients wishing to connect to the wireguard interface. Useful in the instances where the node is behind a proxy [env: NYMNODE_WG_ANNOUNCED_PORT=] + --wireguard-tunnel-announced-port + Tunnel port announced to external clients wishing to connect to the wireguard interface. Useful in the instances where the node is behind a proxy [env: NYMNODE_WG_ANNOUNCED_PORT=] --wireguard-private-network-prefix The prefix denoting the maximum number of the clients that can be connected via Wireguard. The maximum value for IPv4 is 32 and for IPv6 is 128 [env: NYMNODE_WG_PRIVATE_NETWORK_PREFIX=] --verloc-bind-address diff --git a/documentation/docs/pages/operators/_meta.json b/documentation/docs/pages/operators/_meta.json index b7c579746d..fbe58e2492 100644 --- a/documentation/docs/pages/operators/_meta.json +++ b/documentation/docs/pages/operators/_meta.json @@ -6,6 +6,7 @@ "sandbox": "Sandbox Testnet", "binaries": "Binaries", "nodes": "Nodes & Validators Guides", + "tools": "Tools", "troubleshooting": "Troubleshooting", "tokenomics": "Tokenomics", "faq": "FAQ", diff --git a/documentation/docs/pages/operators/changelog.mdx b/documentation/docs/pages/operators/changelog.mdx index 5f8b267014..5e0ffbcbab 100644 --- a/documentation/docs/pages/operators/changelog.mdx +++ b/documentation/docs/pages/operators/changelog.mdx @@ -48,6 +48,174 @@ This page displays a full list of all the changes during our release cycle from +## `v2025.17-isabirra` + +- [Release Binaries](https://github.com/nymtech/nym/releases/tag/nym-binaries-v2025.17-isabirra) +- [`nym-node`](nodes/nym-node.mdx) version `1.18.0` + +```sh +nym-node +Binary Name: nym-node +Build Timestamp: 2025-10-01T10:42:58.647419869Z +Build Version: 1.18.0 +Commit SHA: bbea2ff9e913f49cb7bf6c7bafa9d9b158c80de5 +Commit Date: 2025-10-01T12:06:07.000000000+02:00 +Commit Branch: HEAD +rustc Version: 1.88.0 +rustc Channel: stable +cargo Profile: release +``` + +### Operators Updates & Tools + + +**With `nym-node` version `1.18.0` operators need to make `tcp/51830` reachable on the WG interface (for bandwidth queries/topup).** + +This is inside the tunnel - no need to expose it publicly unless you want an external test. +**Run this command to expose it:** +``` +ufw allow in on nymwg to any port 51830 proto tcp +``` + + +With this platform upgrade we are releasing several tools to improve operator experience. Check them out and let us know what you think. + +- **New program for `nym-node` automated installation**: [`nym-node-cli.py`](tools#nym-node-cli) + +- **New node reward tracker**: [`node_rewards_tracker.py`](tools#cmd-reward-tracker) + +- **New server ping testing diagnostic tool**: [`test-nodes-pings.sh`](tools#node-ping-tester) + +- **New [Tools page](tools)** + +- **New Gateway landing page [template](https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/nym-node-setup/landing-page.html)** and simplified [documentation for reverse proxy configuration](nodes/nym-node/configuration/proxy-configuration#html-file-customization) + +- SpectreDAO Explorer has a new [Delegation Wizzard](https://explorer.nym.spectredao.net/delegate): Allowing for a smart multi-delegation with optimal node selection form Keplr Wallet + +### API Changes + +Please read carefully below to follow up with API removal and changes to ensure that your development is up to date. + +#### Nym API Removed Routes + +All of the routes removed had already been deprecated over a year ago. This is mostly due to the fact that either they were returning only data on legacy nodes (that could never be used anyway) or required some non-sense conversions. Open the dropdown below to see removed routes +
+ + +### Legacy mixnodes related: + +- `/v1/mixnodes` +- `/v1/mixnodes/active` +- `/v1/mixnodes/active/detailed` +- `/v1/mixnodes/described` +- `/v1/mixnodes/rewarded` +- `/v1/mixnodes/rewarded/detailed` +- `/v1/mixnodes/detailed` +- `/v1/mixnodes/blacklisted` +- `/v1/status/mixnodes/active/detailed` +- `/v1/status/mixnodes/rewarded/detailed` +- `/v1/status/mixnodes/detailed` +- `/v1/status/mixnodes/inclusion-probability` +- `/v1/status/mixnodes/inclusion-probability` +- `/v1/status/mixnode/{mix_id}/inclusion-probability` +- `/v1/status/mixnode/{mix_id}/stake-saturation` +- `/v1/status/mixnode/{mix_id}/status` +- `/v1/status/mixnode/{mix_id}/reward-estimation` +- `/v1/status/mixnode/{mix_id}/compute-reward-estimation` +- `/v1/status/mixnodes/detailed-unfiltered` +- `/v1/status/mixnode/{mix_id}/report` +- `/v1/status/mixnode/{mix_id}/avg_uptime` + +### Legacy gateways related: + +- `/v1/gateways` +- `/v1/gateways/described` +- `/v1/gateways/blacklisted` +- `/v1/status/gateways/detailed` +- `/v1/status/gateways/detailed-unfiltered` +- `/v1/status/gateway/{identity}/report` +- `/v1/status/gateway/{identity}/avg_uptime` + + + +#### Structs changes: + +- `MixnodeUptimeHistoryResponse` no longer has `owner` field +- `GatewayUptimeHistoryResponse` no longer has `owner` field + + +#### New Routes Added + +- `/v1/nym-nodes/stake-saturation/{node_id}` - as a better replacement for `/v1/status/mixnode/{mix_id}/stake-saturation` as this information might be potentially useful and can be applied to any nym-node, not just a legacy mixnode. +- `/v1/legacy/mixnodes` - returns a list of bonded legacy mixnodes that haven't migrated to nym-nodes +- `/v1/legacy/gateways` - returns a list of bonded legacy gateways that haven't migrated to nym-nodes + +#### Node Status API + +Furthermore the changes remove all scraping of legacy mixnodes from NS and the following routes are removed: + +- `/v2/mixnodes/{mix_id}` +- `/v2/mixnodes` + +### Features + +- [Refresh mixnet contract on epoch progression](https://github.com/nymtech/nym/pull/6023): Currently when an epoch has advanced, `nym-api` might still be serving data from the previous iteration. This PR makes sure the data is refreshed as soon as possible so new role assignment would be available quickly after. + +- [Explorer-v2: Replace recommended servers with automated selection](https://github.com/nymtech/nym/pull/6019): Use params to get 10 nodes, no more manual paste. + +- [Credential proxy crate](https://github.com/nymtech/nym/pull/6018): This PR moves 90% of the credential proxy functionalities into a common crate instead. + +- [Moving clients crate from vpn-client repo to here](https://github.com/nymtech/nym/pull/6015): As part of the registration-client work, moved `nym-authenticator-client`, `nym-ip-packet-client` and `nym-wg-gateway-client` from the vpn-client repo into this repository. + +- [Cancellation migration](https://github.com/nymtech/nym/pull/6014): Migrates shutdown watchers from `TaskManager` into the new `ShutdownManager`, which relies on tokio’s `CancellationToken` and `TaskTracker`. + +- [Use `ShutdownToken` for nym-api](https://github.com/nymtech/nym/pull/5997): Makes `nym-api` use `ShutdownToken` (tokio `CancellationToken` inside) for cancellation; groundwork for migrating clients to the same approach. + +- [Delegation program stake checker and adjuster](https://github.com/nymtech/nym/pull/5980): Adds a script to generate a CSV for delegation adjustments according to Delegation Program rules, including node/stake/uptime/version and other fields. + +- [Domain fronting integration](https://github.com/nymtech/nym/pull/5974): Completes migration to `nym_http_api_client::Client`, enabling domain fronting and unifying HTTP client usage across the monorepo. + +- [Shared library for attempting to retrieve update mode attestation](https://github.com/nymtech/nym/pull/5954): Part of NET-341, provides a shared library to attempt retrieving update mode attestation. + +- [Credential proxy deposit pool](https://github.com/nymtech/nym/pull/5945): Changes the credential proxy to hold a pool of available deposits and monitor quorum state, reducing wastage and improving reliability. + +- [Nym signers monitor](https://github.com/nymtech/nym/pull/5933): Independent tool for checking the status of network signers and sending notifications if “upgrade” mode is detected. + +- [Nym node autorun CLI](https://github.com/nymtech/nym/pull/5916): Adds an interactive CLI to install, set up, and configure `nym-node` as a systemd service, improving operator experience. + +### Bugfix + +- [Fix the registration handshake](https://github.com/nymtech/nym/pull/6062): Resolves issues in the registration handshake process. + +- [Return from MixTrafficController if client request channel has closed](https://github.com/nymtech/nym/pull/6002): Ensures the MixTrafficController exits properly when the client request channel closes. + +- [Use default value for the ports until api is deployed](https://github.com/nymtech/nym/pull/6007): Fixes VPN querying mainnet for the API and not finding some of the newly added values by using default port values until the API is deployed. + +- [Recipient deserialisation for deserialisers missing bytes specialisation](https://github.com/nymtech/nym/pull/5991): Fixes deserialization where formats like TOML/JSON defaulted incorrectly, ignoring bytes-related optimisations. + +- [Use WASM compatible time API in client](https://github.com/nymtech/nym/pull/5948): Prevents client crashes in WASM by replacing time APIs unavailable in that environment. + +### Refactors & Maintenance + +- [Convenience for ShutdownTracker](https://github.com/nymtech/nym/pull/6038): Adds a method to create a `ShutdownToken` from a `CancellationToken`. Exposes `ShutdownTracker` in the SDK. + +- [Made http-api-client-macro doctest compile](https://github.com/nymtech/nym/pull/6037): Adjusts doctests in `http-api-client-macro` so they compile. + +- [Remove legacy nodes from nym api](https://github.com/nymtech/nym/pull/6021): Removes nearly all references to legacy nodes from `nym-api` and node status API; cleans up deprecated endpoints and adjusts structs. + +- [Upgraded syn to 2.0 and removed nym-execute](https://github.com/nymtech/nym/pull/5998): Updates the `syn` dependency and removes `nym-execute`. + +- [Use updated version of simulate endpoint](https://github.com/nymtech/nym/pull/5988): Switches to the updated simulate endpoint. + +- [Purge temp databases on build](https://github.com/nymtech/nym/pull/5984): Prevents build failures when switching to branches without DB migrations by cleaning temp databases during builds. + +- [Internal hidden command to force advance nyx epoch](https://github.com/nymtech/nym/pull/5964): Adds a hidden developer command to advance the Nyx epoch manually. + +- [Create an axum_test client for more integrated unit testing](https://github.com/nymtech/nym/pull/5956): Adds an `axum_test` client to support more integrated unit tests. + +- [Revert "Create an axum_test client for more integrated unit testing"](https://github.com/nymtech/nym/pull/5999): Reverts PR #5956 due to OpenSSL dependency issues. + + ## `v2025.16-halloumi` - **[`nym-node`](nodes/nym-node.mdx) is not part of the release, the latest stays on version `1.16.0`** diff --git a/documentation/docs/pages/operators/nodes/nym-node/configuration/proxy-configuration.mdx b/documentation/docs/pages/operators/nodes/nym-node/configuration/proxy-configuration.mdx index 7a5d89575d..8165f8a70a 100644 --- a/documentation/docs/pages/operators/nodes/nym-node/configuration/proxy-configuration.mdx +++ b/documentation/docs/pages/operators/nodes/nym-node/configuration/proxy-configuration.mdx @@ -29,14 +29,13 @@ The commands in this setup need to be run with root permission. Either add a pre ## Reverse Proxy Setup -The following snippet needs be modified as described below according to the public identity that you may want to show on this public notice, i.e. your graphics and your email. -It would allow you to serve it as a landing page resembling the one proposed by [Tor](https://gitlab.torproject.org/tpo/core/tor/-/raw/HEAD/contrib/operator-tools/tor-exit-notice.html) but with all the changes needed to adhere to the Nym's operators case. +Operators running nodes facing open internet may benefit from having a landing page. This page serves as a source of useful information about Nym network and the node when they try to search node IP or hostname. ### HTML File Customization -File for html configuration are by convention located at `/var/www/` directory and it's subdirectories. We refer to this directory as ``. +File for html configuration are by convention located at `/var/www/` directory and it's sub-directories. We refer to this directory as ``. @@ -47,264 +46,21 @@ mkdir -p /var/www/ ###### 2. Create html landing page -- Use your own html code (check this [markdown to html tool](https://markdowntohtml.com/)) or copy the template below to a new file called `index.html` located in `/var/www/` directory. +- Use your own html code (check this [markdown to html tool](https://markdowntohtml.com/)) or use [this template](https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/nym-node-setup/landing-page.html) +- Copy the [template](https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/nym-node-setup/landing-page.html) a new file called `index.html` located in `/var/www/` directory. -}> -```html - - - - -This is a NYM Exit Gateway - - - +###### 3. If you used the template above - before you save and close the file, make sure to edit the email address: - - -
-

This is a NYM Exit Gateway

-

- -

- -

-You are most likely accessing this website because you've had some issue with -the traffic coming from this IP. This router is part of the NYM project, which is -dedicated to create outstanding -privacy software that is legally compliant without sacrificing integrity or -having any backdoors. -This router IP should be generating no other traffic, unless it has been -compromised.

- -

-The Nym mixnet is operated by a decentralised community of node operators -and stakers. The Nym mixnet is trustless, meaning that no parts of the system -nor its operators have access to information that might compromise the privacy -of users. Nym software enacts a strict principle of data minimisation and has -no back doors. The Nym mixnet works by encrypting packets in several layers -and relaying those through a multi-layered network called a mixnet, eventually -letting the traffic exit the Nym mixnet through an exit gateway like this one. -This design makes it very hard for a service to know which user is connecting to it, -since it can only see the IP-address of the Nym exit gateway:

- -

- -Illustration showing how a user might connect to a service through the Nym network. The user first sends their data through three daisy-chained encrypted Nym nodes that exist on three different continents. Then the last Nym node in the chain connects to the target service over the normal internet. - - - - - - - - - - - - - - - - - - - - - -The user -This server -Your service -Nym network link -Unencrypted link - - - - - - -

- -

-Read more about how Nym works.

- -

-Nym relies on a growing ecosystem of users, developers and researcher partners -aligned with the mission to make sure Nym software is running, remains usable -and solves real problems. While Nym is not designed for malicious computer -users, it is true that they can use the network for malicious ends. This -is largely because criminals and hackers have significantly better access to -privacy and anonymity than do the regular users whom they prey upon. Criminals -can and do build, sell, and trade far larger and more powerful networks than -Nym on a daily basis. Thus, in the mind of this operator, the social need for -easily accessible censorship-resistant private, anonymous communication trumps -the risk of unskilled bad actors, who are almost always more easily uncovered -by traditional police work than by extensive monitoring and surveillance anyway.

- -

-In terms of applicable law, the best way to understand Nym is to consider it a -network of routers operating as common carriers, much like the Internet -backbone. However, unlike the Internet backbone routers, Nym mixnodes do not -contain identifiable routing information about the source of a packet and do -mix the user internet traffic with that of other users, making communications -private and protecting not just the user content but the metadata -(user's IP address, who the user talks to, when, where, from what device and -more) and no single Nym node can determine both the origin and destination -of a given transmission.

- -

-As such, there is little the operator of this Exit Gateway can do to help you -track the connection further. This Exit Gateway maintains no logs of any of the -Nym mixnet traffic, so there is little that can be done to trace either legitimate or -illegitimate traffic (or to filter one from the other). Attempts to -seize this router will accomplish nothing.

- - - - - - -

To decentralise and enable privacy for a broad range of services, this -Exit Gateway adopts an Exit Policy -in accordance with the Tor Null ‘deny’ list -and the Tor reduced policy, -which are two established safeguards. -

- -

-That being said, if you still have a complaint about the router, you may email the - maintainer. If complaints are related - to a particular service that is being abused, the maintainer will submit that to the - NYM Operators Community in order to add it to the Exit Policy cited above. -If approved, that would prevent this router from allowing that traffic to exit through it. -That can be done only on an IP+destination port basis, however. Common P2P ports are already blocked.

- -

-You also have the option of blocking this IP address and others on the Nym network if you so desire. - The Nym project provides a - web service to fetch a list of all IP addresses of Nym Gateway Exit nodes that allow exiting to a -specified IP:port combination. Please be considerate when using these options.

- -
- - -``` -
- -###### 3. If you used the template above - before you save and close the file, make sure to edit the text, especially the information in these points: - -- Add your own favicon logo on the line: -```html - -``` - -- Add your header logo on the line: -```html - -``` - -- By either setting the URl to the image (if you're hosting it publicly, i.e. on your web server) -```html -href="" - -# and - -src="" -``` - -- **or** by adding the image inline as base64 encoded image -```html -href="href="data:image/x-icon;base64,AAABAAMA...."" - -# and - -src="href="data:image/x-icon;base64,AAABAAMA...."" -``` - -- Add the email address you're willing to use for being contacted. +- Change the email address you're willing to use for being contacted. ``` maintainer ``` -- If you're running the node within the US check the sections marked as `FIXME`, add your DNS name and un-comment those. +- Additionally you can add your own favicon logo on the line: +```html + +``` ###### 4. Save and exit diff --git a/documentation/docs/pages/operators/nodes/nym-node/setup.mdx b/documentation/docs/pages/operators/nodes/nym-node/setup.mdx index 3db66217b7..a1177a35fa 100644 --- a/documentation/docs/pages/operators/nodes/nym-node/setup.mdx +++ b/documentation/docs/pages/operators/nodes/nym-node/setup.mdx @@ -20,12 +20,12 @@ This documentation page provides a guide on how to set up and run a [NYM NODE](. ```sh nym-node Binary Name: nym-node -Build Timestamp: 2025-08-05T09:14:30.322593213Z -Build Version: 1.16.0 -Commit SHA: 7f97f13799342f864e1b106e8cafc9f6d6c24c0f -Commit Date: 2025-07-24T11:00:58.000000000+01:00 +Build Timestamp: 2025-10-01T10:42:58.647419869Z +Build Version: 1.18.0 +Commit SHA: bbea2ff9e913f49cb7bf6c7bafa9d9b158c80de5 +Commit Date: 2025-10-01T12:06:07.000000000+02:00 Commit Branch: HEAD -rustc Version: 1.86.0 +rustc Version: 1.88.0 rustc Channel: stable cargo Profile: release ``` diff --git a/documentation/docs/pages/operators/nodes/preliminary-steps/vps-setup.mdx b/documentation/docs/pages/operators/nodes/preliminary-steps/vps-setup.mdx index 5cba5bdbed..da46321ee3 100644 --- a/documentation/docs/pages/operators/nodes/preliminary-steps/vps-setup.mdx +++ b/documentation/docs/pages/operators/nodes/preliminary-steps/vps-setup.mdx @@ -87,11 +87,6 @@ ufw status -- In case of reverse proxy setup add: -```sh -ufw allow 443/tcp -``` - - Re-check the status of the firewall: ```sh ufw status diff --git a/documentation/docs/pages/operators/tools.mdx b/documentation/docs/pages/operators/tools.mdx new file mode 100644 index 0000000000..8a801e526a --- /dev/null +++ b/documentation/docs/pages/operators/tools.mdx @@ -0,0 +1,156 @@ +import { Callout } from 'nextra/components'; +import { Tabs } from 'nextra/components'; +import { MyTab } from 'components/generic-tabs.tsx'; +import { RunTabs } from 'components/operators/nodes/node-run-command-tabs'; +import { VarInfo } from 'components/variable-info.tsx'; +import { AccordionTemplate } from 'components/accordion-template.tsx'; +import { Steps } from 'nextra/components'; + + +# Tools + +On this page you can find tools to [setup a node automatically](#nym-node-cli), [explorers](#explorers) and other useful dashboards and [scripts](#cmd-reward-tracker). + + + +## Explorers + +Nym Network stats can be humanly read on some of the explorers and dashboards. + +- **[Nym Explorer v2](https://nym.com/explorer):** Official Nym Explorer + +- **[SpectreDAO Explorer](https://explorer.nym.spectredao.net/):** By operators for operators - currently the most used Nym explorer + +- **[Nymesis](https://nymesis.vercel.app/):** A slick dashboard by operator community + +- **[Nym Harbourmaster](https://harbourmaster.nymtech.net/):** A dashboard showing results of Gateway probes and more (*in development*) + +## Nym Node CLI + +This interactive command-line-based tool takes an operator through a journey of installing, configuring and starting a `nym-node` as a systemd service, doing most of the steps automatically for them. + +**Installation & Running** + + + +###### 1. SSH into your server (VPS) + +- The installation of `nym-node` using this program requires you to run as `root` + +###### 2. Download `nym-node-cli.py` and make executable + +```sh +wget https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/nym-node-setup/nym-node-cli.py && \ +chmod +x ./nym-node-cli.py +``` + +###### 3. Run the program +``` +./nym-node-cli.py +``` +###### 4. Read and follow the prompts + + +## CMD Reward Tracker + +A command-line-based program locally calculating nodes rewards based on provided Nyx account addresses in `data/wallet-addresses.csv`. + +**Installation & Running** + + + +###### 1. Pull / clone `nymtech/nym` repository + +- Open terminal and navigate to where you want to have `nym` repostiry and run: +```sh +git clone https://github.com/nymtech/nym +``` + +###### 2. Add your Nyx accounts to `wallet-addresses.csv` + +- Navigate to `nym/scripts/rewards-tracker/data` +- Open `wallet-addresses.csv` in your favourite text editor or a sheet managing tool (Like Libre Office Calc) +- To the first collumn called `address` add all Nyx addresses you want to track +- Delete all `add_wallet_or_delete` template examples + +###### 3. Add entity to `wallet-addresses.csv` - optional + +- In the same file operators who want to separate their nodes by an entity, can add this entity to the `tag` column +- If not leave this column empty - delete all `optional_tag_or_delete` fields + +- Csv example with `tag`s: +``` +address, tag +n1foofoofoo, personal +n1barbarbar, personal +n1bazbazbaz, mysquad +n1lollollol, mysquad +``` +- For operators having all nodes under one entity, the tag field will be left empty. Example: +```csv +address, tag +n1foofoofoo +n1barbarbar +n1bazbazbaz +``` + +###### 4. Save `wallet-addresses.csv` and exit + +###### 5. Run the program + +- In terminal navigate to `nym/scripts/rewards-tracker` +- Run the program: +``` +./node_rewards_tracker.py +``` + + +**The Output** + +The result of running `node_rewards_tracker.py` is: + +1. Printed table in terminal +2. Updated sheet with complete info stored in `data/node-balances.csv` +3. Historical data file stored in `data/data.yaml` - this file should not be changed manually, as all values older than 30 days get auto-removed + + +## Node Ping Tester + +This tool is used to diagnose how many nodes providing self-described endpoint allow your IP to ping them. It's a very simple script fetching all [`/described`](https://validator.nymtech.net/api/v1/nym-nodes/described) nodes and trying to ping each of them. + +The output is collected into two files: +``` + ├── ping_not_working.csv + └── ping_works.csv +``` + +**Installation & Running** + + + +###### 1. SSH into your node server (VPS) + +###### 2. Download and make executable + +- Navigate to the directory where you want to have this script +- Download and make executable: +```sh +wget https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/test-nodes-pings.sh && \ +chmod +x test-nodes-pings.sh +``` + +###### 3. Run the script + +- Default running command is straight forward +```sh +./test-nodes-pings.sh +``` +- If you want to increase the `ping` attempts from default 2 or lower the concurency, feel free to change the variables, like this: +```sh +PING_RETRIES=10 PING_TIMEOUT=5 CONCURRENCY=16 ./test-nodes-pings.sh +``` + + +You can look up the IPs from `ping_not_working.csv`, using some online database, like [ipinfo.io](https://ipinfo.io). + +Feel invited to share the outcome with Nym team, mentors and the rest of the operators in our [Matrix Node Operators channel](https://matrix.to/#/#operators:nymtech.chat).