• v1.3.0 da191e447d

    DanS released this 2026-09-02 03:01:24 -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 a major feature release: new wallets now default to a BIP39 24-word seed phrase, mining nodes auto-shield their coinbase into a private address on their own, and RandomX pool mining over Stratum is supported with a reference miner. It also hardens consensus and proof-of-work, repairs peer discovery, and lands a large internal cleanup. Upgrading is safe and non-partitioning — v1.3.0 nodes still peer with and sync from every v1.0.3 node — and is recommended for all operators.

    New Features & Behavior Changes

    • New wallets default to a BIP39 24-word seed phrase — BIP39 support shipped in v1.0.3; new wallets now use it by default instead of a random seed, so they can be backed up as 24 words (z_exportmnemonic) and restored in SilentDragonXLite or any compatible wallet. Existing wallets are never re-seeded; -usemnemonic=0 opts back out.
    • Automatic coinbase shielding — matured coinbase is drained to a wallet-owned z-address on its own, so miners no longer shield by hand. Default-ON only for wallets with a provably recoverable HD seed; legacy/seedless wallets stay OFF until you back up the seed and pass -autoshield=1.
    • RandomX pool mining over Stratum — the built-in stratum server now speaks DragonX's RandomX PoW (previously Equihash-only), off by default (-stratum + -stratumallowip); a stratummine reference miner and -stratumtarget are included.

    Wallet

    • Downgrade-compatible mnemonic storage — the expanded 64-byte BIP39 seed is stored with no version bump or minimum-version fence, so an older release can still open a wallet this build wrote.
    • HD seed/chain persistence hardened — the HD chain is written before the seed, a corrupt/missing hdchain or a failed BIP39 generation is now a loud error, and seed provenance is recorded (retrofitting a seed onto an existing wallet warns it predates your backups).
    • Older and salvaged wallets load safely-salvagewallet keeps the mnemonic/hdchain records; a wallet salvaged by v1.0.3 opens read/write in a degraded mode (no new HD-key derivation) instead of aborting; a truncated hdchain is repaired rather than rejected.
    • Interrupted rescans no longer hide funds — a cut-short rescan no longer marks the wallet scanned-to-tip, clears the abortrescan latch each run, and checkpoints its progress so it resumes where it stopped.
    • Plaintext HD seed erased on encryption — latent on this chain (reachable only via the experimental -developerencryptwallet).
    • A command-line rpcpassword survives restarts — it is no longer silently overwritten by the auto-generated DRAGONX.conf (a dead, misspelled -rpcusername key is also fixed).

    Security & Consensus

    • PROTOCOL_VERSION → 2000001MIN_PEER_PROTO_VERSION stays at 2000000, so the upgrade is non-partitioning with no flag-day.
    • Block-validity levels tracked correctly again — a BLOCK_VALID_CONTEXT flag collision (inherited from Komodo/Hush) caused cosmetic getchaintips/submitblock misreports; full validation always ran, so no block was ever wrongly accepted or rejected. Self-heals on reindex.
    • RandomX PoW never accidentally skipped — the verify-once optimization is armed only when the header check actually performed the verification (strictly more verification, never less).
    • Dead CBOPRET price check removed from coinbase validation — it never ran on DragonX; verifychain-confirmed identical.
    • nSPV request handler initializes its filter — two remotely-reachable request forms passed uninitialized memory.

    Mining & Stratum

    • No remote crash from a malformed job_id — a 63-character non-hex job_id aborted the daemon pre-auth; each candidate is now size-checked.
    • Reward misattribution fixed — a block found by one miner could pay another because the shared work template was mutated with the first client's coinbase; each client now derives its header from a private copy.
    • Share validation bounded against abuse — the cheap SHA256d target test runs before the ~65 ms RandomX hash, and mining.submit now requires the authorize handshake.
    • stratummine hardened against a hostile server — validates job fields before use, ignores malformed messages, and clamps the timeout.
    • Miner lock-leak fixed on the CreateNewBlock error paths (behavior-identical on DragonX).

    Networking

    • Peer discovery works from a clean datadir — fixed three breakages at once: dead Hush DNS seeds (inherited by accident), fixed seeds carrying port 0x0000, and a counter bug that hid the failure.
    • Round-robin DNS seeding — the node seeds from seed.dragonx.is (with static fallbacks), so the seed set can change via a DNS edit instead of a release; two new seed nodes (node6/node7.dragonx.is) are added.
    • -connect and connect-by-name fixed — an address-validation check ran before name resolution, rejecting by-name targets before a socket was opened.
    • Other smart chains no longer inherit DragonX's seeds, and dragonx-cli reports the port it actually dialed on a connection failure.

    Sync & Performance

    • Much faster first sync past RandomX activation — the checkpoint table is extended to height 3,226,000, finally enabling the below-checkpoint verification skip; blocks needing a full RandomX verify drop from ~391,000 to ~5,500, roughly 19× at the boundary.

    Packaging, Build & QA

    • Portable RandomX — action required for self-builders — RandomX now builds with -DARCH=default (was -DARCH=native, which could bake in AVX-512 and SIGILL on other CPUs). build.sh skips cmake if src/RandomX/build/ exists — delete it before rebuilding.
    • Version stamped to 1.3.0 — derived from configure.ac; container builds now carry a real version instead of -unk.
    • Windows (mingw) cross-compile builds and links again, and reproducible container release builds are documented for multiple glibc floors (Ubuntu 20.04 / GLIBC 2.29 recommended).
    • Man pages and Debian packaging corrected, and the release signing step is documented — prior releases shipped unsigned and were silently refused by the wallet's auto-updater.
    • Integration test harness revivedqa/rpc-tests was ported to python3 and its blockers fixed, so automated tests can start a DragonX node at last.
    • Regtest isolated from the live network — mainnet seeds are no longer injected on -regtest/-testnet, and -checkpoints defaults off on regtest so an isolated node leaves IBD. Mainnet checkpointing is unchanged.

    Internal / Code Quality

    • ~7,600-line hygiene cleanup — removed a never-built Komodo DEX, Equihash/staking-era dead paths, and debug cruft (no consensus values changed; re-validated with verifychain), alongside a batch of audit-found latent-defect fixes and auto-op scheduling/bounds hardening.

    Upgrade Notes

    • Non-partitioning upgrade — PROTOCOL_VERSION 2000001 / MIN_PEER_PROTO_VERSION 2000000; no flag-day, no reindex, no manual action for a normal node.
    • New wallets are BIP39 by default — back up the 24-word phrase with z_exportmnemonic. Existing wallets are never migrated and the format is forward- and backward-compatible; -usemnemonic=0 opts out.
    • Auto-shield-coinbase is default-ON for known-recoverable wallets — flags: -autoshield (0/1), -autoshieldaddress=<zaddr>, -autoshieldinterval (default 25, min 5), -autoshieldfee (default 10000 puposhis), -autoshieldminutxos (default 1); z_autoshieldstatus reports state and a disabled_reason. Legacy/seedless wallets stay OFF until you back up the seed and pass -autoshield=1.
    • Stratum is opt-in-stratum + -stratumallowip, -stratumtarget=<hex>; needs a RandomX-aware client.
    • Self-builders must clear src/RandomX/build/ before rebuilding to pick up the portable RandomX.

    Key Features

    • Fully private from genesis — transparent outputs disabled at consensus (ac_private=1, Sapling from height 1); funds exist only as shielded z2z transactions.
    • RandomX proof-of-work — CPU-mineable, ASIC-resistant.
    • BIP39 24-word seed phrases — new wallets recoverable from a standard mnemonic, restorable in SilentDragonXLite or any compatible wallet.
    • Automatic coinbase shielding — mining rewards drain to a seed-recoverable shielded address on their own.
    • RandomX pool mining over Stratum — external pool mining with a reference miner.
    • Encrypted P2P — TLS 1.3 via WolfSSL; anonymous networking via built-in Tor, i2p, and cjdns.

    Checksums

    File SHA-256
    dragonx-1.3.0-linux-amd64.zip 212f9f2ef947cee5d51bc685e976dd7df726dff6cbe51c3531c7c9bb5efe0753
    dragonx-1.3.0-macos.zip 5b71f649bd999842df8f59a22e05519876a3dcfec032e22fd5bb06aa5af5ec6f
    dragonx-1.3.0-win64.zip cb8ced8160a5e42003cca2d9c60eb8b03e6edb9efb41d05965d1fb447149a7c3

    License

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

    Copyright © 2024-2026 The DragonX Developers

    Downloads
  • v1.0.3 1c3523aac1

    DanS released this 2026-07-23 20:06:47 -05:00 | 73 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
  • v1.0.2 2b011d6ee2

    DanS released this 2026-03-19 10:09:18 -05:00 | 130 commits to master since this release

    What is DragonX?

    DragonX is a privacy-focused cryptocurrency built on zero-knowledge mathematics. It uses the
    Sapling protocol for shielded transactions and enforces mandatory z2z (shielded-to-shielded)
    transactions after block 340,000, meaning funds can only be sent to shielded z-addresses at
    the consensus level.

    Bug Fixes

    • Fix sapling pool persistence — pool total no longer resets to 0 on node restart. Explorer nodes should reindex once after upgrading.

    New Features

    • Add subsidy and fees fields to the getblock RPC response so explorers can display the correct 3 DRGX block reward separately from fees

    Key Features

    • RandomX Proof-of-Work — CPU-mineable, ASIC-resistant mining algorithm
    • Sapling zk-SNARKs — zero-knowledge proofs for fully private transactions
    • Mandatory shielded transactions — z2z enforced at consensus after block 340,000
    • 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.2-linux-amd64.zip 85f1dd908bfbdee6aaebabdc74848dc8963d45e7510172d84d0230c0fad6cc16
    dragonx-1.0.2-macos.zip 102e1f1ecab05def25465ad4867b19d46c7cc00a9fbb018ffb405bcb82cc6432
    dragonx-1.0.2-win64.zip dd6a554ac05c834da9910ae796215567e97c426f3aed15b54af1f7b90d48c43a

    License

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

    Copyright © 2024-2026 The DragonX Developers

    Downloads
  • v1.0.1 f0cb958cac

    DanS released this 2026-03-12 01:27:06 -05:00 | 135 commits to master since this release

    What is DragonX?

    DragonX is a privacy-focused cryptocurrency built on zero-knowledge mathematics. It uses the
    Sapling protocol for shielded transactions and enforces mandatory z2z (shielded-to-shielded)
    transactions after block 340,000, meaning funds can only be sent to shielded z-addresses at
    the consensus level.

    Bug Fixes

    • Fix fresh sync failure at diff reset height 2838976

    Key Features

    • RandomX Proof-of-Work — CPU-mineable, ASIC-resistant mining algorithm
    • Sapling zk-SNARKs — zero-knowledge proofs for fully private transactions
    • Mandatory shielded transactions — z2z enforced at consensus after block 340,000
    • 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.1-linux-amd64.zip e543dc9cb733877bc53f8526ae60b744d15c82b40005349e04cefd88a3757a6f
    dragonx-1.0.1-win64.zip 428a1567d962d7594b16ad9ae4081752102a578912990e580d7245a4f5607d4c

    License

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

    Copyright © 2024-2026 The DragonX Developers

    Downloads