cffb8d98af
* fix wireguard syntax * simplify syntax * clean
13 KiB
13 KiB
Changelog
This page displays a full list of all the changes during our release cycle from v2024.3-eclipse onwards. Operators can find here the newest updates together with links to relevant documentation. The list is sorted so that the newest changes appear first.
v2024.5-ragusa
- Release binaries
- Release CHANGELOG.md
nym-nodeversion1.1.2
- Feature/nym node api location ([#4605])
- Add optional signature to IPR request/response ([#4604])
- Feature/unstable tested nodes endpoint ([#4601])
- nym-api: make report/avg_uptime endpoints ignore blacklist ([#4599])
- removed blocking for coconut in the final epoch state ([#4598])
- allow using explicit admin address for issuing freepasses ([#4595])
- Use rfc3339 for last_polled in described nym-api endpoint ([#4591])
- Explicitly handle constraint unique violation when importing credential ([#4588])
- [bugfix] noop flag for nym-api for nymvisor compatibility ([#4586])
- Chore/additional helpers ([#4585])
- Feature/wasm coconut ([#4584])
- upgraded axum and related deps to the most recent version ([#4573])
- Feature/nyxd scraper pruning ([#4564])
- Run cargo autoinherit on the main workspace ([#4553])
- Add rustls-tls to reqwest in validator-client ([#4552])
- Feature/rewarder voucher issuance ([#4548])
[#4605]: https://github.com/nymtech/nym/pull/4605
[#4604]: https://github.com/nymtech/nym/pull/4604
[#4601]: https://github.com/nymtech/nym/pull/4601
[#4599]: https://github.com/nymtech/nym/pull/4599
[#4598]: https://github.com/nymtech/nym/pull/4598
[#4595]: https://github.com/nymtech/nym/pull/4595
[#4591]: https://github.com/nymtech/nym/pull/4591
[#4588]: https://github.com/nymtech/nym/pull/4588
[#4586]: https://github.com/nymtech/nym/pull/4586
[#4585]: https://github.com/nymtech/nym/pull/4585
[#4584]: https://github.com/nymtech/nym/pull/4584
[#4573]: https://github.com/nymtech/nym/pull/4573
[#4564]: https://github.com/nymtech/nym/pull/4564
[#4553]: https://github.com/nymtech/nym/pull/4553
[#4552]: https://github.com/nymtech/nym/pull/4552
[#4548]: https://github.com/nymtech/nym/pull/4548
Features
- New
nym-nodeAPI endpoint/api/v1/auxiliary-details: to expose any additional information. Currently it's just the location.nym-apiwill then query all nodes for that information and put it in theself-describedendpoint. - New
nym-nodelocation available - use one of the three options to add this to your node config:- Update the
locationfield under[host]section ofconfig.toml - For new nodes: Initialise the node with
--locationflag, 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. - For existing nodes: It's also possible to use exactly the same
--locationargument as above, but make sure to also provide--write-changes(or-w) flag to persist those changes!
- Update the
- Feature/unstable tested nodes endpoint: 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 tagunstablethus meaning not to be consumed without a user risk, prefixes in endpoints with unstable, are what it says on the tin.
- 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
<img width="719" alt="image" src="https://github.com/nymtech/nym/assets/60836166/91285971-e82a-4e5a-8a58-880505ae1be9">
nym-api: make report/avg_uptime endpoints ignore blacklist: 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.
- 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: Fix issue where the validator-client can't parse the nym-api response for the described endpoint, in particular the
latest_polledfield that was recently added, by making the field userfc3339- Note: This will require upgrading
nym-apiand everything that depends on the described endpoint.
- Note: This will require upgrading
- 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 <PATH_TO>/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,
```
- Upgrade
axumand related dependencies to the most recent version - Run cargo autoinherit on the main workspace: 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
- 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: 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, enablerustls-tlsfornon-wasm32 - In
client-core: Use default features enabled fornon-wasm32and switch towebpkiroots, since that's what we're using withreqwestanyway - In
gateway-client: Switch towebpkiroots, since that's what we're using withreqwestanyway
- In
Crypto
- 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
- Explicitly handle constraint unique violation when importing credential: Add a strong type for when a duplicate credential is imported so the vpn lib can handle this.
- Feature/wasm coconut: This pull request requires #4585 to be merged first
- Feature/nyxd scraper pruning: This PR introduces storage pruning to
nyxdscraper which is then used by the validators rewarder.
- 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
- Introduces signature checks on issued credential data
- Stores evidence of any failures/malicious behaviour in the internal db
Bugfix
noopflag fornym-apifornymvisorcompatibility- The application starts correctly and logs the starting message
- The
--no_bannerflag works as intended, providing compatibility withnymvisor
- 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
Operators Guide updates
nym-gateway-probe: A CLI tool to check in-real-time networking status of any Gateway locally.- Where to host your
nym-node?: 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-nodewith--wireguard-enabled falseand add a location description to yourconfig.toml, both documented innym-nodesetup manual.
v2024.4-nutella
- Merged PRs
nym-nodeversion1.1.1- This release also contains:
nym-gatewayandnym-network-requesterbinaries - core improvements on nym-node configuration
- Nym wallet changes:
- Adding
nym-nodecommand to bonding screens - Fixed the delegation issues with fixing RPC
- Adding
- Network configuration section updates, in particular for
--mode mixnodeoperators - VPS IPv6 troubleshooting updates
v2024.3-eclipse
- Release Changelog.md
nym-nodeinitial release- New tool for monitoring Gateways performance harbourmaster.nymtech.net
- New versioning
1.1.0+nymnodemainly for internal migration testing, not essential for operational use. We aim to correct this in a future release to ensure mixnodes feature correctly in the main API - New VPS specs & configuration page
- New configuration page with connectivity setup guide - a new requirement for
exit-gateway - API endpoints redirection: Nym-mixnode and nym-gateway endpoints will eventually be deprecated; due to this, their endpoints will be redirected to new routes once the
nym-nodehas been migrated and is running
API endpoints redirection
| Previous endpoint | New endpoint |
|---|---|
http://<IP>:8000/stats |
http://<IP>:8000/api/v1/metrics/mixing |
http://<IP>:8000/hardware |
http://<IP>:8000/api/v1/system-info |
http://<IP>:8000/description |
http://<IP>:8000/api/v1/description |