Skip to content
In development

The node binary exposes health and metrics. It does not submit transactions, which is also the mitigation listed against a lying RPC in the threat model.

node/ on GitHub

Repository

nuvex

Path

node/, cli/

Language

Rust

Image

nuvex-oracle-node:local

What lives here

node/ is the operator process and cli/ is the command entry. The CLI binary is nuvex, with the commands node, request, registry, staking and network. network reads NUVEX_API_URL and refuses to invent status if it is unset.

nuvex-oracle-nodeHealth only
  • /healthok
  • /metricsexposed
  • VRF keynot loaded
  • fulfilmentsnot submitted
Illustration · not chain data

The node image is built from the protocol repository with docker build -f node/Dockerfile -t nuvex-oracle-node:local . Configuration comes from an environment file copied out of env/.

cp env/.env.local.example .env.local

A first contribution

  • Add a metric or a health field that an operator actually needs to see, and a test that asserts its shape.
  • Harden configuration parsing so a missing variable fails loudly instead of defaulting.
  • Check that no log line can print key bytes, seed phrases or a payload a user marked confidential.
  • Improve the message a CLI command prints when it is waiting on a later milestone.

Checks that must pass

Every pull request to the protocol repository has to pass one command:

make check

That runs formatting, Clippy, cargo build-sbf for the three programs and the test callback consumer, the Rust tests and the JavaScript SDK tests. Program tests load target/deploy/*.so, so the Solana CLI and the platform tools have to be installed.

  • Config debug output redacts RPC URLs and key paths. A change that unredacts them will be rejected.
  • The node does not open a key file yet. NUVEX_NODE_KEY_PATH is a path, and the process receives a path or a handle, never a printed key.
  • Do not commit a .env file. The example files contain empty secrets.

Decisions that are closed

  • The node process does not submit transactions in this milestone. Adding a submitter is a milestone, not a patch.
  • ADR 0003: fulfilment is first-come among eligible nodes. There is no assignment service to write.
  • Key management keeps node identity, operator authority, treasury and security-fund authorities, and the upgrade multisig on separate keys.
  • Pause is a flag on ProtocolConfig and is not implemented yet.