Repository navigation
Releases: Decentral-America/node-scala
Release list
v1.7.0
First official release
This is the first real GitHub Release for node-scala (v1.6.3 and earlier were git tags only, never published). It triggers the full publish cascade: Docker Hub (node + RIDE runner images), Maven Central (Sonatype), npm, and the aptly apt repo.
Consensus safety fix
HotStuff committee-transition quorum-safety gap. HotStuffVotePool.onVote checked quorum against only the latest committee snapshot handed to it, so a committee-membership change (a generator added or removed mid-round, e.g. via a committed-generators period rollover) could let a stake set retroactively satisfy a threshold it never actually held under every committee genuinely live during that target's vote accumulation — the same class of transient-unsafe-majority bug CockroachDB found and fixed via joint consensus in etcd/raft.
Fixed to require the accumulated signer set to independently satisfy quorum against every distinct committee snapshot observed during a target's accumulation — monotonically safe in both the shrink and grow directions. Also fixed along the way, all found by a dedicated adversarial (opus-level) review pass:
- a stale vote from a since-removed generator could permanently stall QC formation for a target — now evicted automatically
- unbounded memory growth in the vote pool for targets that never resolve — now pruned on view/height advance
- a formed QC was broadcast to peers before local self-verification — reordered
- corrected/tightened the safety-invariant documentation
Two independent adversarial reviews were run against this fix before merge; both found real issues, both were fixed and re-verified. Full node-tests regression: 2651/2651 passing.
API
GET /node/statusnow includesgenerationPeriodLength— this deployment-specific constant (mainnet/testnet/stagenet differ) was previously unexposed by any endpoint.
Testing infrastructure (test-only, no runtime behavior change)
Enterprise-grade E2E hardening across a deterministic-simulation HotStuff harness, chaos/nemesis fault injection (Docker network partitions via ToxiProxy), property-based operation fuzzing with balance-conservation invariants, OpenAPI schema-conformance CI gating, and CI cadence tiering (push vs. PR vs. nightly).