DigiByte Core v9.26.5 DigiDollar Release Notes
DigiByte Core v9.26.5 is a patch release on top of v9.26.4 in the formal
DigiByte v9 / DigiDollar mainnet release line, and it is the first release
after DigiDollar activated on mainnet. DigiDollar locked in through BIP9
miner signaling and became active at block 23,869,440 on 17 July 2026,
alongside the AlgoLock retired-algorithm rule. Taproot has been active since
block 21,168,000.
v9.26.5 contains two changes:
- A startup fix — the DigiDollar oracle startup scan no longer hangs the
node for ~15 minutes or longer on mainnet; it now completes in a few seconds. - Deployment burial (BIP90) — the Taproot, DigiDollar, and AlgoLock soft
forks, all now active on mainnet, are converted from live BIP9 version-bits
deployments into buried deployments with hardcoded activation heights — the
same housekeeping Bitcoin Core performed for CSV and SegWit after their
activations.
Neither change alters which blocks or transactions are valid on the current
mainnet or testnet chains. The burial does change several RPC output shapes
and regtest options — see "Breaking Interface Changes" below before upgrading
anything that parses deployment status.
Changes In v9.26.5 Since v9.26.4
- Fixed the ~15-minute DigiDollar oracle startup hang on mainnet (RPC error
-28 / "Verifying blocks…" / stalled P2P while the node started). Startup is
now a few seconds. - Buried the Taproot, DigiDollar, and AlgoLock deployments (BIP90): activation
is now a fixed per-network height; the BIP9 state machine no longer runs for
them and blocks no longer signal bits 2, 23, or 0. getdigidollardeploymentinfohas a new, simpler "buried" output shape (the
BIP9 signaling fields are gone), andgetdeploymentinfonow reports the
three deployments astype: "buried".getblocktemplateversion fields are permanently clean of deployment
signaling bits; therulesarray now always liststaproot,digidollar,
andalgolockonce active.- Regtest testing knobs changed:
-digidollaractivationheight=Nnow activates
DigiDollar at exactly height N; new
-testactivationheight=taproot|digidollar|algolock@HEIGHToverrides exist;
-vbparamsfor the three buried names is now a startup error. - Versionbits warning heights raised so historical signaling does not trigger
spurious "unknown new rules" warnings. - Documentation updated across the DigiDollar doc set; full release notes in
doc/release-notes/release-notes-9.26.5.md; new unit and functional tests
pin the burial heights and boundary behavior.
Read This First
DigiDollar is live on mainnet. There is nothing left to signal and nothing
to configure: any v9.26.5 node on mainnet enforces DigiDollar, AlgoLock, and
Taproot from their recorded activation heights.
Upgrading is drop-in: shut down, replace binaries, restart. No reindex is
required and no configuration changes are needed for normal full or pruned
nodes. Wallets, mining, pruning, and oracle operation continue to work as in
v9.26.4.
Mainnet is normal mainnet:
| Setting | Value |
|---|---|
| Network | DigiByte mainnet |
| P2P port | 12024
|
| RPC port | 14022
|
| Data directory | default DigiByte mainnet data directory |
| Genesis block | unchanged DigiByte mainnet genesis |
Fix: DigiDollar Oracle Startup Hang (~15 Minutes → Seconds)
What Happened
On startup, a DigiDollar node rebuilds its in-memory oracle price and
volatility state by scanning the last 172,800 blocks (~30 days). In v9.26.4,
every scanned block re-evaluated the DigiDollar activation gate through a code
path that allocated a throwaway versionbits cache and re-ran the BIP9
threshold state machine from scratch — roughly 172,800 times, with nothing
memoized. On mainnet, right after activation, this took ~15 minutes, held the
main lock before RPC warmup finished (so RPC returned error -28, the GUI sat
on "Verifying blocks…", and P2P stalled), and wrote 150,000+ per-block log
lines.
The Fix
The startup per-block gate now goes through the node's shared, memoized
versionbits cache — the exact same lookup block validation already uses — and
the per-block log flood was replaced with a single aggregate line. Verified
live on mainnet: the oracle startup scan dropped from ~15 minutes to ~3
seconds, and the node came up healthy and caught up.
This is a pure performance change with no consensus impact: unit and
functional tests prove the startup gate computes the identical activation
result at every height, and that a restart equals a -reindex equals the
pre-restart oracle state.
With the deployment burial below, every DigiDollar activation check in the
node becomes a single height comparison, which removes this entire class of
cost permanently — including the per-block cost that block validation itself
was still paying during sync.
Housekeeping: Taproot, DigiDollar, And AlgoLock Are Now Buried (BIP90)
What "Buried" Means
A soft fork activates once. After it is active and buried deep in the chain,
there is no reason to keep re-running the BIP9 signaling state machine for it
on every node forever. "Burying" a deployment (BIP90) replaces the state
machine with the recorded activation height, hardcoded in chainparams —
exactly what DigiByte and Bitcoin already did for CSV, SegWit, ReserveAlgo,
and Odo.
Activation Heights
The heights are the real, on-chain BIP9 activation heights — read from live
mainnet getdeploymentinfo and verified block-by-block on testnet26
(signaling in blocks 200–599, active at exactly 600):
| Deployment | BIP9 bit | Mainnet | Testnet26 | Signet / Regtest |
|---|---|---|---|---|
| Taproot (BIPs 340-342) | 2 | 21,168,000 | 0 (always active) | 0 |
| DigiDollar | 23 | 23,869,440 | 600 | 0 |
| AlgoLock (retired-algo rejection) | 0 | 23,869,440 | 0 (always active) | 0 |
Why Bury Them
- The BIP9 machinery serves no further purpose for these deployments: they can
never re-signal, time out, or fail. - It removes all remaining BIP9 threshold-state recomputation from block
validation and startup. Every DigiDollar activation check is now one height
comparison. - Blocks stop signaling bits 2, 23, and 0, so
getblocktemplateversion
fields are permanently clean for pool software (this also structurally
resolves the bit-23 version-rolling interference some SHA256D pool stacks
reported during signaling). - It matches upstream practice and shrinks the consensus surface.
What Deliberately Did NOT Change
- The static DigiDollar gates keep their historical floors:
nDDActivationHeight = nOracleActivationHeight = nDigiDollarMuSig2Height = 23,627,520on mainnet (600 on testnet26). The 23,627,520 floor is
intentionally below the 23,869,440 activation height; it continues to
drive the pruning floor, the prune lock, and the pre-floor collateral gate
exactly as in v9.26.4, so existing pruned nodes are unaffected. - The AlgoLock static backstop (
nGroestlDeactivationHeight = 23,808,000)
remains and is still enforced alongside the deployment check —
retired-algorithm blocks are rejected over exactly the same height ranges as
before. - Taproot script validation was already applied unconditionally, so the
Taproot burial has zero script-consensus effect.
Consensus Compatibility
A v9.26.5 node accepts and rejects exactly the same blocks as a v9.26.4 node
for every block on the current mainnet and testnet chains. The standard BIP90
caveat applies, as it did for Bitcoin's burials: only in the hypothetical of
an astronomically expensive deep reorganization back below the activation
heights could pre-burial and post-burial nodes judge a re-mined chain
differently. This affects no real chain and does not change the security model
in practice.
Versionbits Warnings
MinBIP9WarningHeight rises to 23,909,760 on mainnet (activation height plus
one 40,320-block confirmation window) and 800 on testnet26, so the historical
bit-2/23/0 signaling periods do not trigger spurious "unknown new rules
activated" warnings now that upgraded nodes no longer set those bits.
Breaking Interface Changes
RPC
-
getdigidollardeploymentinfohas a new shape. It now returns:enabled— whether DigiDollar is active at the current tiptype— always"buried"status—"active"or"defined"activation_height— the burial height (omitted only if the deployment
is disabled on the network)- plus the unchanged oracle/MuSig2 fields (
oracle_activation_height,
musig2_format_activation_height,oracle_pubkey_count,
oracle_consensus_required,oracle_total_slots,oracle_seed_peers,
musig2_session{...})
The BIP9 fields are removed:
bit,start_time,timeout,
min_activation_height,blocks_until_timeout,signaling_blocks,
threshold,period_blocks,progress_percent.statuscan no longer be
started,locked_in, orfailed.activation_heightnow reports the
exact activation height (previously a back-scan that could differ by one). -
getdeploymentinfo(and REST/deploymentinfo): thetaproot,
digidollar, andalgolockentries are now rendered as buried
deployments —{"type": "buried", "active": <bool>, "height": <N>}— with
nobip9sub-object. Anything reading
deployments.digidollar.bip9.statusmust switch toactive/height.
getblocktemplate
rulesnow always contains"taproot","digidollar", and"algolock"
once active (hardcoded, like"csv"; no!prefix, so clients that do not
understand them may safely proceed).vbavailableno longer mentions them, and the templateversionnever sets
bits 2, 23, or 0. Block versions on the network stop carrying those bits.- The
digidollar-oracleopt-in rule anddefault_oracle_commitment
mechanics are unchanged from v9.26.4.
Command-Line Options (regtest only)
-vbparams=taproot:...,-vbparams=digidollar:..., and
-vbparams=algolock:...are now a startup error ("Invalid
deployment"). Onlytestdummyremains a versionbits deployment.-digidollaractivationheight=Nnow activates DigiDollar at exactly
height N (it sets the buried height together with the static
DD/oracle/MuSig2 gates). Pre-burial, this knob ran real BIP9 signaling and
activation landed on the first 144-block window boundary at or above
max(432, N) — e.g. N=650 used to activate at 720. Scripts relying on the
old window-boundary timing must be updated.- New:
-testactivationheight=taproot@H/digidollar@H/algolock@Hset
only the buried deployment height. Fordigidollar@Hthe static DD/oracle
gates keep their regtest defaults (650), whilenDigiDollarMuSig2Heightis
derived asmin(nDDActivationHeight, DigiDollarHeight)and so follows H
below 650.-digidollaractivationheighttakes precedence when both are
given.
None of these affect mainnet or testnet operation.
Mining And Pools
No action is required. Templates keep working as in v9.26.4; the only visible
differences are that the template version field no longer carries any
deployment signaling bits and that rules explicitly lists the three active
soft forks. Pools that narrowed version-rolling masks or filtered bit 23
during the signaling period can drop those workarounds.
DigiDollar-aware mining is unchanged:
digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' sha256dWho Should Upgrade
Everyone, at normal operational convenience — this release contains no
consensus rule change for the live chains, so there is no coordination
deadline. Upgrade sooner if:
- You restart nodes regularly (the ~15-minute startup hang is fixed).
- You run infrastructure that parses
getdigidollardeploymentinfoor
getdeploymentinfo(block explorers, dashboards, exchange tooling) — update
your parsers for the new buried shapes at the same time. - You run regtest-based CI that uses
-vbparamsor
-digidollaractivationheight— migrate per the section above.
What Does Not Change
- Consensus validity of every block on mainnet and testnet26.
- Ports, data directories, network magic, genesis, addresses.
- Wallet files, DigiDollar positions, mint/send/redeem behavior, lock tiers,
collateral rules, DCA/ERR/volatility protection. - The oracle roster (35 slots, 7-signature MuSig2 quorum on mainnet/testnet)
and the v0x03 on-chain bundle format. - Pruning behavior and the DigiDollar prune floor (still anchored at
23,627,520 on mainnet). - P2P protocol, Dandelion++, BIP324 v2 transport option.
Useful Status Commands
Check chain and deployment state (note the new buried shapes):
digibyte-cli getblockchaininfo
digibyte-cli getdeploymentinfo
digibyte-cli getdigidollardeploymentinfoExpected on mainnet: every deployment reports "type": "buried" and
"active": true (only testdummy remains BIP9), and
getdigidollardeploymentinfo reports "status": "active" with
"activation_height": 23869440.
Check oracle and price state:
digibyte-cli getoracleprice
digibyte-cli getalloracleprices
digibyte-cli getoracles
digibyte-cli getdigidollarstatsTesting And Validation Coverage
- Full unit suite: 3,413 test cases, no errors — including a new
deployment_burial_testssuite that pins the per-network burial heights,
their confirmation-window alignment, the preserved activation floors, the
regtest knob semantics, and the exact activation boundary. - Full functional test suite: all tests pass. The DigiDollar activation tests
were rewritten from BIP9 signaling ladders to buried-boundary lifecycles
(pre-activation rejection, exact boundary flip, post-activation
mint/send/redeem, reorg-below-activation purge, multinode/IBD/reindex
parity, pruning). - The startup fix's consensus neutrality is pinned by unit and functional
tests (restart ==-reindex== pre-restart oracle state) and was verified
live on mainnet. - The burial heights were verified against the live mainnet chain and a fully
synced testnet26 node before hardcoding, and the change was reviewed by
independent adversarial passes over the consensus diff, the RPC/GBT surface,
and the test migration.
Documentation
doc/release-notes/release-notes-9.26.5.md— full release notes for this
version.DIGIDOLLAR_ACTIVATION_EXPLAINER.md— now documents the burial and
preserves the complete BIP9 activation history as a historical record.DIGIDOLLAR_EXPLAINER.md,DIGIDOLLAR_ARCHITECTURE.md,
DIGIDOLLAR_ORACLE_ARCHITECTURE.md,DIGIDOLLAR_WALLET_INTEGRATION.md,
DIGIDOLLAR_EXCHANGE_INTEGRATION.md— updated where the burial changed
interfaces or predicates.
Final Reminder
DigiDollar is live on DigiByte mainnet. v9.26.5 is the post-activation
maintenance release: it makes node startup fast again and retires the
now-finished activation machinery the safe, precedented way. Upgrade at your
convenience, and update anything that parses deployment status before you do.