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.8-wispa
- Release binaries
- Release CHANGELOG.md
nym-node
version1.1.5
CHANGELOG.md
CHANGELOG.md
- add event parsing to support cosmos_sdk > 0.50 (#4697)
- Fix NR config compatibility (#4690)
- Remove UserAgent constructor since it’s weakly typed (#4689)
- [bugfix]: Node_api_check CLI looked over roles on blacklisted nodes (#4687)
- Add mixnodes to self describing api cache (#4684)
- Move and whole bump of crates to workspace and upgrade some (#4680)
- Remove code that refers to removed nym-network-statistics (#4679)
- Remove nym-network-statistics (#4678)
- Create UserAgent that can be passed from the binary to the nym api client (#4677)
- Add authenticator (#4667)
Features
- Default construct NodeRole: To preserve compatibility with newer clients interacting with older
nym-api
Testing steps performed
Testing steps performed
- Reviewed the changes in the
nym-api-requests/src/models.rs
file. - Verified that the
NymNodeDescription
struct includes the newrole
field with a default value set bydefault_node_role
. - Checked the implementation of the
default_node_role
function to ensure it returnsNodeRole::Inactive
. - Ran the updated code in the sandbox environment.
- Monitored the sandbox environment for any issues or errors related to the changes.
Notes (if any):
The test was successful. No issues were flagged during the testing in the sandbox environment. The new default value for NodeRole
ensures backward compatibility without causing disruptions.
- [Default construct NodeRole for backwards compatibility (apply #4721 on develop)](https://github.com/nymtech/nym/pull/4722)
- Add upgrades to
nym-node
forauthenticator
changes
Testing steps performed
Testing steps performed
- Reviewed the changes in the
gateway/src/error.rs
andgateway/src/node/mod.rs
files. - Verified the new error enum
AuthenticatorStartupFailure
was added toGatewayError
. - Confirmed the implementation of the
StartedAuthenticator
struct and its usage in thestart_authenticator
function. - Ran the updated code in the canary environment.
- Monitored the canary environment for any issues or errors related to the changes.
Testing steps performed
Testing steps performed
- Reviewed the changes in
common/client-libs/validator-client/src/nyxd/cosmwasm_client/client_traits/signing_client.rs
,logs.rs
,types.rs
, andnym-api/src/coconut/tests/mod.rs
files. - Verified the addition of event parsing in the relevant functions and structs.
- Ensured that the
find_attribute
function correctly parses event attributes. - Ran the updated code in the sandbox environment.
- Broadcasted transactions on the sandbox network to test the changes.
- Monitored the sandbox network for any malformed responses or errors after the test chain upgrade.
- Send bandwidth status messages when connecting: When connecting to the gateway we get received the available bandwidth left. Emit a status messages for this, for consumption by the application layer.
Testing steps performed
Testing steps performed
- Reviewed the changes in
common/bandwidth-controller/src/event.rs
,common/bandwidth-controller/src/lib.rs
, andcommon/client-libs/gateway-client/src/client.rs
files. - Verified the implementation of
BandwidthStatusMessage
enum for emitting status messages. - Ensured
GatewayClient
is updated to send bandwidth status messages when connecting. - Deployed the updated code on the canary environment.
- Connected to the gateway and checked for the emission of bandwidth status messages.
- Verified that the messages were correctly parsed and consumed by the application layer.
- Ran the VPN client to observe the parsed events.
- Fix NR config compatibility: Recently we deleted the old statistics service provider. This fixes some issues where old configs didn’t work with the latest changes.
- Make NR able to read config with old keys in
- Remove deleted config keys from NR template
Testing steps performed
Testing steps performed
- Reviewed the changes in the
service-providers/network-requester/src/config/mod.rs
andservice-providers/network-requester/src/config/template.rs
files. - Ensured
NetworkRequester
config is able to read old keys for compatibility. - Removed old and deleted config keys from the
NetworkRequester
template. - Compiled the project to verify no issues or warnings appeared.
- Ran all tests to ensure that the changes did not affect the functionality.
- Validated that no leftover code from the old statistics service provider caused any issues.
Testing steps performed
Testing steps performed
- Reviewed the changes in
common/http-api-client/src/user_agent.rs
file. - Verified the removal of the
UserAgent
constructor and ensured that all instances ofUserAgent::new
are updated accordingly. - Checked the implementation of
UserAgent
struct usingBinaryBuildInformation
andBinaryBuildInformationOwned
. - Deployed the updated code across different environments (QA, sandbox, and canary).
- Ran tests to ensure that the
UserAgent
struct functions correctly without the constructor.
- Add mixnodes to self describing api cache:
- Abstracts getting the self describing info a bit
- Adds mixnodes to the cache refresher as well
- Adds
role
field to theNodeDescription
struct, to be able to distinguish between mixnodes and gateways - Switched to using
NodeStatusCache
instead ofContractCache
Testing steps performed
Testing steps performed
Called the new /mixnodes/described
endpoint as well as the existing /gateways/described
endpoint and verified that the data returned for each was correct based on the settings that different nodes have when they are setup.
For gateway endpoint, the “role” for now does not differentiate between entry and exit gateways, this will be implemented in the future.
- Move and whole bump of crates to workspace and upgrade some:
- Fix cargo warning for
default_features
- Move dirs 4.0 to workspace
- Use workspace
base64
dep - Move
rand_chacha
andx25519-dalek
to workspace - Use workspace
ed25519-dalek
dep - Move
itertools
to workspace deps and upgrade - Move a few partial deps to workspace while preserving versions
- Fix cargo warning for
Testing steps performed
Testing steps performed
- Reviewed the changes to move and upgrade crates to the workspace.
- Verified the updated dependencies:
- Moved
dirs
to version 4.0 in the workspace. - Updated the
base64
dependency to use the workspace version. - Moved
rand_chacha
andx25519-dalek
to the workspace. - Updated
ed25519-dalek
to use the workspace version. - Moved and upgraded
itertools
in the workspace. - Moved other partial dependencies to the workspace while preserving their versions.
- Moved
- Ensured the
Cargo.toml
files across the project reflect these changes correctly. - Compiled the entire project to check for any issues or warnings.
- Verified that all tests pass successfully after the changes.
- Remove
nym-network-statistics
: Removenym-network-statistics
service provider that is no longer used.
Testing steps performed
Testing steps performed
- Reviewed the project to identify all references to
nym-network-statistics
. - Removed all code and dependencies associated with
nym-network-statistics
. - Ensured that no references to
nym-network-statistics
remain in the codebase, including comments, imports, and configuration files. - Compiled the project to check for any issues or warnings.
- Ran all tests to ensure the removal did not affect the functionality of the project.
- Remove code that refers to removed
nym-network-statistics
: Follow up to #4678 where all code interacting with it is removed.
Testing steps performed
Testing steps performed
- Reviewed the project to identify all references to
nym-network-statistics
. - Removed all code and dependencies associated with
nym-network-statistics
. - Ensured that no references to
nym-network-statistics
remain in the codebase, including comments, imports, and configuration files. - Compiled the project to check for any issues or warnings.
- Ran all tests to ensure the removal did not affect the functionality of the project.
- Create
UserAgent
that can be passed from the binary to thenym-api
client:- Support setting
UserAgent
for the validator client - Support setting
UserAgent
in the SDKMixnetClient
- Set
UserAgent
when getting the list of gateways and topology innym-client
nym-socks5-client
- Standalone
ip-packet-router
- Support setting
Testing steps performed
Testing steps performed
Used the nym-vpn-cli to test this, and we can visibly see the UserAgent
, no issues with the comments mentioned above.
Example of the user agent sent:
nym-client/1.1.36/x86_64-unknown-linux-gnu/e18bb70
Connected with no problems
Bugfix
Node_api_check.py
CLI looked over roles on blacklisted nodes: Removing/correcting this redundant function which results in unwanted error print, will resolve in the program not looking up theroles
endpoint for blacklisted GWs, instead just ignores the role description and still return all other endpoints.
Operators Guide updates
- Create a guide to backup and restore
nym-node
, PR #4720 - Add manual IPv6 ifup/down network configuration, PR #4651
- Extend ISP list
- Add SSL cert bot block to WSS setup, PR here: WSS setup fully works!
- Correct
HTTP API port
in bonding page , PR #4707: ChangeHTTP API port
to8080
on everynym-node
by openingconfig.toml
and making sure that your binding addresses and ports are as in the block below. Then go to desktop wallet and open the box calledShow advanced options
and make sure all your ports are set correctly (usually this means to changeHTTP api port
to8080
formixnode
mode).
snap of binding addresses and ports in config.toml
snap of binding addresses and ports in config.toml
[host]
public_ips = [
'<YOUR_PUBLIC_IPv4>'
]
[mixnet]
bind_address = '0.0.0.0:1789'
[http]
bind_address = '0.0.0.0:8080'
[mixnode]
[mixnode.verloc]
bind_address = '0.0.0.0:1790'
[entry_gateway]
bind_address = '0.0.0.0:9000'
- Comment our deprecated node pages in
/docs
- Fixes issue #4632
- Remove redundant syntax from the setup guide
v2024.7-doubledecker
- Release binaries
- Release CHANGELOG.md
nym-node
version1.1.4
CHANGELOG.md
CHANGELOG.md
- Add an early return in
parse_raw_str_logs
for empty raw log strings. (#4686) - Bump braces from 3.0.2 to 3.0.3 in /wasm/mix-fetch/internal-dev (#4672)
- add expiry returned on import (#4670)
- [bugfix] missing rustls feature (#4666)
- Bump ws from 8.13.0 to 8.17.1 in /wasm/client/internal-dev-node (#4665)
- Bump braces from 3.0.2 to 3.0.3 in /clients/native/examples/js-examples/websocket (#4663)
- Bump ws from 8.14.2 to 8.17.1 in /sdk/typescript/packages/nodejs-client (#4662)
- Update setup.md (#4661)
- New clippy lints (#4660)
- Bump braces from 3.0.2 to 3.0.3 in /nym-api/tests (#4659)
- Bump braces from 3.0.2 to 3.0.3 in /docker/typescript_client/upload_contract (#4658)
- Update vps-setup.md (#4656)
- Update configuration.md (#4655)
- Remove old PR template (#4639)
Features
- Remove the
nym-mixnode
andnym-gateway
binaries from the CI upload builds action - Add an early return in
parse_raw_str_logs
for empty raw log strings.: This accommodates for the v50 + chain upgrade. - Bump braces from
3.0.2
to3.0.3
in/wasm/mix-fetch/internal-dev
: Version update of braces - Bump braces from
3.0.2
to3.0.3
in/clients/native/examples/js-examples/websocket
: Version update of braces. - Bump braces from
3.0.2
to3.0.3
in/nym-api/tests
: Version update of braces. - Bump braces from
3.0.2
to3.0.3
in/docker/typescript_client/upload_contract
: Version update of braces. - Bump
ws
from8.13.0
to8.17.1
in/wasm/client/internal-dev-node
: Version update ofws
. - Bump
ws
from8.14.2
to8.17.1
in/sdk/typescript/packages/nodejs-client
: Version update ofws
. - Add expiry returned on import: We need to return the expiry on import for desktop daemon
nym-vpnd
. - New clippy lints
- Remove
nym-connect
directory: Since thenym-vpn
has supersedednym-connect
, removenym-connect
from the repo. - Remove old PR template
Bugfix
- missing rustls feature: It just happens to work due to
feature-unification
. It should probably have this feature inbuild.
Operators Guide updates
- Node description guide: Steps to add self-description to
nym-node
and query this information from any node. - Web Secure Socket (WSS) guide and reverse proxy update, PR here: A guide to setup
nym-node
in a secure fashion, using WSS via Nginx and Certbot. Landing page (reversed proxy) is updated and simplified.
v2024.6-chomp
- Release binaries
- Release CHANGELOG.md
nym-node
version1.1.3
- Standalone
nym-gateway
andnym-mixnode
binaries are no longer released
CHANGELOG.md
CHANGELOG.md
- Remove additional code as part of Ephemera Purge and SP and contracts (#4650)
- bugfix: make sure nym-api can handle non-cw2 (or without detailed build info) compliant contracts (#4648)
- introduced a flag to accept toc and exposed it via self-described API (#4647)
- bugfix: make sure to return an error on invalid public ip (#4646)
- Add ci check for PR having an assigned milestone (#4644)
- Removed ephemera code (#4642)
- Remove stale peers (#4640)
- Add generic wg private network routing (#4636)
- Feature/new node endpoints (#4635)
- standarised ContractBuildInformation and added it to all contracts (#4631)
- validate nym-node public ips on startup (#4630)
- Bump defguard wg (#4625)
- Fix cargo warnings (#4624)
- Update kernel peers on peer modification (#4622)
- Handle v6 and v7 requests in the IPR, but reply with v6 (#4620)
- fix typo (#4619)
- Update crypto and rand crates (#4607)
- Purge name service and service provider directory contracts (#4603)
Features
- Make embedded NR/IPR ignore performance of the Gateway: fixes bug in relation to scoring issue on nym-nodes operating as exit gateways failing to come online.
- Introduce a flag to accept Operators Terms and Conditions and exposed it via self-described API
Testing steps performed
Testing steps performed
- Verify that the
execute
function correctly checks if theaccept_operator_terms
flag is set. - Test that a warning is displayed when the
accept_operator_terms
flag is not set. - Confirm that the
NymNode
instance is initialized withwith_accepted_toc(accepted_toc)
when the flag is set. - Apply the
--accept-toc
flag in the service and confirmed the change by running:
curl -s -X 'GET' 'http://18.171.251.41:8080/api/v1/auxiliary-details?output=json' -H 'accept: application/json' | jq .accepted_toc
- Verify that the output is
true
.
- Rename ‘accept-toc’ flag and fields into explicit ‘accept-operator-terms-and-conditions’: makes the
accept-toc
flag more explicit. - Validate nym-node public ips on startup: makes sure
nym-node
is not run with an emptypublic_ips
and that they do not correspond to common misconfigurations like127.0.0.1
or0.0.0.0
unless run with--local
flag.
Testing steps performed
Testing steps performed
-
Use the latest release/chomp binary with nym-node and input a dodgy ip
-
Validation:
When restarting the node it complains within the service launch file
- New node endpoints: introduces new endpoints on nym-api (and creates scaffolding for additional ones) for providing unfiltered network topology alongside performance score of all nodes.
NymApiTopologyProvider
got modified to use those endpoints alongside (configurable) filtering of nodes with score < 50% (like our current blacklist)- Old clients should work as before as no existing endpoint got removed
Testing steps performed
Testing steps performed
- Validate that the
skimmed
endpoints are working, keeping in mind that they are unstable. The full-fat and semi-skimmed have not yet been implemented.
Testing steps performed
Testing steps performed
- Check references to everything named SP and Ephemera and removed any additional references
- Remove additional code as part of Ephemera Purge and SP and contracts: in line with #4642 and #4603
Testing steps performed
Testing steps performed
- Check references to everything named SP and Ephemera and removed any additional references
- Add ci check for PR having an assigned milestone: add a CI check for checking that a PR is assigned to a milestone. Can bypassed the check by adding a
no-milestone
label to a PR
- Bump defguard wireguard
- Add generic wireguard private network routing: as defguard wireguard only allows for peer routing modifications, we will configure the entire wireguard private network to be routed to the wg device. Configuring per peer is also not desirable, as the interface doesn’t allow removing routes, so unused ip routing won’t be cleaned until gateway restart (and it would also pollute to routing table with a lot of rules when many peers are added).
Testing steps performed
Testing steps performed
- This is a part of a bigger ticket, but initial testing has proven to shown that launching nym-nodes (entry and exit gateways) in WG enable mode to be working
QA will use this template for the other related WG tickets in this release milestone.
Testing steps performed
Testing steps performed
- Use the latest release/chomp contracts and deploy these to QA
- Use the
nym-api
to query for the results of these new contracts
curl -X 'GET' \
'https://qa-nym-api.qa.nymte.ch/api/v1/network/nym-contracts-detailed' \
-H 'accept: application/json'
- It returns a detailed view of the contracts and which branch they were built from, alongside rust versions and so forth.
Testing steps performed
Testing steps performed
- This is a part of a bigger ticket, but initial testing has proven to shown that launching nym-nodes (entry and exit gateways) in WG enable mode to be working. QA will use this template for the other related WG tickets in this release milestone.
- Handle v6 and v7 requests in the IPR, but reply with v6: teach the IPR to read both v6 and v7 requests, but always reply with v6. This is to prepare for bumping to v7 and signed connect/disconnect messages. Follow up PRs will add
- Verify signature
- Send v7 in client with signatures included
- Purge name service and service provider directory contracts: this is a compiler assisted purge of the
nym-name-service
andnym-service-provider-directory
contracts that were never deployed on mainnet, and will anyhow be superseded by the new mixnode directory that is being worked on.
Testing steps performed
Testing steps performed
It works insofar that it compiles, we need to deploy and test this on non-mainnet before merging in
- Purge
nym-name-service
contract - Purge
nym-name-service-common
- Purge
nym-service-provider-directory
contract - Purge
nym-service-provider-directory-common
- Remove everywhere name-service contract is used
- Remove everywhere sp contract is used
Performed:
- Check references to everything named SP and Ephemera and removed any additional references
Crypto
- Update crypto and rand crates: Update sphinx crate to
0.1.1
along with 25519 crates andrand
crates
Comments
Comments
This PR contains a test failure due to the update here
- This is due a change in
x25519-dalek
from1.1.1
to2
. - Crypto operations should be identical, but the byte representation has changed (sphinx clamps at creation, x25519 clamps at use). This cannot be changed in the sphinx crate without breaking changes.
- There is a good chance that this failure doesn’t impact anything else, but it has to be tested to see.
- A mix of old and new clients with a mix of old and new mixnodes should do
Bugfix
- Make sure nym-api can handle non-cw2 (or without detailed build info) compliant contracts: fixes the issue (even if some contracts aren’t uploaded on chain it doesn’t prohibit the api from working - caveat, the essential vesting and mixnet contract are required)
Testing steps performed
Testing steps performed
- Use the latest release/chomp contracts and deploy these to QA
- If the contract was not found, the API would complain of invalid contracts, thus not starting the rest of the operations of the API (network monitor / rewarding etc)
Jun 11 16:27:34 qa-v2-nym-api bash[1352642]: 2024-06-11T16:27:34.551Z ERROR nym_api::nym_contract_cache::cache::refresher > Failed to refresh validator cache - Abci query failed with code 6 - address n14y2x8a60knc5jjfeztt84kw8x8l5pwdgnqg256v0p9v4p7t2q6eswxyusw: no such contract: unknown request
- Make sure to return an error on
nym-node
invalid public ip: bugfix for #4630 that interestingly hasn’t been detected by clippy.
Testing steps performed
Testing steps performed
-
Use the latest release/chomp binary with nym-node and input a dodgy ip
-
Validation:
Testing steps performed
Testing steps performed
- Verify that the
establish_connection
function correctly attempts to establish a connection to the gateway. - Test error handling for
NetworkConnectionFailed
by simulating a failed connection. - Ensure that the
NetworkConnectionFailed
error includes theaddress
andsource
details as expected. - Checked that
SocketState::Available
is set correctly when a connection is successfully established.
- Fix Cargo warnings: On every cargo command we have the set warnings:
Cargo warnings
Cargo warnings
warning: /home/alice/src/nym/nym/common/dkg/Cargo.toml: default-features
is ignored for bls12_381, since default-features
was not specified for workspace.dependencies.bls12_381
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/dkg/Cargo.toml: default-features
is ignored for ff, since default-features
was not specified for workspace.dependencies.ff
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/dkg/Cargo.toml: default-features
is ignored for group, since default-features
was not specified for workspace.dependencies.group
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/client-libs/validator-client/Cargo.toml: default-features
is ignored for bip32, since default-features
was not specified for workspace.dependencies.bip32
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/client-libs/validator-client/Cargo.toml: default-features
is ignored for prost, since default-features
was not specified for workspace.dependencies.prost
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/credentials-interface/Cargo.toml: default-features
is ignored for bls12_381, since default-features
was not specified for workspace.dependencies.bls12_381
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/credentials/Cargo.toml: default-features
is ignored for bls12_381, since default-features
was not specified for workspace.dependencies.bls12_381
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/nymcoconut/Cargo.toml: default-features
is ignored for bls12_381, since default-features
was not specified for workspace.dependencies.bls12_381
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/nymcoconut/Cargo.toml: default-features
is ignored for ff, since default-features
was not specified for workspace.dependencies.ff
, this could become a hard error in the future warning: /home/alice/src/nym/nym/common/nymcoconut/Cargo.toml: default-features
is ignored for group, since default-features
was not specified for workspace.dependencies.group
, this could become a hard error in the future.
Testing steps performed
Testing steps performed
- All binaries have been built and deployed from this branch and no issues have surfaced.
Operators Guide updates
- New Release Cycle introduced: a transparent release flow, including:
- New environments
- Stable testnet
- Testnet token faucet
- Flow chart
- Sandbox testnet guide: teaching Nym node operators how to run their nodes in Nym Sandbox testnet environment.
- Terms & Conditions flag
- Node API Check CLI
- Pruning VPS
syslog
scripts - Black-xit: Exiting the blacklist
v2024.5-ragusa
- Release binaries
- Release CHANGELOG.md
nym-node
version1.1.2
CHANGELOG.md
CHANGELOG.md
- 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)
Features
- New
nym-node
API endpoint/api/v1/auxiliary-details
: to expose any additional information. Currently it’s just the location.nym-api
will then query all nodes for that information and put it in theself-described
endpoint. - New
nym-node
location available - use one of the three options to add this to your node config:- Update the
location
field under[host]
section ofconfig.toml
- 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. - 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!
- 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 tagunstable
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
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: 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
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:
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_polled
field that was recently added, by making the field userfc3339
- Note: This will require upgrading
nym-api
and everything that depends on the described endpoint.
- Note: This will require upgrading
Testing steps performed
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:
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
axum
and 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
Testing steps performed
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: 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-tls
fornon-wasm32
- In
client-core
: Use default features enabled fornon-wasm32
and switch towebpki
roots, since that’s what we’re using withreqwest
anyway - In
gateway-client
: Switch towebpki
roots, since that’s what we’re using withreqwest
anyway
- In
Crypto
Testing steps performed
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
- 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
nyxd
scraper which is then used by the validators rewarder.
Testing steps performed
Testing steps performed
- Add a
main.rs
file in thenyxd
scraper dir, underneathlib.rs
, amendconfig.pruning_options.validate()?;
to belet _ = 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
- Check the default option:
- 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
noop
flag fornym-api
fornymvisor
compatibility- The application starts correctly and logs the starting message
- The
--no_banner
flag works as intended, providing compatibility withnymvisor
Testing steps performed
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
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-node
with--wireguard-enabled false
and add a location description to yourconfig.toml
, both documented innym-node
setup manual.
v2024.4-nutella
- Merged PRs
nym-node
version1.1.1
- This release also contains:
nym-gateway
andnym-network-requester
binaries - core improvements on nym-node configuration
- Nym wallet changes:
- Adding
nym-node
command to bonding screens - Fixed the delegation issues with fixing RPC
- Adding
- Network configuration section updates, in particular for
--mode mixnode
operators - VPS IPv6 troubleshooting updates
v2024.3-eclipse
- Release Changelog.md
nym-node
initial release- New tool for monitoring Gateways performance harbourmaster.nymtech.net
- New versioning
1.1.0+nymnode
mainly 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-node
has 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 |