Faster block fan-out to all peers and a higher getstandardfee recommendation.
Supported on Mainnet until block 3,643,309, around December 5, 2026. Upgrade warnings start about three days earlier.
Before you upgrade
getstandardfeenow recommends at least 1,000 zatoshis per logical action. Wallets that use it will pay more. The mempool's acceptance fee and the RPC's result shape are unchanged (#2060).- New file next to the identity key. Native discovery now stores its last record sequence in
<identity_dir>/<network>.<node_id>.zakura-discovery-sequence. Keep it with the identity key if you back up or move that directory (#2013).
Highlights
- Relayed blocks used to reach the last peers 9 to 12 seconds late, in 3 second waves. The default
advert_window_minandadvert_window_maxare now 1000, so every peer gets the advert at once. Configs that still hold the old 32/64 defaults, such as generated ones, load as the new defaults (#2078). - The legacy advertiser waits 2 seconds instead of 3 for a peer to request an advertised block (#2079).
- Less verification and mempool work: v5/v6 transaction digests are computed once per block, mempool cleanup no longer rescans the pool, and
getblocktemplateselection is cheaper on large mempools (#2022, #2048, #2054).
Full changelog
Added
- Added an optional loopback-only raw trace endpoint.
GET /traceslists the
JSONL trace tables, andGET /traces/<table>streams one table with standard
HTTP byte ranges and anETag, so collectors can follow a growing table with
If-Range. It is disabled by default and requirestrace_dir
(#2072).
Changed
- Verifying a block computes each v5 and v6 transaction's ID and authorizing-data
digest once, and reuses them for transaction verification and the block's
authorizing-data commitment check, instead of recomputing the digests
(#2022). - Reduced block and transaction-expiry cleanup work by removing known mempool
transaction IDs without rescanning the pool
(#2048). - Raised the minimum fee recommendation from
getstandardfeeto 1,000
zatoshis per logical action
(#2060). - Classify the compatible performance improvements and fee recommendation
increase as a patch node release; library crates retain their independent
version requirements (#2074). - Raised the default
advert_window_minandadvert_window_maxfrom 32 and 64
to 1000, so every block is advertised to up to 1000 peers at once. Relayed
blocks previously reached the last peers 9 to 12 s late in 3 s waves. Config
files that still hold the previous defaults, such as files made by
zakurad generate, now load as the new defaults. Other configured values are
kept (#2078). - Reduced how long the legacy block advertiser waits for a peer to request an
advertised block from 3 s to 2 s, so peers that already have the block hold
up new-block fan-out for less time
(#2079).
Fixed
- Fixed header sync re-requesting a VCT repair target from a peer that refused
it before that peer advertised a new status, and capped such refusals at
three per peer per repair episode. A peer's repair failures now survive its
session being replaced, and hold for one readmission cooldown after it
disconnects (#2000). - Fixed block sync giving a peer a fresh Status allowance each time it reopened
the block-sync stream. The connection now keeps its Status pacing across
stream replacements
(#2012). - Fixed block sync advertising free download slots for a peer whose outbound
queue was full
(#2012). - Fixed native discovery authoring an older self-record after a backward clock
step across a restart, which left peers dialing the node's previous addresses
until the old record expired. The node now stores its last authored sequence
beside its identity key, in
<identity_dir>/<network>.<node_id>.zakura-discovery-sequence
(#2013). - Fixed a native P2P peer being able to stall its connection for up to 10
seconds by withholding stream credit while the node reopened one of its
service sessions. The reopen now runs beside the connection's other work and
reserves the service only once its streams are open. The connection's first
session opens also end at once when the node closes the connection
(#2014). - Reduced
getblocktemplatetransaction-selection work for large mempools by
avoiding repeated rebuilds of fee-sampling weights
(#2054). - Fixed maintained Zakura redials that credited connection setup time toward
a healthy connection, and an alternate connection that lifted the ten-minute
ALPN-mismatch backoff
(#2062). - Reduced redundant block and transaction decoding when fetching inventory over
Zakura compatibility streams
(#2057).
Also in CHANGELOG.md.