QUB Core v1.8.4 / HF128 — Mining and Network Liveness
HF128 is a mandatory operational-reliability release. It introduces no chain
upgrade, no activation height and no consensus rule change.
Release identity
QUB Core: 1.8.4
Hotfix: HF128
Package generation: v184
Canary correction: r2
Windows release correction: r3
New activation height: none
chain_upgrade: false
P2P protocol: 2 unchanged
Fast Chain Engine: QUB-FCE-1 unchanged
Protocol Epoch 2: #24000 unchanged
Post-Epoch-2 block version: 2 unchanged
The r3 source supersedes r2 for public Windows builds. It corrects the embedded
Windows ProductVersion/FileVersion to 1.8.4 and makes every native Cargo
build fail closed before packaging, preventing stale executables from surviving
a failed build. It changes no Rust runtime, Linux binary behavior, consensus,
P2P, chain state, seed configuration or activation rule; the deployed r2 seed
rollout remains valid.
Mining power and telemetry
- Restores the proven full-power automatic CPU plan at 100%: two independent
nonce lanes per logical processor, with no fixed software worker cap. - Keeps lower CPU percentages on the ordinary logical-processor capacity plan
and applies the requested active/idle ratio without a 250 ms sleep ceiling. - Separates GPU batch tuning from GPU power. The GPU percentage now controls a
measured, interruptible active/idle duty ratio; 100% dispatches continuously. - Tunes each GPU from several measured samples per candidate batch and reuses
the selected batch for the mining session. - Bounds a single OpenCL dispatch to a watchdog-safe nonce chunk. This is not a
total-work or hashrate cap: the next consecutive chunk starts immediately at
100% power. - Applies CPU/GPU percentage, override and device changes to active mining by
retaining the old controller until its explicitStoppedacknowledgement;
no replacement OpenCL generation starts from a wall-clock guess. - Reports applied CPU/GPU duty rather than echoing an unapplied GUI preference.
- Corrects round-final CPU rate timing and per-device GPU cumulative counters.
- Prevents impossible manual CPU plans from entering an endless retry storm.
High-power authorization remains mandatory at 85% or above and for manual
overrides. Increasing into that range stops the old plan and requires an
explicit new confirmation.
Pool liveness and QUB Melt compatibility
HF127 had two independent pool-wide stop conditions:
- A
POOLBLOCK1containing QUB Melt could never satisfy both the generic
claimable-fee equation and the legacy pool raw-fee payout equation. - A pool with no confirmed PPLNS score waited for a solo-mined block to confirm
its first pending share.
HF128 fixes both without changing validation:
- Ordinary blocks continue to use
POOLBLOCK1and unchanged consensus PPLNS. - A selected QUB Melt uses a markerless, policy-tagged compatibility coinbase.
Its QUB outputs use the same deterministic pool split, but old HF127 nodes see
an ordinary generic block and accept the already-correct claimable reward. - Native-JIN-fee transactions are deferred from a markerless compatibility
block so legacy JIN fee accounting cannot assign them with solo semantics. - An empty confirmed share window can be bootstrapped from valid current-parent
shares selected into the same markerless compatibility block. The following
parent returns automatically to ordinaryPOOLBLOCK1PPLNS. - Reserves exactly one valid target-pool share before the global per-block share
cap, so an older backlog from other pools cannot starve a new pool. - GUI, CLI pool mining and RPC templates use the same centralized planner.
- RPC v1 keeps
mode: "pool"; additivepool_candidate_modeand
compatibility_reasonfields expose HF128 policy without breaking miners.
POOLCOMPAT1 is diagnostic/template policy only. Consensus deliberately does
not parse it. Existing protocol-v2 HF127 nodes accept these blocks unchanged.
Faster and safer synchronization
- Removes the unconditional full-chain-from-genesis request on every outbound
handshake. - Requests one missing suffix, then expands the overlap only when the first
response cannot connect. - Suppresses duplicate requests for the same local/remote view for 30 seconds.
- Retains HF127 protocol-2 Chain count windows for rolling continuation
compatibility. Byte-cap framing is deferred until peers can negotiate it. - Queues manual Sync/Repair behind an active automatic catch-up instead of
silently discarding the manual request. - Rejects connections that report the local node ID through another DNS alias.
- Learns and process-quarantines an outbound DNS alias after that alias reports
the local node ID. This stops a legacy generic seed name that resolves back
to AMS3 from re-entering every heartbeat/sync/relay retry loop. - The quarantine is scoped to network + data directory and is deliberately
memory-only. A restart performs one fresh identity check, so a legitimate
future DNS move is not permanently suppressed. - Deduplicates official seed evidence by node ID, not hostname.
- Ignores empty-ID/empty-tip responses when selecting an official best tip and
serializes first-run node-ID creation inside a process. - Shows one HTTP publication as one observation in Peers instead of duplicating
it under two seed labels.
Explorer-facing Core API consistency
The embedded/standalone Explorer API now loads an immutable Fast Chain Engine
snapshot and the identity of that exact commit in one operation. A concurrent
block commit can no longer cache generation N+1 under generation N and leave
API readers temporarily stuck on the wrong cache identity.
Explorer v0.7.2 and Jinex Wallet were audited read-only. Their remaining client
and gateway timeout/cache changes are intentionally deferred to their own
releases; HF128 does not modify either private/public application package.
Updater recovery
- Bounded HTTPS downloads with three attempts and a GUI watchdog.
- Mandatory 64-hex SHA-256 for manifest-based updates.
- Size limits,
.partstaging, version/hash-specific filenames and atomic
promotion only after verification. - Reuses an already verified staged installer instead of downloading it again.
- Keeps Ready/Installing state out of the periodic recheck loop.
- Surfaces Check-now worker, staging and installer-launch failures in the GUI.
- Preserves user Auto check/download/install opt-outs.
- Accepts an unsigned private installer only when manifest, redirects and
artifact stay on the exact official HTTPS origin; custom origins require the
pinned valid Authenticode signer. - Re-verifies size, digest, ProductVersion and signature immediately before
installer execution. - Checks the installer exit code, relaunches the previous version on failure and
writes the post-update restart marker only after a successful install.
Publish the installer first and manifest.json last. Never publish an empty or
placeholder SHA-256.
Required release gates
cargo test --locked
cargo build --locked --release --bin qubd
cargo build --locked --release --bin qub-core
cargo build --locked --release --bin qub-rpc-miner
cargo test --locked hf128_ -- --nocaptureRun all retained HF123/HF125/HF126/HF127 real-process E2Es, the two-seed
identity/tip checks, a pool bootstrap block, a pool+Melt compatibility block,
and a clean Windows updater install before publication.