This release is a major step forward for both node operators and integrators.
It makes integrations much simpler, significantly improves sync/pruning behavior, and delivers meaningful storage + processing performance gains.
Highlights
-
VSPC API v2 (
GetVirtualChainFromBlockV2) (major integrator improvement)
NewGetVirtualChainFromBlockV2returns virtual-chain updates together with per-chain-block accepted transaction data in a single flow, with support for incremental verbosity levels andminConfirmationCount.
Practical impact: integrations can now retrieve sender/source info and fee-relevant context directly, without stitching together multiple async flows.
In plain terms: DAG complexity is better abstracted away, and integrating Kaspa now feels much closer to integrating a classic chain. See detailed specification below. -
IBD catchup improvements (faster, safer recovery and sync progression)
The IBD/catchup flow was improved to better handle pruning-point movement, trusted body syncing, and transitional sync states.
Practical impact: smoother initial sync and catchup behavior, more robust recovery, and more predictable progression under real-world node conditions. -
Performance + storage optimizations (significant practical gains)
Two core changes drive most of the gain:compressed level parentsin headers/network handling, andon-the-fly higher-level relations, replacing always-on higher-level relation maintenance for all headers with targeted reconstruction only where needed during pruning-proof processing (for a negligible fraction of the data).
Practical impact: lower storage pressure (especially on archival setups), reduced write overhead, faster header processing, and faster pruning work.
Contributors reported large real-world improvements, including up to ~3x faster header-stage IBD on some machines. -
Pruning proof algorithm refactor + stability upgrades
Pruning proof build/validate logic was reworked with guided reconstruction and cleaner per-level context handling.
Practical impact: improved correctness/stability posture, more predictable behavior under load, and better long-term maintainability of pruning proof internals.
VSPC API v2 Specification (GetVirtualChainFromBlockV2)
Description
Adds GetVirtualChainFromBlockV2, a non-breaking virtual-chain RPC that returns chain updates together with per-chain-block accepted transaction data, controlled by an optional incremental verbosity level.
RPC
Operation: GetVirtualChainFromBlockV2
Opcode: RpcApiOps::GetVirtualChainFromBlockV2 = 151
Input / Output
| Direction | Field | Type | Notes |
|---|---|---|---|
| In | startHash
| Hash
| Required |
| In | dataVerbosityLevel?
| None | Low | High | Full
| Optional; incremental; default: Full
|
| In | minConfirmationCount?
| u64
| Optional; filters added-chain blocks |
| Out | removedChainBlockHashes
| Hash[]
| |
| Out | addedChainBlockHashes
| Hash[]
| |
| Out | chainBlockAcceptedTransactions
| RpcChainBlockAcceptedTransactions[]
| Per added-chain-block accepted tx data |
Types
RpcChainBlockAcceptedTransactions
RpcChainBlockAcceptedTransactions {
chainBlockHeader: RpcOptionalHeader, // accepting chain block header (verbosity-gated)
acceptedTransactions: RpcOptionalTransaction[], // transactions accepted by that chain block (verbosity-gated)
}Notes
- Non-breaking addition: existing
GetVirtualChainFromBlockis unchanged. - Verbosity is incremental (
FullincludesHigh,Low, andNone). - If
dataVerbosityLevelis omitted, the server defaults toFull. minConfirmationCountfilters returned added-chain blocks by confirmation distance from the virtual tip.
Protobuf message IDs
GetVirtualChainFromBlockV2RequestMessage getVirtualChainFromBlockV2Request = 1114;
GetVirtualChainFromBlockV2ResponseMessage getVirtualChainFromBlockV2Response = 1115;
Additional notable additions
- RocksDB preset system for archive/HDD use cases, plus WAL-directory support and cache controls.
- In-house Rusty Kaspa Stratum Bridge released as BETA.
- Ongoing Crescendo cleanup and consensus/infrastructure polish.
Upgrade notes
- Database schema version was upgraded (current version is
6).
Upgrading from older DB versions is supported, but downgrading later to older node versions may require deleting the DB. - On upgrade from old DB versions, node startup requires confirmation (or
--yesin automation). - Rust toolchain/workspace requirements were updated in this cycle (
edition = 2024, workspacerust-version = 1.88.0).
New contributors
- @freshair18 made their first contribution in #699
- @KaspaSilver made their first contribution in #707
- @Leon1777 made their first contribution in #716
- @danwt made their first contribution in #703
- @x100111010 made their first contribution in #694
- @gcpreston made their first contribution in #762
- @avishai12321 made their first contribution in #757
- @Manyfestation made their first contribution in #765
- @LiveLaughLove13 made their first contribution in #779
- @Zorglub4242 made their first contribution in #771
Full Changelog: v1.0.1...v1.1.0