• v1.0.3 1c3523aac1

    DanS released this 2026-07-23 20:06:47 -05:00 | 0 commits to master since this release

    What 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_new inflation vector.
    • Chain-level Sapling turnstile — reject any block that would drive the shielded pool balance negative, preventing supply inflation.
    • Enforce nMinimumChainWork during 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 the removeExpired() 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 pindex dereference in chain validation; guard BuildWitnessCache against an off-active-chain pindex (heap overflow); bound nSPV request buffers and fix an uninitialized fee / null-deref; harden ProcessGetData and ThreadNotifyWallets to log-and-disconnect instead of asserting.
    • Self-heal a corrupt/torn notarizations DB instead of aborting startup.
    • Concurrency & TLS fixes: make nCoinCacheUsage atomic (adaptive-dbcache data race); evaluate wolfSSL_pending() under the socket lock in the receive-drain loop.
    • RPC hardening: guard z_validateaddress against 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 -dbcache ceiling 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 ReadBlockFromDisk failures 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_sendmany note 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 to CAmount.

    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 now DRAGONX; dependency mirrors repointed to canonical upstreams; seed nodes point at node[1-5].dragonx.is.
    • Fixed the dragonx-cli -rpcport help default (1803021769).
    • Build fixes: work around a libsodium config.sub fetch failure (git.savannah.gnu.org 502); add -Wa,-mbig-obj for the MinGW Windows cross-compile; make the version probe SIGPIPE-safe; fix -lcurl portability. The Debian package build no longer fails when the optional lintian tool 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 -dbcache ceiling 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 9f1b146b8f45434b910cf5ee65c283f06dcb28ac0002a9afd371008a9256a6a9
    dragonx-1.0.3-macos.zip b120748c356e8c654d78ea5c3b88a901074dd79ffbf99bd4b956c6447548ba09
    dragonx-1.0.3-win64.zip 4929be6566a5cdea077933569fde5c5217cc16646740d451ab812c22d296b2ea

    License

    DragonX is released under the GNU General Public License v3 (GPLv3).

    Copyright © 2024-2026 The DragonX Developers

    Downloads