Skip to content

Latest commit

 

History

History
534 lines (408 loc) · 20.4 KB

File metadata and controls

534 lines (408 loc) · 20.4 KB

DigiByte Core v9.26.2 DigiDollar Release Notes

DigiByte Core v9.26.2 is the formal DigiByte v9 release and the official DigiDollar mainnet activation release.

This is not another RC, PRE build, modified-mainnet rehearsal, or oracle-only test build. This release returns to normal DigiByte mainnet settings and is intended for the full public network. Everyone running DigiByte infrastructure should upgrade from v8.26.2 or older.

Read This First

DigiByte v9 is a major new release line since v8.26.2. It updates the DigiByte Core base to the Bitcoin Core v26.2 generation and adds the DigiDollar soft-fork deployment.

DigiDollar does not become usable on mainnet simply because this software is released. It activates through BIP9 miner signaling. You can follow deployment status at:

https://digibyte.io/activation

Mainnet is normal mainnet:

Setting Value
Network DigiByte mainnet
P2P port 12024
RPC port 14022
Onion target port 14122
Message start bytes fa c3 b6 da
Data directory default DigiByte mainnet data directory
Genesis block unchanged DigiByte mainnet genesis

Do not use the old pre-mainnet test ports, temporary data directories, or modified activation settings with this release.

Critical Consensus Fix: Retired-Algorithm Enforcement (Groestl)

Separately from DigiDollar, v9.26.2 ships an urgent consensus security fix. Every node on the DigiByte network must upgrade to v9.26.2. This is not optional and is independent of whether you use DigiDollar.

What Happened

DigiByte secures the chain with five mining algorithms (SHA256d, Scrypt, Skein, Qubit, Odocrypt). A sixth algorithm, Groestl, was retired in 2019 at the Odocrypt fork. The rule that rejected retired-algorithm blocks existed in the v7.17.3-era software, but it was accidentally dropped during the v8 Bitcoin Core rebase in 2021/2022. The function that knew Groestl was retired still existed and was used for difficulty and display, but the single line that enforced it when accepting a block was gone. Because nobody mined Groestl, its difficulty fell to the lowest possible setting and the gap stayed dormant for years.

Starting 2026-06-28 16:40:05 UTC, at block 23,751,096, an actor — using AI to analyze DigiByte's consensus rules — reactivated Groestl and began mining a sixth algorithm at floor difficulty.

No coins were stolen and no confirmed transactions were reversed. There is no evidence of a successful 51% attack, though the cheap mining is consistent with an attempt: across every competing branch the network has seen, none ever accumulated more total work than the honest chain, and the deepest reorganization of the active chain was 4 blocks. The damage was instability and a network split. Block times dropped from the 15-second target to roughly 12-13 seconds, and the network divided, because v8/v9 software accepted the Groestl blocks while old v7.17.3 software rejected them and forked onto a separate, slower chain.

The Fix

v9.26.2 restores retired-algorithm enforcement, the right way:

  • Blocks using a retired (Groestl) or unknown mining algorithm are rejected.
  • The rule is enforced in both header validation and block connection, so that -reindex and -reindex-chainstate also enforce it. A node cannot carry a post-activation retired-algorithm block forward after upgrading.
  • Existing Groestl blocks already buried in the chain are grandfathered (kept). No history is rewritten and no transactions are reversed.

Mainnet Activation Parameters (Groestl Deactivation)

Field Value
Deployment name algolock
Versionbit (readiness signal) 0
Signaling start June 29, 2026
Activation height (backstop) 23,808,000 (~7 days after release)
Enforcement reject retired (Groestl) and unknown algorithms
Existing Groestl blocks grandfathered below the activation height

The algolock versionbit is a readiness signal that lets miners advertise they have upgraded; you can watch adoption with getdeploymentinfo. The rule activates at block 23,808,000 regardless of signaling, giving the network roughly seven days to upgrade before retired-algorithm blocks are rejected.

All Nodes Must Upgrade

