Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOCs/operators]: Guides, changes and release-notes for v2025.1-reeses #5340

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Stack from '@mui/material/Stack';
import Paper from '@mui/material/Paper';
import type { SetupMixFetchOps } from '@nymproject/mix-fetch';

const defaultUrl = 'https://nymtech.net/favicon.svg';
const defaultUrl = 'https://nym.com/favicon.svg';
const args = { mode: 'unsafe-ignore-cors' };

const mixFetchOptions: SetupMixFetchOps = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Callout } from 'nextra/components';

### Terms & Conditions

<Callout type="info" emoji="ℹ️">
From `nym-node` version `1.1.3` onward is required to accept [**Operators Terms & Conditions**](https://nymtech.net/terms-and-conditions/operators/v1.0.0) in order to be part of the active set. Make sure to read them before you add the flag.
</Callout>

There has been a long ongoing discussion whether and how to apply Terms and Conditions for Nym network operators, with an aim to stay aligned with the philosophy of Free Software and provide legal defense for both node operators and Nym developers. To understand better the reasoning behind this decision, you can listen to the first [Nym Operator Town Hall](https://www.youtube.com/live/7hwb8bAZIuc?si=3mQ2ed7AyUA1SsCp&t=915) introducing the T&Cs or to [Operator AMA with CEO Harry Halpin](https://www.youtube.com/watch?v=yIN-zYQw0I0) from June 4th, 2024, explaining pros and cons of T&Cs implementation.
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Wednesday, January 8th 2025, 15:01:28 UTC
Wednesday, January 15th 2025, 11:58:51 UTC
39 changes: 39 additions & 0 deletions documentation/docs/pages/operators/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,45 @@ This page displays a full list of all the changes during our release cycle from

**Note:** Any information shared on this page was up to date at the time of writing. We do *not* maintain changelog retrospectively.

## `v2025.1-reeses`

- [Release Binaries](https://github.com/nymtech/nym/releases/tag/nym-binaries-v2025.1-reeses)
- [`nym-node`](nodes/nym-node.mdx) version `1.3.0`

```
nym-node
Binary Name: nym-node
Build Timestamp: 2025-01-15T09:50:54.404428047Z
Build Version: 1.3.0
Commit SHA: c202e2d598fabda5fc16a6c1e110255857a2b1ca
Commit Date: 2025-01-15T10:27:39.000000000+01:00
Commit Branch: HEAD
rustc Version: 1.84.0
rustc Channel: stable
cargo Profile: release
```

### Features

### Bugfix

### Operators Updates & Tools

<Callout type="info">
From `nym-node v1.3.0` operators can choose multiple functionalities for their `nym-node` binary (flagged as `--mode`).

**However, the clients are yet to be developed to be able to make a proper selection for multi-mode nodes and therefore we ask operators to sign only one functionality to `--mode` option at a time. Please chose out of: `mixnode` or `entry-gateway` or `exit-gateway`.**

We are developing a design where operators can enable multiple modes, and let the Nym API to position the node according the network's needs in the beginning of each epoch.
</CallOut>

- [Node functionality info updated](nodes/nym-node/setup#functionality-mode)
- [Fund your `nym-node` inbuilt Nyx account](nodes/nym-node/bonding#fund-nym-node-client-nyx-account) to prepare for gateway ticket rewarding
- All documentation migrated to a new URL [nym.com/docs](https://nym.com/docs) alongside the rebranding of Nym organisation.
- Updated [network architecture diagrams](https://nym.com/docs/network/architecture)
- New blow-by-blow mixnet [traffic flow](https://nym.com/docs/network/architecture) section
- [Winter Nym Squad League started](https://forum.nym.com/t/nym-squad-league-farewell-fall-welcome-winter/977)

<VarInfo />

## Archived Changelog
Expand Down
6 changes: 2 additions & 4 deletions documentation/docs/pages/operators/faq/general-faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Nym Network

To see different stats about Nym Network live, we recommend you to visit [Nym Harbourmaster](https://harbourmaster.nymtech.net) and dynamic [Nym token page](https://nymtech.net/about/token.
To see different stats about Nym Network live, we recommend you to visit [Nym Harbourmaster](https://harbourmaster.nymtech.net) and dynamic [Nym token page](https://nymtech.net/about/token).

### Is there an explorer for Nym Mixnet?

Expand All @@ -12,7 +12,7 @@ Yes, there are..

* [Nym Explorer](https://explorer.nymtech.net/)
* [Sandbox testnet](https://sandbox-explorer.nymtech.net/)
* [Nym Harbourmaster](https://harbourmaster.nymtech.net)
* [Nym Harbourmaster](https://harbourmaster.nymtech.net)

**Built by community**

Expand Down Expand Up @@ -43,5 +43,3 @@ At this point the most crucial component needed are [Exit Gateways](../nodes/nym
### Are Nym Nodes whitelisted?

Nope, anyone can run a Nym Node. whether your node is chosen to mix is purely reliant on the node's performance and reputation (self stake + delegations).


5 changes: 5 additions & 0 deletions documentation/docs/pages/operators/nodes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Callout } from 'nextra/components';
import { Steps } from 'nextra/components';
import { Tabs } from 'nextra/components';
import NymNodeSpecs from 'components/operators/snippets/nym-node-specs.mdx';
import TermsConditions from 'components/operators/snippets/tc-info.mdx';

# Nym Nodes Operator Guides

Expand All @@ -25,6 +26,10 @@ Reserve 45-120 minutes for the initial setup and configuration (depends on your

Outdated nodes are never selected for routing/mixing packets, resulting in not receiving any rewards. You can read more on our [Tokenomics page](tokenomics/mixnet-rewards.mdx) to understand the selection and rewards logic.

<TermsConditions />

Accepting T&Cs is done via a flag `--accept-operator-terms-and-conditions` added explicitly to `nym-node run` command every time. Detailed info and proper syntax is provided on the [setup page](nodes/nym-node/setup#terms--conditions).

## Steps for Nym Node Operators

This is a summary of all needed steps for node operators to setup and configure a `nym-node` and register it to Nym Network:
Expand Down
20 changes: 20 additions & 0 deletions documentation/docs/pages/operators/nodes/nym-node.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,23 @@ NYM NODE is a tool for running a node within the Nym network. Nym Nodes containi
To setup any type of Nym Node, start with either building [Nym's platform](../binaries/building-nym.mdx) from source or download [pre-compiled binaries](../binaries/pre-built-binaries.mdx) on the [configured server (VPS)](preliminary-steps/vps-setup.mdx) where you want to run the node. Your Nym Node will need to be bonded before it can be run. We recommend most users use the [Nym desktop wallet](preliminary-steps/wallet-preparation.mdx) for this.

**Read thoroughly [Minimum Requirement page](../nodes.mdx) before you configure and run a `nym-node`!**

## Functionality (mode)

Nym Node has three functionalities in the network: `entry-gateway`, `mixnode` and `exit-gateway`.

- Entry Gateway (`--mode entry-gateway`): A the node to which local client connects. It checks the bandwidth allowance, using [zk-nyms](../../network/cryptography/zk-nym) and either sends [Sphinx packets](../../network/cryptography/sphinx) through the mixnet or directly to Exit Gateway in case of dVPN (2-hop) routing. This node also recieves replies and sends them back to users local client.

- Mixnode (`--mode mixnode`): Nodes organized in three layers, randmoly selected every epoch (60 minutes), mixing Sphinx packets, adding a slight latency to defend users agains time correlation attacks and sending them further to the next layer or to the Exit Gateway

- Exit Gateway (`--mode exit-gateway`): The final node in the mixnet. It puts all packets together and using inbuilt Network requester and IP packet router, it sends traffic to the open internet. This node also recieves replies and sends them back to the user client.

Everything essential for each mode exists on `nym-node` by default. For instance, if you run a Mixnode, you'll find that a NR (Network Requester) and IPR (IP Packet Router) addresses exist, but they will be ignored in `mixnode` mode.

Note that every `exit-gateway` mode is basically an `entry-gateway` with NR (Network Requester) and IPR (IP Packet Router) enabled. This means that every `exit-gateway` can work as an `entry-gateway` but not the opposite.

From `nym-node v1.3.0` operators can choose multiple functionalities for their `nym-node` binary (flagged as `--mode`).

**However, the clients are yet to be developped to be able to make a proper selection for multi-mode nodes and therefore we ask operators to asign only one functionality to `--mode` option at a time. Please chose out of: `mixnode` or `entry-gateway` or `exit-gateway`.**

We are developing a design where operators can enable multiple modes, and let the Nym API to position the node according the network's needs in the beginning of each epoch.
44 changes: 44 additions & 0 deletions documentation/docs/pages/operators/nodes/nym-node/bonding.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ Any new bonded node will provide only the bare minimum information: host, identi

**Every operator has to make sure that their nodes [self-described endpoint works](nodes/performance-and-testing/node-api-check#basic-api-usage), otherwise the node will be un-routable and thus won't get any rewards!**

<Callout type="warning" emoji="⚠️">
**Reveal your menominc phrase only in areas out of surveillance of other people and never share it with others. Nym team will never ask you for your mnemonic phrase - in case you were asked by someone it's a scam, do *not* reply to it!**
</Callout>

## Bond via the Desktop wallet (recommended)

You can bond your `nym-node` via the Desktop wallet.
Expand Down Expand Up @@ -150,3 +154,43 @@ Versions older than `nym-wallet v 1.2.15` will not allow bonding new nodes.
## Bond via the CLI (power users)

If you want to bond your Mix Node via the CLI, then check out the [relevant section in the Nym CLI](../../../developers/tools/nym-cli/usage#usage) docs.

## Fund `nym-node` Client Nyx Account

<Callout type="info">
This is not relevant for operators running exclusively `mixnode` functionality. For any type of gateway functionality this is a preparation requirement for the upcoming [ticket rewarding](../../tokenomics/mixnet-rewards#roadmap).
</ Callout>

Every `nym-node` client contains a mnemonic of a Nyx account, generated with node initialisation (first `run` command creating all configuration and data files). This mnemonic is located in `$HOME/.nym/nym-nodes/<ID>/data/cosmos_mnemonic`. **This is *not* the same account as the one used for bondng!**

This client account will be used for the process of redemption of tickets collected by nodes running as `entry-gateway` and `exit-gateway` as the redemption requires gateway to create a multisig proposal on the chain for which the client (node) needs to pay transaction fee.

Giving the low transaction cost on Cosmos, funding your client Nyx account with 25 NYM tokens should be more than enough. To do so, follow these steps:

<Steps>

###### 1. Get your `nym-node` client Nyx account mnemonic phrase
- Make sure your screen is not exposed to other people or recording devices
- To store sensitive credentials use audited and open source password managers, like [KeePassXC](https://keepassxc.org/)
- To print out your node client mnemonic phrase, run:
```sh
cat $HOME/.nym/nym-nodes/<ID>/data/cosmos_mnemonic
```
```sh
# for example
# cat $HOME/.nym/nym-nodes/default-nym-node/data/cosmos_mnemonic
```
- Copy this phrase and save it to your password manager

###### 2. Get the address of your client Nyx account using desktop wallet
- Open desktop wallet and choose to sign in with mnemonic
- Use the phrase from step 1
- Open `Receive` tab and copy Nym account address
- We recommend operators to store this address for future funding

###### 3. Fund the client Nyx account
- Open wallet with Nym tokens and send a minimum of 25 NYM to the address copied in the previous step
- In case you don't have any spare NYM, you can send tokens from any exchange directly to the address copied in the previous step
</ Steps>

Now your `nym-node` client can use inbuilt Nyx account to create a multisig proposal on chain and redeem user tickets.
Loading
Loading