Skip to content

Quantova/node-conformance-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quantova Node & Runtime Conformance Tests

A read-only checker that verifies a running node is the canonical Quantova runtime and that its node/runtime invariants hold: correct runtime identity, all expected pallets present, post-quantum authorization, healthy consensus and finality, and the expected chain properties and runtime APIs. It connects over JSON-RPC, reads only public state and metadata, and reports PASS / WARN / FAIL.

It is safe to run and safe to publish: it performs no signing, no transaction submission, and no state changes. It verifies that the node matches the protocol — it does not attempt to alter or attack it. See SECURITY.md for the full safety boundary.

What it checks

Group Checks
A. Connectivity & RPC JSON-RPC reachable; the required read-only RPC methods all answer
B. Runtime identity specName is quantova-runtime; spec/transaction versions reported (a higher version warns rather than fails, since the chain upgrades)
C. Pallet conformance Every pallet in the canonical runtime is present in metadata, reported both as a whole and by functional group (consensus, staking, governance, balances, bridge, smart contracts, assets/naming, finality, post-quantum)
D. Post-quantum signing The QSignature type and the Dilithium / Falcon / SPHINCS+ schemes are exposed in metadata
E. Consensus & finality Node health; a finalized head exists and advances over a sampling window
F. Chain properties Token decimals (18), SS58 format (42), token symbol (QTOV/TQTOV), isEthereum = false
G. Runtime API surface Core runtime API groups present (Core, Metadata, BlockBuilder, SessionKeys, …)

These map to the canonical Quantova runtime: the full pallet set (Babe, Grandpa, Session, Staking, Balances, Bridge, QNS, Revive/QVM, the OpenGov stack, and the post-quantum threshold-encryption pallet), the QSignature post-quantum signature type, and deterministic finality.

Requirements

  • Python 3.8+
  • requests (the only dependency)
pip install -r requirements.txt    # just: requests

Usage

# Check a node
python run_checks.py --rpc http://127.0.0.1:9933

# Public testnet
python run_checks.py --rpc https://testnet.quantova.io

# Machine-readable output (for CI / monitoring)
python run_checks.py --rpc http://127.0.0.1:9933 --json

# Skip the timed finality sample (faster; single-shot reads only)
python run_checks.py --rpc http://127.0.0.1:9933 --fast

Exit code is 0 when there are no FAIL results and 1 otherwise, so it drops straight into CI or a monitoring cron.

How it reads the node (read-only)

  • Identity & APIs: state_getRuntimeVersion and a name-presence scan of state_getMetadata.
  • Pallets & post-quantum: confirms the runtime pallet names and the QSignature / scheme identifiers appear in the metadata blob.
  • Finality: chain_getFinalizedHead / chain_getHeader sampled twice to confirm the finalized head advances.
  • Properties: system_properties, system_chain, system_health.

No private keys, no transaction construction, no state mutation anywhere. The only RPC methods used are read-only (system_*, state_get*, chain_get*).

Interpreting results

  • PASS — the invariant held at the time of the run.
  • WARN — worth a look but not necessarily wrong (for example, a runtime version above the baseline as the chain upgrades, or a property that differs on a custom network).
  • FAIL — a conformance invariant did not hold (for example, the spec name is not quantova-runtime, a pallet is missing, the QSignature type is absent, or the finalized head did not advance).

A clean run reflects the checked invariants at that moment; it is not a guarantee of overall correctness or security. See SECURITY.md.

Tests

The suite ships an offline self-test that runs the full battery against a mock node in both a healthy and a deliberately broken scenario, proving the failure-detection paths:

python tests/test_offline.py

Repository layout

node-conformance-tests/
  node_checks/    scale.py, client.py, report.py, spec.py, checks.py, __init__.py
  tests/          test_offline.py
  run_checks.py   CLI entry point
  requirements.txt
  README.md
  SECURITY.md
  LICENSE
  LICENSE-OVERVIEW.md

License

Licensed under the Business Source License 1.1 (BUSL-1.1), © 2026 Quantova Inc. See LICENSE and LICENSE-OVERVIEW.md.

About

Read-only checker that verifies a running node is the canonical Quantova runtime: runtime identity, full pallet conformance, post-quantum authorization (Dilithium/Falcon/SPHINCS+), consensus and finality health, and chain properties. Reports PASS/WARN/FAIL with no signing and no state changes.

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-OVERVIEW.md

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages