Skip to content

add node refresher for periodic scraping of bonded nym-node details#6626

Merged
jstuczyn merged 7 commits intofeat/mix-stress-testingfrom
feat/nmv3-orchestrator-node-scraping
Apr 23, 2026
Merged

add node refresher for periodic scraping of bonded nym-node details#6626
jstuczyn merged 7 commits intofeat/mix-stress-testingfrom
feat/nmv3-orchestrator-node-scraping

Conversation

@jstuczyn
Copy link
Copy Markdown
Contributor

@jstuczyn jstuczyn commented Mar 27, 2026

NYM-914

  • NodeRefresher periodically queries the mixnet contract for all bonded nodes and probes each node's HTTP API for host information, sphinx keys, noise keys, and key rotation IDs
  • Extract NymNodeApiClientRetriever into nym-node-requests with port probing, identity verification, and host information signature checking
  • Add clone_query_client on NyxdClient so the refresher can hold its own query client without locking the signing client
  • Batch upsert for nym_node rows (single transaction instead of per-row)
  • Reuse the new helpers in nym-api's node_describe_cache

This change is Reviewable

@jstuczyn jstuczyn force-pushed the feat/nmv3-orchestrator-node-scraping branch from aa5a686 to 2fa96d0 Compare March 27, 2026 14:10
@jstuczyn jstuczyn requested a review from mfahampshire as a code owner March 27, 2026 14:10
@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 27, 2026

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

Project Deployment Actions Updated (UTC)
nym-explorer-v2 Ready Ready Preview, Comment Apr 23, 2026 4:16pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs-nextra Ignored Ignored Preview Apr 23, 2026 4:16pm
nym-node-status Ignored Ignored Preview Apr 23, 2026 4:16pm

Request Review

Comment thread nym-node/nym-node-requests/src/api/helpers.rs Outdated
Comment thread nym-node/nym-node-requests/src/error.rs Outdated
Comment thread nym-node/nym-node-requests/src/api/helpers.rs
}

pub(crate) async fn run(&self) {
let mut interval = interval(self.node_refresh_rate);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about setting the missed tick behavior to Delay?
Just te be safe if by any chance an update is long or the delay too short

@jstuczyn jstuczyn force-pushed the feat/nmv3-orchestrator-queue branch from 588b4ed to b7be858 Compare April 23, 2026 14:39
Base automatically changed from feat/nmv3-orchestrator-queue to feat/mix-stress-testing April 23, 2026 15:50
- NodeRefresher periodically queries the mixnet contract for all bonded
  nodes and probes each node's HTTP API for host information, sphinx keys,
  noise keys, and key rotation IDs
- Extract NymNodeApiClientRetriever into nym-node-requests with port
  probing, identity verification, and host information signature checking
- Add clone_query_client on NyxdClient so the refresher can hold its own
  query client without locking the signing client
- Batch upsert for nym_node rows (single transaction instead of per-row)
- Reuse the new helpers in nym-api's node_describe_cache
@jstuczyn jstuczyn merged commit 2a72aa3 into feat/mix-stress-testing Apr 23, 2026
19 checks passed
@jstuczyn jstuczyn deleted the feat/nmv3-orchestrator-node-scraping branch April 23, 2026 16:26
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.

2 participants