Every full node, miner, pool, exchange, explorer, wallet, and service must upgrade to v9.26.2. The majority of mining power is currently on the v8 line. That is fine, but all of it must move to v9.26.2 so that the upgraded chain is the strongest chain at activation and the network converges back onto a single chain.

v7.17.3 And Older Nodes Must Reindex On Upgrade

Nodes running the ~7-year-old v7.17.3 line reject every post-Odocrypt Groestl block, including the grandfathered blocks the healed chain keeps. They therefore cannot follow the unified chain on their own. Operators on v7.17.3 (or older) must:

  1. Upgrade to v9.26.2.
  2. Reindex or resync (start with -reindex, or perform a fresh sync) so the node accepts the existing chain history and reorganizes onto the correct chain.

Upgrading also provides Taproot, DigiDollar, and every other improvement added since v7.17.3.

Miners And Pools: The 7-Day Window

  • Upgrade to v9.26.2 within the ~7-day window before block 23,808,000.
  • Use the block version returned by DigiByte Core and do not strip the algolock readiness signal.
  • Once the majority of mining power is upgraded, retired-algorithm blocks are orphaned, the attack ends, and the network heals into one chain.
  • Optional, during the window only: miners who wish to actively push back can point hash power at Groestl themselves. This captures block rewards that would otherwise go to the attacker and drives Groestl difficulty up, removing the cheap-mining advantage. This is secondary to upgrading and keeps block times fast while it lasts; after activation, Groestl is rejected regardless.

Forensic detail (as of this release, mining was still ongoing): the Groestl blocks account for roughly 14-15% of all blocks since onset and are paid to two attacker payout addresses — dgb1qy5epvfs535a96tygn945a3a85lauh3ddu9v63y (coinbase tag SORG) and D8S5JWaCrpFsryGG1c9AzWKhbS7e7VZ4r8. Exchanges and custodians should flag deposits originating from these addresses until the network has healed.

Who Should Upgrade

All full nodes, miners, mining pools, exchanges, explorers, wallets, service providers, and oracle operators should upgrade.

Old nodes can continue to see normal DigiByte blocks, but they are not DigiDollar-aware. They cannot fully validate, display, index, mine, or serve the new DigiDollar functionality. Miners and pools must upgrade and signal for the soft fork if they want DigiDollar to activate.

Back up wallets before upgrading, especially wallets that hold oracle keys or will hold DigiDollar positions.

What Is DigiDollar?

DigiDollar is a native USD-denominated asset system built into DigiByte Core. Each DD is designed to track one US dollar by using over-collateralized DGB vaults, live oracle pricing, Dynamic Collateral Adjustment (DCA), Emergency Reserve Ratio (ERR), and volatility protections.

DigiDollar is not an external smart contract, wrapped token, or custodial bank reserve product. It is built into DigiByte consensus and wallet logic. Users keep their own keys. DGB remains the collateral and the fee asset.

The basic user flow is:

  1. Mint DD by locking DGB collateral in a Taproot vault.
  2. Send DD between DigiDollar addresses.
  3. Redeem DD by burning it and unlocking the corresponding DGB collateral under the consensus rules.

Major Changes Since v8.26.2

DigiByte Core v26.2 Foundation

v9.26.2 moves DigiByte onto the Bitcoin Core v26.2 generation of code. That brings a large base-layer modernization compared with v8.26.2, including newer networking, wallet, descriptor, RPC, mempool, build, and testing infrastructure.

Notable inherited Core-era changes include BIP324 v2 transport support, descriptor and Taproot wallet improvements, Taproot Miniscript support, stricter wallet loading behavior, newer package/RPC tools such as submitpackage, importmempool, getaddrmaninfo, getprioritisedtransactions, and the v26-era RPC deprecations and serialization cleanup.

DigiByte-specific consensus history remains intact. Historical DigiByte fork heights, multi-algo behavior, DigiShield, MultiShield, DigiSpeed, Odocrypt, and existing mainnet identity are not reset by this release.

DigiDollar V1

v9.26.2 adds the first mainnet DigiDollar release:

  • Native DD, TD, and RD DigiDollar address formats.
  • Mint, send, batch-send, and redeem flows.
  • Taproot collateral vaults.
  • Confirmed-only DigiDollar UTXO spending.
  • Canonical lock tiers, including the current short and long lock options.
  • Minimum mint, maximum mint, output floor, and maximum transfer enforcement.
  • DCA, ERR, and volatility protection logic.
  • Network-wide DigiDollar statistics and optional stats indexing.
  • Wallet restore, rescan, reindex, and reorg handling for DigiDollar state.
  • OP_CHECKPRICE reserved and disabled for V1.

Mainnet mint/redeem safety depends on fresh MuSig2 oracle price bundles. DigiDollar transfers are price-independent, but still require valid DD inputs and DGB fee inputs.

Oracle And MuSig2 System

DigiDollar mainnet uses a 7-of-35 oracle quorum. The oracle set publishes DGB/USD price data using MuSig2 v0x03 aggregate bundles. The aggregate signature is committed into the mined block when price-dependent DigiDollar mint or redeem transactions need it.

Mainnet oracle parameters:

Setting Value
Oracle slots 35
Required signatures 7
Bundle type MuSig2 v0x03
Oracle epoch length 40 blocks
Oracle update interval 4 blocks
Active price sources Binance, CoinGecko, KuCoin, Gate.io, HTX, Crypto.com

Oracle peer seeding is operational, not consensus. The release consensus depends on the 35 hardcoded oracle public keys and valid 7-of-35 MuSig2 bundles; it does not depend on 35 public oracle DNS endpoints being live. For launch, oracle operators should connect to the public v9.26.2 mainnet oracle seed peers we have online, and more can be added later:

addnode=oracle1.digibyte.io:12024
addnode=digihash.digibyte.io:12024

Legacy fake-price RPCs and legacy oracle bundle paths are not part of mainnet V1. Do not use old documentation that references sendoracleprice, submitoracleprice, production mock-price controls, or legacy v0x01/v0x02 oracle bundles.

Mainnet Activation Parameters

DigiDollar is deployed through BIP9.

Field Value
Deployment name digidollar
Versionbit 23
Mainnet signaling start June 1, 2026 00:00:00 UTC
Mainnet timeout June 1, 2027 00:00:00 UTC
Signaling window 40,320 blocks
Activation threshold 28,224 blocks
Threshold percent 70%
Minimum activation height 23,627,520

The start and timeout times are BIP9 median-time-past gates. They are not automatic activation dates. DigiDollar only reaches ACTIVE after miners signal enough support, the deployment reaches LOCKED_IN, and the next valid period boundary reaches the minimum activation height or later.

DigiDollar, the oracle system, and DigiDollar MuSig2 are aligned to activate at the same mainnet point. This avoids a split where DigiDollar rules are live but the required oracle signing path is not.

Testnet26

Public DigiDollar testing uses testnet26. Old testnet chain data should not be reused for testnet26.

Setting Value
Testnet name testnet26
Testnet P2P port 12033
Testnet RPC port 14026
Testnet onion target port 14126
Testnet DigiDollar activation block 600

Testnet26 is for testing. Mainnet v9.26.2 uses normal DigiByte mainnet settings.

Wallet And Qt

The DigiByte Qt wallet now includes DigiDollar wallet surfaces for receiving, minting, sending, redeeming, viewing balances, viewing positions, and managing DigiDollar state.

DigiDollar private-key actions require a descriptor/bech32m HD wallet with private keys enabled. Legacy, blank, watch-only, or private-key-disabled wallets can be useful for monitoring, but they cannot create DigiDollar deposit addresses or sign DigiDollar withdrawals.

Encrypted wallets must be unlocked with walletpassphrase before private-key DigiDollar actions such as minting, sending, redeeming, creating oracle keys, or starting a wallet-backed oracle.

RPC And Integration Surface

v9.26.2 adds DigiDollar and oracle RPC support for node operators, wallets, exchanges, explorers, mining pools, and oracle operators.

Common node-level RPCs include:

  • getdigidollardeploymentinfo
  • getdigidollarstats
  • getdcamultiplier
  • calculatecollateralrequirement
  • estimatecollateral
  • getoracleprice
  • getalloracleprices
  • getprotectionstatus
  • getoracles
  • getoraclesigners
  • listoracle
  • stoporacle
  • getoraclepubkey

Common wallet-level RPCs include:

  • getdigidollaraddress
  • listdigidollaraddresses
  • validateddaddress
  • getdigidollarbalance
  • listdigidollartxs
  • listdigidollarpositions
  • getredemptioninfo
  • listdigidollarunspent
  • listdigidollarutxos
  • mintdigidollar
  • senddigidollar
  • sendmanydigidollar
  • redeemdigidollar
  • createoraclekey
  • exportoracleprivkey
  • importoracleprivkey
  • startoracle

For automated integrations, treat DigiDollar amounts as integer USD cents. Decimal CLI compatibility exists, but exchanges and services should avoid ambiguous decimal handling in production systems.

importdigidollaraddress is not a watch-only import feature in V1. It is a validation/no-op stub and should not be used as an exchange custody workflow.

Node Configuration

Services that need DigiDollar wallet, explorer, exchange, or oracle behavior should run with DigiDollar and transaction indexing enabled:

server=1
txindex=1
digidollar=1

txindex=1 is required for DigiDollar-capable mainnet/testnet nodes and for explicit DigiDollar regtest runs because wallet recovery, validation, and history queries need creating-transaction metadata.

Operators that need network-wide DigiDollar statistics can also enable the optional stats index:

digidollarstatsindex=1

Mining And Pools

DigiDollar mining has two separate pieces:

  1. BIP9 signaling for the digidollar deployment.
  2. DigiDollar-aware block templates using the digidollar-oracle GBT rule.

Miners and pools should use the block version returned by DigiByte Core and must not strip versionbit 23 during STARTED or LOCKED_IN.

DigiDollar-aware pools and solo miners must request templates like this:

digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' scrypt
digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' sha256d
digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' skein
digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' qubit
digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' odo

When Core returns default_oracle_commitment, the miner or pool must copy that exact script into the coinbase as one zero-value output. If Core does not return default_oracle_commitment, do not invent one and do not force DigiDollar mint/redeem transactions into the block.

Legacy miners that only request {"rules":["segwit"]} can keep mining normal DGB blocks. They will not receive default_oracle_commitment and will not receive oracle-priced DigiDollar mint/redeem work. Downstream ASIC and GPU miners do not need DigiDollar-specific changes when the pool server builds the coinbase correctly.

For direct CPU-mining tests with the patched cpuminer, use the explicit --digidollar flag in solo GBT mode. That mode requests ["segwit","digidollar-oracle"] and preserves default_oracle_commitment.

Pool and miner implementers should read:

  • DIGIDOLLAR_MINING_INTEGRATION_GUIDE.md
  • DIGIDOLLAR_WALLET_INTEGRATION.md
  • DIGIDOLLAR_EXCHANGE_INTEGRATION.md

Reference implementation examples are linked from the mining integration guide for cpuminer-multi, node-stratum-pool, and digihashv2.

Exchange And Wallet Integration

DigiDollar addresses are not normal DGB addresses. Mainnet DigiDollar addresses begin with DD. Testnet uses TD. Regtest uses RD.

Exchanges should:

  • Run DigiByte Core v9.26.2 or newer with digidollar=1 and txindex=1.
  • Use descriptor wallets with private keys enabled for custody.
  • Allocate one DigiDollar address per customer with getdigidollaraddress.
  • Validate withdrawals with validateddaddress.
  • Detect deposits with listdigidollartxs and getdigidollarbalance.
  • Track txid, vout, blockhash, blockheight, confirmations, in_mempool, and wallet_state.
  • Maintain a DGB hot-wallet reserve for fees.
  • Use senddigidollar or sendmanydigidollar for withdrawals.

DD transfer withdrawals do not need a fresh oracle quote. Mint and redeem paths do need recent valid MuSig2 oracle data.

Limits And Amount Rules

DigiDollar V1 enforces simple amount boundaries so wallets, exchanges, and users do not need to guess.

Rule Mainnet value
Minimum DD output $1 / 100 cents
Minimum mint $100 / 10,000 cents
Maximum mint $100,000 / 10,000,000 cents
Maximum single transfer $100,000 / 10,000,000 cents
DD transaction fee floor 0.1 DGB

DigiDollar amounts are represented internally as integer cents.

Privacy And Network Changes

The v9 line includes modernized networking and privacy-related infrastructure, including the Bitcoin Core v26-era P2P stack and DigiByte's Dandelion++ privacy work. These changes are part of the broader DigiByte v9 upgrade and are separate from DigiDollar activation.

Testing And Validation Coverage

The v9 DigiDollar development cycle added broad validation coverage across:

  • DigiDollar consensus and policy unit tests.
  • Oracle and MuSig2 unit tests.
  • BIP9 activation and height-gate tests.
  • Functional tests for mint, send, redeem, wallet restore, wallet encryption, rescan, reindex, reorg, pending states, DCA, ERR, volatility, oracle pricing, mining, GBT, and network relay behavior.
  • Fuzz coverage for DigiDollar parsing and validation paths.
  • Qt wallet coverage for DigiDollar user workflows.
  • Multi-oracle testnet and modified-mainnet rehearsal testing.

Final release tagging should include the exact signed-binary validation results for the published build.

What Does Not Change

  • DigiByte remains DigiByte.
  • Mainnet genesis is unchanged.
  • Mainnet message-start bytes are unchanged.
  • Mainnet P2P/RPC ports are unchanged.
  • Historical DigiByte fork heights are retained.
  • Multi-algo mining remains part of DigiByte.
  • DGB remains the native fee and collateral asset.
  • Normal DGB transactions continue to work.

Important Upgrade Notes

  • Back up wallets before upgrading.
  • Enable txindex=1 for DigiDollar-capable services.
  • Use descriptor wallets with private keys enabled for DigiDollar custody.
  • Do not rely on obsolete PRE, RC, testnet25, or modified-mainnet documentation.
  • Do not use removed oracle RPC names such as sendoracleprice or submitoracleprice.
  • Do not treat production mock-price controls as mainnet oracle behavior.
  • Do not assume DigiDollar is active until BIP9 shows ACTIVE.
  • Miners and pools must preserve default_oracle_commitment exactly when Core returns it.

Useful Status Commands

Check chain and activation state:

digibyte-cli getblockchaininfo
digibyte-cli getdeploymentinfo
digibyte-cli getdigidollardeploymentinfo

Check oracle and price state after activation:

digibyte-cli getoracleprice
digibyte-cli getalloracleprices
digibyte-cli getoracles
digibyte-cli getoraclesigners
digibyte-cli getdigidollarstats

Check a DigiDollar-aware mining template:

digibyte-cli getblocktemplate '{"rules":["segwit","digidollar-oracle"]}' scrypt

If a fresh oracle bundle is ready, the template may include default_oracle_commitment. If it is absent, mine the returned normal template or wait for a fresh oracle-aware template.

Documentation

Read these integration documents before deploying production DigiDollar infrastructure:

  • DIGIDOLLAR_EXPLAINER.md
  • DIGIDOLLAR_ARCHITECTURE.md
  • DIGIDOLLAR_WALLET_INTEGRATION.md
  • DIGIDOLLAR_EXCHANGE_INTEGRATION.md
  • DIGIDOLLAR_MINING_INTEGRATION_GUIDE.md

Final Reminder

v9.26.2 is the formal DigiByte v9 DigiDollar release. Upgrade, signal, and verify activation status from the network. DigiDollar mainnet activation is a BIP9 process, not a manual switch and not a testnet-only feature.