From 868381587f872209273eba329961ba69a8676026 Mon Sep 17 00:00:00 2001
From: serinko <97586125+serinko@users.noreply.github.com>
Date: Thu, 23 May 2024 12:19:24 +0200
Subject: [PATCH] change formating - PR ready for review
---
documentation/operators/src/changelog.md | 107 ++++++++--------
documentation/operators/src/nodes/nym-node.md | 2 +-
documentation/operators/src/nodes/setup.md | 114 ++----------------
3 files changed, 71 insertions(+), 152 deletions(-)
diff --git a/documentation/operators/src/changelog.md b/documentation/operators/src/changelog.md
index de7653bad0a..3b3f1be7dbb 100644
--- a/documentation/operators/src/changelog.md
+++ b/documentation/operators/src/changelog.md
@@ -52,95 +52,107 @@ This page displays a full list of all the changes during our release cycle from
2. For new nodes: Initialise the node with `--location` flag, where they have to provide the country info. Either full country name (e.g. 'Jamaica'), two-letter alpha2 (e.g. 'JM'), three-letter alpha3 (e.g. 'JAM') or three-digit numeric-3 (e.g. '388') can be provided.
3. For existing nodes: It's also possible to use exactly the same `--location` argument as above, but make sure to also provide `--write-changes` (or `-w`) flag to persist those changes!
- [Feature/unstable tested nodes endpoint](https://github.com/nymtech/nym/pull/4601): Adds new data structures (`TestNode`, `TestRoute`, `PartialTestResult`) to handle test results for Mixnodes and Gateways. With the inclusion of pagination to handle large API responses efficiently. Lastly, introducing a new route with the tag `unstable` thus meaning not to be consumed without a user risk, prefixes in endpoints with unstable, are what it says on the tin.
- - Testing steps performed:
- - Deploy new api changes to sandbox environment
- - Ensure current operations are transactional and standed operations are working
- - Run a script to ensure that the new endpoints are working as expected with pagination
-
+~~~admonish example collapsible=true title="Testing steps performed"
+- Deploy new api changes to sandbox environment
+- Ensure current operations are transactional and standed operations are working
+- Run a script to ensure that the new endpoints are working as expected with pagination
+~~~
- [`nym-api`: make report/avg_uptime endpoints ignore blacklist](https://github.com/nymtech/nym/pull/4599): When querying for node specific data, it's no longer going to go through the entire list of all cached (and filtered nodes) to find it; instead it will attempt to retrieve a single unfiltered entry.
- - Testing steps performed:
- - Built the project and deployed it in a test environment.
- - Manually tested API endpoints for mixnode and gateway data.
- - Verified that the endpoints return the expected data and handle blacklists correctly.
- - API performance improved due to the efficient `HashMap` lookups
- - Data in mainnet will differ from test nets due to the increased amount of gateways and mixnodes in that environment
- - Test standard uptime routes:
+~~~admonish example collapsible=true title="Testing steps performed"
+- Build the project and deployed it in a test environment.
+- Manually test API endpoints for mixnode and gateway data.
+- Verify that the endpoints return the expected data and handle blacklists correctly.
+- API performance improved due to the efficient `HashMap` lookups
+- Data in mainnet will differ from test nets due to the increased amount of gateways and mixnodes in that environment
+- Test standard uptime routes:
```sh
curl -X 'GET' 'https://validator.nymtech.net/api/v1/status/gateway/Fo4f4SQLdoyoGkFae5TpVhRVoXCF8UiypLVGtGjujVPf/avg_uptime' -H 'accept: application/json'
```
+~~~
- [Use rfc3339 for last_polled in described nym-api endpoint](https://github.com/nymtech/nym/pull/4591): Fix issue where the validator-client can't parse the nym-api response for the described endpoint, in particular the `latest_polled` field that was recently added, by making the field use `rfc3339`
- - **Note:** This will require upgrading `nym-api` and everything that depends on the described endpoint.
- - Local testing using sdk examples:
+ - **Note:** This will require upgrading `nym-api` and everything that depends on the described endpoint.
+~~~admonish example collapsible=true title="Testing steps performed"
+- Update a `nym-api` to the binary built from this branch, then restart the api
+- Check the `journalctl` for error messages
+- Connected via client and could not see the error messages, this is backwards compatible
+- Local testing using sdk examples:
```sh
cd /nym/sdk/rust/nym-sdk
cargo run --example simple
# outcome
thread 'main' panicked at sdk/rust/nym-sdk/examples/simple.rs:9:64:
-called Result::unwrap() on an Err value: ClientCoreError(ValidatorClientError(NymAPIError { source: ReqwestClientError { source: reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None,
+called Result::unwrap() on an Err value: ClientCoreError(ValidatorClientError(NymAPIError { source: ReqwestClientError { source: reqwest::Error { kind: Request, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None,
```
- - Testing steps performed:
- - Update a `nym-api` to the binary built from this branch, then restart the api
- - Check the `journalctl` for error messages
- - Connected via client and could not see the error messages, this is backwards compatible
+~~~
+
- [Upgrade `axum` and related dependencies to the most recent version](https://github.com/nymtech/nym/pull/4573)
- [Run cargo autoinherit on the main workspace](https://github.com/nymtech/nym/pull/4553): Move several dependencies to the workspace level using cargo autoinherit, to make it easier to keep our dependencies up to date.
- Run cargo autoinherit in the root
- Merge in the new workspace deps in the main list
- We made sure to not mix in other changes as well - all features flags for all crates should be the same as before
- - Testing steps performed:
- - Run `cargo autoinherit` in the root directory to move dependencies to the workspace level
- - Merge the new workspace dependencies into the main list
- - Ensure no other changes were mixed in during the process
- - Verify that all feature flags for all crates remained the same as before
- - Build all the binaries from this branch to confirm successful compilation
- - Deploy the built binaries across different environments to ensure there were no issues
+~~~admonish example collapsible=true title="Testing steps performed"
+- Run `cargo autoinherit` in the root directory to move dependencies to the workspace level
+- Merge the new workspace dependencies into the main list
+- Ensure no other changes were mixed in during the process
+- Verify that all feature flags for all crates remained the same as before
+- Build all the binaries from this branch to confirm successful compilation
+- Deploy the built binaries across different environments to ensure there were no issues
+~~~
+
- [Add rustls-tls to reqwest in validator-client](https://github.com/nymtech/nym/pull/4552): An attempt to make possible to end up in a situation where use use the validator-client but without functioning TLS support. For the monorepo this is masked by cargo feature unification, but becomes a problem for outside consumers, as as been noticed in many of the vpn client implementations.
- In `validator-client`: `reqwest`, enable `rustls-tls` for `non-wasm32`
- In `client-core`: Use default features enabled for `non-wasm32` and switch to `webpki` roots, since that's what we're using with `reqwest` anyway
- In `gateway-client`: Switch to `webpki` roots, since that's what we're using with `reqwest` anyway
-
+
#### Crypto
- [Remove blocking for coconut in the final epoch state](https://github.com/nymtech/nym/pull/4598)
- - Testing steps performed:
- - Build the project to ensure no compilation errors
- - Run tests to verify the functionality of the `issue_credential` function
- - Execute integration tests to check the behaviour during an epoch transition.
+~~~admonish example collapsible=true title="Testing steps performed"
+- Build the project to ensure no compilation errors
+- Run tests to verify the functionality of the `issue_credential` function
+- Execute integration tests to check the behaviour during an epoch transition.
+~~~
+
- [Allow using explicit admin address for issuing freepasses](https://github.com/nymtech/nym/pull/4595)
- [Explicitly handle constraint unique violation when importing credential](https://github.com/nymtech/nym/pull/4588): Add a strong type for when a duplicate credential is imported so the vpn lib can handle this.
- [Feature/wasm coconut](https://github.com/nymtech/nym/pull/4584): This pull request requires [\#4585](https://github.com/nymtech/nym/pull/4585) to be merged first
- [Feature/nyxd scraper pruning](https://github.com/nymtech/nym/pull/4564): This PR introduces storage pruning to `nyxd` scraper which is then used by the validators rewarder.
- - Testing steps performed:
- - Add a `main.rs` file in the `nyxd` scraper dir, underneath `lib.rs`, amend `config.pruning_options.validate()?;` to be `let _ = config.pruning_options.validate();` in the mod.rs file
- - Test the different variations of `pruning_options`:
- a. Check the *default* option: `pruning_options: PruningOptions::default()`
- b. Check the *nothing* option: `pruning_options: PruningOptions::nothing()`
- c. Check the *custom* option, example: `pruning_options: PruningOptions { keep_recent: (500), interval: (10), strategy: (PruningStrategy::Custom) }`
- d. Check the pruning *in real life* for the validator rewarder
- - Validate that the database table `blocks` was being updated accordingly
+~~~admonish example collapsible=true title="Testing steps performed"
+- Add a `main.rs` file in the `nyxd` scraper dir, underneath `lib.rs`, amend `config.pruning_options.validate()?;` to be `let _ = config.pruning_options.validate();` in the mod.rs file
+- Test the different variations of `pruning_options`:
+ - Check the *default* option: `pruning_options: PruningOptions::default()`
+ - Check the *nothing* option: `pruning_options: PruningOptions::nothing()`
+ - Check the *custom* option, example: `pruning_options: PruningOptions { keep_recent: (500), interval: (10), strategy: (PruningStrategy::Custom) }`
+ - Check the pruning *in real life* for the validator rewarder
+- Validate that the database table `blocks` was being updated accordingly
+~~~
+
- [Feature/rewarder voucher issuance](https://github.com/nymtech/nym/pull/4548)
- Introduces signature checks on issued credential data
- Stores evidence of any failures/malicious behaviour in the internal db
### Bugfix
-- [[bugfix] `noop` flag for `nym-api` for `nymvisor` compatibility](https://github.com/nymtech/nym/pull/4586)
+- [`noop` flag for `nym-api` for `nymvisor` compatibility](https://github.com/nymtech/nym/pull/4586)
- The application starts correctly and logs the starting message
- The `--no_banner` flag works as intended, providing compatibility with `nymvisor`
- - Testing steps performed:
- - Build the project to ensure no compilation errors
- - Run the binary with different command-line arguments to verify the CLI functionality
- - Test with and without the `--no_banner` flag to ensure compatibility and expected behavior
- - Verify logging setup and configuration file parsing
+~~~admonish example collapsible=true title="Testing steps performed"
+- Build the project to ensure no compilation errors
+- Run the binary with different command-line arguments to verify the CLI functionality
+- Test with and without the `--no_banner` flag to ensure compatibility and expected behavior
+- Verify logging setup and configuration file parsing
+~~~
-### Documentation Updates
+### Operators Guide updates
- [`nym-gateway-probe`](testing/gateway-probe.md): A CLI tool to check in-real-time networking status of any Gateway locally.
-- [Where to host your `nym-node`?](legal/isp-list.md): A list of Internet Service Providers (ISPs) by Nym Operators community. We invite all operators to add their experiences with different ISPs to strengthen the community knowledge and Nym mixnet performance.
+- [Where to host your `nym-node`?](legal/isp-list.md): A list of Internet Service Providers (ISPs) by Nym Operators community. We invite all operators to add their experiences with different ISPs to strengthen the community knowledge and Nym mixnet performance.
+- Make sure you run `nym-node` with `--wireguard_enabled false` and add a location description to your `config.toml`, both documented in [`nym-node` setup manual](nodes/setup.md#mode-exit-gateway).
+
---
@@ -156,6 +168,7 @@ called Result::unwrap() on an Err value: ClientCoreError(ValidatorClientError(Ny
- [Network configuration](nodes/configuration.md#connectivity-test-and-configuration) section updates, in particular for `--mode mixnode` operators
- [VPS IPv6 troubleshooting](troubleshooting/vps-isp.md#ipv6-troubleshooting) updates
+
---
## `v2024.3-eclipse`
diff --git a/documentation/operators/src/nodes/nym-node.md b/documentation/operators/src/nodes/nym-node.md
index 43ffdc1629e..4afc1669f75 100644
--- a/documentation/operators/src/nodes/nym-node.md
+++ b/documentation/operators/src/nodes/nym-node.md
@@ -26,7 +26,7 @@ Once VPS and Nym wallet are configured, binaries ready, the operators of `nym-no
During the testing events series [Fast and Furious](https://nymtech.net/events/fast-and-furious) we found out, that after introducing IP Packet Router and [Nym exit policy](https://nymtech.net/.wellknown/network-requester/exit-policy.txt) as default features, only a fragment of Exit Gateways routes correctly through IPv4 and IPv6. We built a useful monitor to check out your Gateway (`nym-node --mode exit-gateway`) at [harbourmaster.nymtech.net](https://harbourmaster.nymtech.net/).
-Below is a fast - ten commands - deployment for seasoned operators to migrate and setup the node, configure networking and connectivity and verify that it all works as it should by getting two free jokes through the Mixnet.
+Below is a fast - *ten commands* - deployment for seasoned operators to migrate and setup the node, configure networking and connectivity and verify that it all works as it should by getting two free jokes through the Mixnet.
```admonish caution
If you are not well familiar with `nym-node` setup, automation, and `nymtun0` configuration, follow the [steps above](#steps-for-nym-node-operators) page by page. You can use this flow as a reference later on.
diff --git a/documentation/operators/src/nodes/setup.md b/documentation/operators/src/nodes/setup.md
index 5c16d325503..73463bbc36a 100644
--- a/documentation/operators/src/nodes/setup.md
+++ b/documentation/operators/src/nodes/setup.md
@@ -54,7 +54,11 @@ https:///api/v1/swagger/#/
### Help Command
-There are a few changes from the individual binaries used in the past. For example by default `run` command does `init` function as well, local node `--id` will be set by default unless specified otherwise etcetera.
+There are a few changes from the individual binaries used in the past. For example by default `run` command does `init` function as well, local node `--id` will be set by default unless specified otherwise etcetera.
+
+```admonish info
+You can always use `--help` flag to see the commands or arguments associated with a given command.
+```
Run `./nym-node --help` to see all available commands:
@@ -64,31 +68,6 @@ Run `./nym-node --help` to see all available commands:
```
~~~
-
-
To list all available flags for each command, run `./nym-node --help` for example `./nym-node run --help`:
~~~admonish example collapsible=true title="`./nym-node run --help` output:"
@@ -97,84 +76,9 @@ To list all available flags for each command, run `./nym-node --help`
```
~~~
-
-
+```admonish bug
The Wireguard flags currently have limited functionality, **do not enable Wireguard** just yet.
+```
#### Flags Summary
@@ -192,7 +96,9 @@ Some of the most useful flags and their explanation:
- `--expose-crypto-hardware `: Sets your crypto hardware info visibility on the network.
-## Commands & Examples
+## Usage
+
+### Commands & Examples
**`nym-node` introduces a default human readible ID (local only) `default-nym-node`, which is used if there is not an explicit custom `--id ` specified. All configuration is stored in `~/.nym/nym-nodes/default-nym-node/config/config.toml` or `~/.nym/nym-nodes//config/config.toml` respectively.**