QuipNetwork/quip-validator
58.0
Adequate · 30 September 2026
21.7k
lines of production code
Rust
primary language
2
measurements over time
What this system is
This system is a blockchain node and runtime framework built on the Substrate SDK, designed to support quantum computing workloads and post-quantum security. It implements a hybrid consensus mechanism using BABE and GRANDPA, alongside a custom H4 hybrid signing scheme that combines classical and post-quantum cryptography. The platform features specialized pallets for managing quantum job markets, executing quantum bytecode on-chain, and verifying quantum proofs, while also providing EVM compatibility and developer tooling for local testing and deployment.
Features
Add genesis key derivation and development seed dumping examples
Two new CLI examples are added to the transaction-crypto crate to support the hybrid consensus and signing migration. \derive\_genesis\_keys\ allows operators to derive BABE, GRANDPA, and transaction account public keys from a single seed URI, outputting the values needed for the \quip\_testnet\ genesis preset. \dump\_dev\_seeds\ prints the master seeds, public bytes, and account IDs for well-known development URIs (Alice, Bob, AliceStash), providing fixed reference data for parity tests that pin the hybrid keystore against chain-genesis-funded accounts.
crates/transaction-crypto/examples · high confidence
Added Handlebars template for Substrate benchmark weight generation
A new Handlebars template file (.maintain/frame-weight-template.hbs) has been added to support the automated generation of Rust weight files for Substrate pallets. This template defines the structure for autogenerated weight implementations, including trait definitions, execution time calculations, and database read/write metrics, which are populated with specific benchmark data during the build process.
.maintain · high confidence
Dockerized node with self-healing database and local 3-node dev cluster
The repository now includes a multi-stage Dockerfile for the \quip-network-node\, an \entrypoint.sh\ that automatically repairs truncated RocksDB \db\_version\ markers to prevent startup failures after crashes, and a \docker-compose.yml\ that launches a local 3-validator testnet (Alice, Bob, Charlie) on a dedicated bridge network. This allows developers to run a multi-node consensus environment locally without manual configuration, while the entrypoint also handles privilege dropping via PUID/PGID for safer container execution.
(repo-wide) · high confidence
Introduce Quip signer integration with hybrid signature support
Added a new signer implementation in \js/quip-signer/src/index.ts\ that enables transaction signing for Quip accounts using a large hybrid signature format (929-byte public key + 731-byte signature). The module includes a \patchExtrinsicSignFake\ function to override the default fake-signing behavior in polkadot-js, ensuring that fee estimation works correctly with Quip's specific signature envelope size. It also defines interfaces for injected providers, secret providers, and WASM-compatible crypto operations, allowing applications to integrate Quip's signing capabilities seamlessly.
js/quip-signer · high confidence
Introduce XQVM pallet for on-chain quantum bytecode execution
The new \pallet-xqvm\ enables storing and executing quantum bytecode on-chain. Programs are stored with a storage deposit, verified statically at store time, and executed with bounded steps and memory. The pallet includes comprehensive benchmarks and tests to ensure correct metering and fault handling.
pallets/xqvm · high confidence
Introduce genesis-configured EIP-155 chain ID pallet
Added a new \pallet-evm-chain-id\ that stores the EIP-155 chain ID at genesis, allowing a single runtime artifact to support different environments (local development ID 1337 vs. testnet ID 20033). The pallet provides a \Get\<u64\>\ adapter for \pallet-revive\'s \Config::ChainId\, defaults to the testnet ID if the storage key is missing (e.g., after an upgrade), and validates that the genesis chain ID is greater than zero.
pallets/evm-chain-id · high confidence
Introduce quantum compute mempool pallet for job ordering and settlement
The new \pallet-quantum-compute-mempool\ enables users to register job specifications, propose quantum computing jobs with configurable rewards and timing, and submit solutions via registered solvers. It supports multiple job modes (open or bid-based) and reward distribution strategies (single-best, top-N equal, or top-N weighted payouts). The pallet includes a two-phase order lifecycle with hard deadlines and block-wait expiry, validates job specs and results through a pluggable XQVM interface, and exposes runtime APIs for querying open orders, job details, and top solvers.
pallets/quantum-compute-mempool · high confidence
Introduces H4 hybrid transaction signing with golden-vector parity tests
The \transaction-crypto-core\ crate now implements the H4 hybrid signing suite (combining \sr25519\ and \Falcon-512\ via \pqhybridsign\), providing byte-level helpers for deriving Quip account IDs, generating public keys from seeds, and signing payloads into SCALE-encoded envelopes. To ensure the browser and runtime signing paths remain byte-identical, the crate includes a \generate\_golden\_vectors\ example and a \golden\_parity\ test suite that pins specific seed-to-public-key and seed-to-envelope outputs. Additionally, \transaction-crypto-wasm\ exposes these core functions to JavaScript via \wasm\_bindgen\, allowing browser signers to derive seeds from BIP39 mnemonics, sign payloads, and verify envelopes using hex-encoded I/O.
crates/transaction-crypto-core · high confidence
MinerRegistry schema V2 with hardware/runtime metadata and Metal miner support
The MinerRegistry pallet now accepts a V2 node descriptor that includes optional \system\_info\ (OS, CPU, memory, GPU details) and \runtime\ (Python, Quip version, Docker image) fields, and introduces a new \Metal\ miner kind for Apple Silicon GPUs. Because the V2 schema changes the storage layout, an on-chain migration clears all existing descriptors and refunds their deposits, requiring miners to re-register their updated descriptors on next restart.
pallets/miner-registry · high confidence
New Docker image for pallet-revive EVM RPC service
A new Dockerfile (docker/revive-eth-rpc.Dockerfile) has been added to build and run the pallet-revive EVM RPC binary. The image is based on Rust 1.95.0 and Debian Bookworm, fetching a specific pinned revision of the Polkadot SDK to ensure a reproducible build. It exposes ports 8545 and 9616, uses SQLite for receipt indexing in archive mode, and runs the eth-rpc binary as a non-root user.
docker · high confidence
New Python bindings for the H4 hybrid transaction signer
Introduces the \quip-signer\ Python package, providing PyO3 bindings to the H4 (sr25519 + FN-DSA-512) transaction signing engine. Users can now sign payloads and verify envelopes in Python using the \HybridSigner\ class or free functions, with byte-identical behavior to the browser WASM signer and runtime verifier. The API exposes seed derivation from BIP39 mnemonics or hex seeds, public key and account ID generation, and payload signing that strictly follows the H4 domain framing and Substrate's 256-byte hashing convention.
crates/transaction-crypto-py · high confidence
New operational and CI scripts for benchmarking, key management, and Python distribution
This change introduces a suite of new shell and Python scripts in the \scripts/\ directory to support the new quantum validation and hybrid signing capabilities. \scripts/run-benchmarks.sh\ and \scripts/check-weights-staleness.sh\ automate the generation and validation of pallet weights, ensuring that changes to benchmarkable surfaces trigger regeneration. \scripts/derive-operator-keys.sh\ provides a tool for bootnode operators to generate BIP39 mnemonics, node keys, and hybrid genesis public material. \scripts/python-dists.sh\ and \scripts/quip\_signer\_wheel\_smoke.py\ establish a build, smoke-test, and publish pipeline for the \quip-signer\ Python wheel, including content guards to prevent empty namespace packages. Additionally, \scripts/start-local3.sh\ allows for launching a local 3-node test network, while \scripts/test-browser-signer-integration.sh\ and \scripts/test-xqvm-onchain.sh\ provide integration testing for the browser signer and on-chain XQVM functionality respectively.
scripts · high confidence
New quantum-validation crate for Ising model verification
Added the \quantum-validation\ crate, providing deterministic, \no\_std\ primitives for validating quantum Ising proofs. This includes exact energy computation in milli-precision fixed-point arithmetic, symmetric Hamming distance and diversity scoring for solution sets, and deterministic puzzle generation seeded by a full 256-bit nonce. The crate also handles bit-packed solution encoding/decoding and structural validation of spin configurations and topologies, ensuring parity with the Python reference implementation for energy, diversity, and topology consistency checks.
crates/quantum-validation · high confidence
New root-controlled faucet operations pallet
Added a new \pallet-faucet-ops\ that provides a single privileged dispatchable, \mint\, allowing root-origin callers to create new token balances for any target account. This operational tool is designed for development-time or administrative token issuance, intentionally excluding rate limiting, allowlists, or user-triggered flows, and relies on the configured currency implementation to handle the actual balance creation and total issuance updates.
pallets/faucet-ops · high confidence
Node supports hybrid post-quantum consensus and signing
The node now uses the \quip\_protocol\_runtime\ instead of the generic template runtime, enabling hybrid post-quantum transaction signing and BABE/GRANDPA consensus. A new \insert-hybrid-key\ CLI command allows validators to insert hybrid BABE (H444) and GRANDPA (H244) session keys into the keystore, automatically deriving the correct key-type IDs. Benchmarking tools have been updated to use hybrid pairs for transaction generation, and the RPC layer now exposes BABE-specific APIs with the necessary keystore and worker dependencies.
node · high confidence
Behavioural changes
Adopts H4 hybrid signing scheme (sr25519 + FN-DSA-512) for transactions
Transaction signing has migrated to the H4 hybrid scheme, combining sr25519 and FN-DSA-512. This change introduces new types for hybrid public keys, signatures, and pairs, and defines a signature envelope that carries both the hybrid public key and the signature bytes. Account IDs are now derived from the hybrid public key using blake2\_256 with a fixed domain separator, ensuring compact 32-byte identifiers while maintaining collision resistance. The runtime can now verify transactions using this hybrid scheme, with verification logic checking both the signature validity and the derived account ID match.
crates/transaction-crypto/src · high confidence
CI toolchain and publish images refactored for stability and performance
The CI pipeline now uses dedicated, pre-built Docker images for the Rust toolchain and PyPI publishing, replacing previous in-pipeline builds and runtime package installations. The new \ci-toolchain\ image pins Rust to 1.95.0 to avoid a regression in the wasm runtime build and bakes in essential dependencies (such as \jq\, \python3-venv\, \nodejs\, and \cargo-sweep\) to eliminate slow, flaky \apt-get\ and \pip\ installs during job execution. A new \ci-pypi-publish\ image provides a minimal environment with \twine\ and TLS certificates for secure artifact uploads, ensuring that release jobs no longer depend on system package managers or the main Rust toolchain.
.gitlab · high confidence
Quantum PoW pallet introduces topology-aware difficulty and continuous block-based decay
The \pallet-quantum-pow\ difficulty system has been rewritten to be spec-aware and block-native. Difficulty is now keyed by topology hash, allowing distinct energy curves calibrated against each topology's specific node/edge counts and allowed value sets (h, j, spin). The decay mechanism has shifted from a timestamp-based model to a continuous per-block decay aligned with \EpochLength\, ensuring validation does not depend on timestamp availability. Additionally, rounds that run past their target block count now ease faster continuously, rather than relying on a single post-win adjustment, and the system exposes live and historical difficulty to miners via new runtime APIs.
pallets/quantum-pow · high confidence
Runtime migrates to BABE/GRANDPA consensus and hybrid transaction signing
The runtime replaces the Aura consensus mechanism with BABE and GRANDPA, initializing authorities via pallet\_session and supporting hybrid transaction signatures (V4/V5) as advertised in the Metadata V16 extrinsic section. This change includes new genesis configuration presets for the quip-testnet that load operator BABE and GRANDPA public keys from hex files, adds runtime benchmarks and weight definitions for block and extrinsic execution, and introduces conformance tests to ensure the Metadata V16 output and signed extrinsic validation behave correctly with the new signing infrastructure.
runtime · high confidence
Updated benchmark weights for pallet\_template
The benchmark weights for the \pallet\_template\ pallet have been regenerated, resulting in updated execution costs for the \do\_something\ and \cause\_error\ dispatchables. Specifically, the weight for \do\_something\ decreased slightly (from 9,000,000 to 8,356,000 picoseconds), while the weight for \cause\_error\ increased (from 6,000,000 to 9,698,000 picoseconds) and the measured storage read cost rose from 32 to 103. These changes reflect new benchmarking data generated using Substrate Benchmark CLI version 54.0.0 on an AMD Ryzen 7 3700X processor, replacing the previous values generated on a MacBook Pro.
pallets/template · high confidence
Test coverage
Added test suite for the Quip browser transaction signer
Added unit and integration tests for the new \@quip-network/quip-signer\ package. The unit tests verify that the TypeScript wrapper correctly implements the signing contract (including payload hashing rules for different sizes and envelope validation) against Rust-generated fixtures. The integration tests confirm that transactions signed by the injected signer are successfully submitted to a local node, including specific smoke tests for the \pallet-xqvm\ conformance vectors and the \pallet-revive\ account funding workflow.
js · high confidence
Dependencies
Workspace restructuring and dependency updates for new pallets and signing crates
The workspace has been restructured to include several new components: \quantum-validation\, \transaction-crypto\ (with PyO3 and WASM bindings), and FRAME pallets for EVM chain ID, faucet operations, miner registry, quantum compute mempool, quantum proof-of-work, and XQVM bytecode execution. The \polkadot-sdk\ dependency has been switched from the official Parity repository to a Quip Network fork, and the workspace version has been bumped to 0.3.2. Additionally, the consensus mechanism has been updated from Aura to Babe, and new cryptographic dependencies like \pqhybridsign\ and \xqvm\ have been integrated.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 61 → 58 (-2.5)
- Rubric changed (rubric-2026.09.10 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 81 → 79 (-1.9)
- Architecture 100 → 99 (-1.5)
- Maturity 75 → 74 (-0.6)
- Readiness 50 → 43 (-7.9)
- Security 53 → 61 (+7.9)
- Event Sourcing 100 → 100 (+0.0)
- Performance 85 (new)
Resolved (9)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (docs/hybrid-crypto-dedup-plan.md)
- Documentation: no installation or build instructions (docs/indexer-free-quantum-storage-rpc-plan.md)
- Documentation: no installation or build instructions (docs/rust-setup.md)
- Documentation: written for insiders
- Hotspot: node/src/command.rs (node/src/command.rs)
- Off-boarding risk: anonymized user #1
- Off-boarding risk: anonymized user #2
- TooManyMethods: Pallet (pallets/quantum-pow/src/lib.rs)
New (33)
- Asymmetric API for signing/verification across modules. HybridTxSignature (high-level) has a sign method, but HybridTxSignatureBytes (low-level/raw bytes) only has verify. There is no sign method on the low-level type, and no verify on the high-level type. This forces users to know which layer they are at to perform the opposite operation, and makes it unclear how to verify a signature created by the high-level type without converting to bytes.
- Banned license: array-bytes
- Banned license: array-bytes
- Banned license: gmp-mpfr-sys
- Banned license: pqhybridsign
- Banned license: rug
- Banned license: smoldot
- Banned license: smoldot-light
- Banned license: xqvm
- Documentation: contradicts the code (docs/ci-cache.md)
- Documentation: contradicts the code (docs/h2-h4-integration-plan.md)
- Duplicate intent with confusing naming. energy_of_solution and energy_of_solution_indexed perform the same calculation. The distinction is whether the caller passes raw node/edge lists or a pre-computed TopologyIndex. This forces the user to know internal implementation details (indexed vs non-indexed) to choose the correct function, rather than having a single entry point that handles both or clearly separating 'computation' from 'indexing'.
- Duplicated block (5 lines × 2) (pallets/xqvm/src/benchmarking.rs)
- Duplicated block (6 lines × 2) (pallets/quantum-pow/src/lib.rs)
- Duplicated block (7 lines × 2) (pallets/xqvm/src/benchmarking.rs)
- Duplicated block (8 lines × 3) (scripts/generate_quantum_validation_fixtures.py)
- Fragmented validation logic with inconsistent input requirements. validate_solution requires raw spins and full topology/parameters to return a bool, while SolutionValidation struct exists to hold validation results (including errors and energy). There is no clear separation between 'checking validity' and 'computing metrics'. Additionally, validate_topology_consistency seems to duplicate the topology-checking portion of validate_solution but with different signature (no spins).
- High CVE: [GHSA redacted] (Cargo.lock)
- Hotspot: pallets/xqvm/src/lib.rs (pallets/xqvm/src/lib.rs)
- Inconsistent parameter types for the same logical operation across module boundaries. crypto takes a typed HybridPublic, crypto_core takes raw bytes &[u8], and wasm takes a hex string str. While this is common in layered architectures, the lack of a clear conversion path or unified interface means users must manually handle encoding/decoding depending on which module they call, leading to potential errors (e.g., passing bytes to the wasm layer).
- …and 13 more
Changes since last survey
- 64 commits — 49 feature/other, 15 fixes
By area
- pallets/xqvm — 19 commits
- (repo) — 16 commits
- pallets/quantum-pow — 10 commits
- (root) — 9 commits
- runtime/src — 4 commits
- scripts/test-xqvm-onchain.sh — 2 commits
- crates/quantum-validation — 1 commit
- docs/polkadotjs — 1 commit
- docs/quantum-pow-difficulty-controller-decisions.md — 1 commit
- js/quip-signer — 1 commit
Notable commits
- fix: Merge branch 'fix/grandpa-aux-leak' into 'main'
- fix: Merge branch 'fix/quantum-pow-k4-envelope' into 'main'
- fix: Merge branch 'ru/fix/bump-0.3.2' into 'main'
- fix: fix(node): bound GRANDPA concluded-round aux write rate
- fix: fix(pallet-xqvm): benchmark store_program against a TARGET sled
- fix: fix(pallet-xqvm): bound the CFG the verifier builds, not the TARGET count
- fix: fix(pallet-xqvm): bound the VM's allocation budget
- fix: fix(pallet-xqvm): bound the basic-block count a stored program may have
- fix: fix(pallet-xqvm): map every VM fault to a distinct dispatch error
- fix: fix(pallet-xqvm): price execute honestly and reject a zero step limit
- fix: fix(pallet-xqvm): report the released deposit and anchor the layout
- fix: fix(pallet-xqvm): take a storage deposit and add a removal path
- fix: fix(pallet-xqvm): verify bytecode at store time
- fix: fix(quantum-pow): restore the submit_proof calibration envelope
- fix: fix: bump to 0.3.2 and inherit from the workspace
- change: Merge branch 'ci/float-channel-tags' into 'main'
- change: Merge branch 'feature/quantum-pow-continuous-decay' into 'main'
- change: Merge branch 'feature/qui-1012' into 'main'
- change: Merge branch 'feature/qui-1014' into 'main'
- change: Merge branch 'feature/qui-1015' into 'main'
- …and 44 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
QuipNetwork/quip-validator was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c236a6866951ea29a91c281188883daed928bc7b — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5ff527f25b99.