• 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