Skip to content

Conversation

@jstuczyn
Copy link
Contributor

@jstuczyn jstuczyn commented Aug 28, 2025

implements naive versions NET-451 and NET-450 as part of NET-341

depends on #5957

relevant API changes:

nym-gateway-requests

Changed

  • bumped up CURRENT_PROTOCOL_VERSION from 5 to 6 ('upgrade mode')
  • ServerResponse::Authenticate contains upgrade_mode flag to indicate whether gateway thinks the system is undergoing the upgrade
  • ServerResponse::Register contains upgrade_mode flag to indicate whether gateway thinks the system is undergoing the upgrade
  • ServerResponse::Bandwidth contains upgrade_mode flag to indicate whether gateway thinks the system is undergoing the upgrade
  • ServerResponse::Send contains upgrade_mode flag to indicate whether gateway thinks the system is undergoing the upgrade

nym-credentials-interface

Added

  • BandwidthCredential to act as a wrapper for different types of credentials. current the old CredentialSpendingData (i.e. ticketbooks) and jwt tokens issued during upgrade mode. in the future it will also include emergency mode credentials issued by signer quorum:

nym-authenticator-requests

Added

  • BandwidthClaim type to wrap around BandwidthCredential and to also include an explicit type (i.e. mixnet/wg entry/exit)
  • v6 version of authenticator messages
    • each response type includes additional upgrade_mode_enabled: bool field
    • FinalMessage uses BandwidthClaim instead of CredentialSpendingData for the credential field

Changed

  • FinalMessage trait method credential() now returns Option<BandwidthClaim> rather than Option<CredentialSpendingData> to allow the upgrade mode flow where user would not have a valid zk-nym

This change is Reviewable

@vercel
Copy link

vercel bot commented Aug 28, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
nym-explorer-v2 Ready Ready Preview Comment Nov 3, 2025 4:51pm
nym-node-status Ready Ready Preview Comment Nov 3, 2025 4:51pm
1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
docs-nextra Ignored Ignored Preview Nov 3, 2025 4:51pm

@jstuczyn jstuczyn force-pushed the feature/gateway-upgrade-mode branch from 3d8a06a to a1b46ad Compare August 28, 2025 08:19
@jstuczyn jstuczyn force-pushed the feature/gateway-upgrade-mode branch from 8317741 to df53d25 Compare August 28, 2025 08:35
@jstuczyn jstuczyn force-pushed the feature/credential-proxy-jwt branch from 5f8be2d to df54ef8 Compare September 2, 2025 08:41
@jstuczyn jstuczyn force-pushed the feature/gateway-upgrade-mode branch from de7e53b to d69e499 Compare September 2, 2025 09:06
@jstuczyn jstuczyn force-pushed the feature/credential-proxy-jwt branch 4 times, most recently from be69a8f to 038c496 Compare October 10, 2025 09:14
@jstuczyn jstuczyn force-pushed the feature/gateway-upgrade-mode branch from d69e499 to 199df96 Compare October 10, 2025 12:08
@jstuczyn jstuczyn force-pushed the feature/gateway-upgrade-mode branch from 199df96 to 0573b9f Compare October 13, 2025 09:03
post rebasing fixes

AuthenticatorVersion helpers

additional nits

allow unwraps in mocks

fixed linux build

clippy

integrating upgrade mode into authenticator

fixed build after adding wrappers to response types

conditionally updating peer handle bandwidth

cleanup

negotiate initial protocol during registration

change auth to use highest protocol

handler for JWT message

dont meter client bandwidth in upgrade mode

handling recheck requests

sending information about upgrade_mode on client messages

gateway watching for upgrade mode attestation

wip: gateways to disable bandwidth metering on upgrade mode
@jstuczyn
Copy link
Contributor Author

jstuczyn commented Nov 4, 2025

superseded by #6174

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants