-
DragonX v1.0.3 Stable
released this
2026-07-23 20:06:47 -05:00 | 0 commits to master since this releaseWhat is DragonX?
DragonX is a privacy-focused cryptocurrency built on zero-knowledge mathematics. It is fully private from the genesis block: transparent outputs are disabled at the consensus level (
ac_private=1, Sapling active from height 1), so funds can only ever be held and sent as shielded z-address (z2z) transactions. Mining uses RandomX, a CPU-friendly, ASIC-resistant proof-of-work.This is primarily a security and performance release. It hardens consensus and P2P against a broad set of denial-of-service and inflation vectors, significantly speeds up initial block download (IBD), fixes a Sapling witness desync in the wallet, and completes the DragonX rebrand across documentation, packaging, and helper scripts. All node operators are encouraged to upgrade.
Security & Consensus Hardening
- Reject Sprout JoinSplits — closes an unverified-proof /
vpub_newinflation vector. - Chain-level Sapling turnstile — reject any block that would drive the shielded pool balance negative, preventing supply inflation.
- Enforce
nMinimumChainWorkduring IBD — protects against eclipse and low-work fake-chain attacks. - Header-flood DoS protections — verify RandomX PoW at header-accept once synced, at the correct height, and cap the number of headers accepted per peer during IBD.
- Real DoS scoring for invalid headers (previously always scored as 1).
- Bound mempool memory via
-maxmempool, and restore theremoveExpired()mempool scan (previously a no-op that allowed unbounded mempool growth) — closes two OOM DoS vectors. - Bound OP_RETURN length and clamp the notary-pubkeys array in consensus validation.
- Crash-DoS and memory-safety fixes: guard a NULL
pindexdereference in chain validation; guardBuildWitnessCacheagainst an off-active-chainpindex(heap overflow); bound nSPV request buffers and fix an uninitialized fee / null-deref; hardenProcessGetDataandThreadNotifyWalletsto log-and-disconnect instead of asserting. - Self-heal a corrupt/torn notarizations DB instead of aborting startup.
- Concurrency & TLS fixes: make
nCoinCacheUsageatomic (adaptive-dbcache data race); evaluatewolfSSL_pending()under the socket lock in the receive-drain loop. - RPC hardening: guard
z_validateaddressagainst a null wallet under-disablewallet.
Sync & Performance
- Faster IBD: parallel RandomX pre-verification, adaptive
-dbcache, and P2P download-path fixes. Each block's RandomX solution is now verified once during sync instead of twice. - Opt-in bulk block streaming (
-bulkblocksync) for faster initial sync. - New
-maxblocksintransit— tunable per-peer block-download window. - Adaptive
-dbcacheceiling raised to 64 GiB on 64-bit hosts, with the block-tree cache capped so the adaptive cache feeds the UTXO set; the RandomX pre-verify cache is now released at shutdown. - Graceful handling of
ReadBlockFromDiskfailures during IBD.
Wallet
- Fix Sapling witness desync and parallelize the witness-cache rebuild — resolves merge/send failures caused by a corrupt note witness.
- Reserve the miner fee during
z_sendmanynote selection so sends no longer fail on insufficient funds at the last step. - BIP39 seed phrases (SilentDragonXLite-compatible) and HD transparent keys, so wallets can be restored across compatible DragonX wallets (mainnet).
opreturn_burn: correctly return change and widen the tx fee toCAmount.
New Features & Behavior Changes
- Fee-ordered mempool eviction (
TrimToSize/expiry) with fee-based displacement on admission. - Removed the
assumeutxo/ UTXO-snapshot feature.
Packaging, Build & Rebrand
- Completed the DragonX rebrand across all documentation, packaging, and helper scripts (RandomX not Equihash; private-from-genesis;
dragonxd/dragonx-cli/dragonx-tx,~/.hush/DRAGONX,DRAGONX.conf). Currency unit is nowDRAGONX; dependency mirrors repointed to canonical upstreams; seed nodes point atnode[1-5].dragonx.is. - Fixed the
dragonx-cli -rpcporthelp default (18030→21769). - Build fixes: work around a libsodium
config.subfetch failure (git.savannah.gnu.org 502); add-Wa,-mbig-objfor the MinGW Windows cross-compile; make the version probe SIGPIPE-safe; fix-lcurlportability. The Debian package build no longer fails when the optionallintiantool is absent.
Upgrade Notes
- All nodes should upgrade — this release includes DoS/crash fixes and consensus-safety hardening. No reindex or manual action is required for a normal node.
- New/changed runtime options:
-bulkblocksync,-maxblocksintransit,-maxmempool(now enforced), and a higher adaptive-dbcacheceiling on 64-bit hosts.
Key Features
- RandomX Proof-of-Work — CPU-mineable, ASIC-resistant mining algorithm
- Sapling zk-SNARKs — zero-knowledge proofs for fully private transactions
- Private from genesis — transparent outputs disabled at the consensus level; all transactions are shielded (z2z)
- Encrypted P2P — all connections secured with TLS 1.3 via WolfSSL (AES-256-GCM and ChaCha20-Poly1305)
- Anonymous networking — built-in Tor, i2p, and cjdns support
- Passive network spy protection — prevents ISPs and observers from identifying transaction origins
Checksums
File SHA-256 dragonx-1.0.3-linux-amd64.zip 9f1b146b8f45434b910cf5ee65c283f06dcb28ac0002a9afd371008a9256a6a9dragonx-1.0.3-macos.zip b120748c356e8c654d78ea5c3b88a901074dd79ffbf99bd4b956c6447548ba09dragonx-1.0.3-win64.zip 4929be6566a5cdea077933569fde5c5217cc16646740d451ab812c22d296b2eaLicense
DragonX is released under the GNU General Public License v3 (GPLv3).
Copyright © 2024-2026 The DragonX Developers
Downloads
- Reject Sprout JoinSplits — closes an unverified-proof /