DragonX

DragonX

A fully-private, RandomX CPU-mineable cryptocurrency.

| Introduction | Build | Run | Mine | | :---: | :---: | :---: | :---: | | [What is DragonX?](#what-is-dragonx) | [Build from source](#build-from-source) | [Run a node](#running-a-node) | [CPU mining](#cpu-mining-randomx) | | [Key facts](#key-facts) | [Install a release](#installing-dragonx-binaries) | [Fastest sync](#fastest-way-to-sync-bootstrap) | [Wallets](#wallets) |

# What is DragonX? DragonX implements extreme privacy via blockchain technology. It is **private from genesis**: every ordinary transaction is shielded (`z2z`), so your transaction metadata stays private. DragonX is based on Bitcoin code with Zcash's zero-knowledge Sapling cryptography, and its defining feature is **RandomX Proof-of-Work — it is mined with a CPU**, not ASICs or GPUs. DragonX has its own genesis block. Its lineage is Bitcoin → Zcash → Komodo → Hush → DragonX; it is a fork of the [Hush](https://git.hush.is/hush/hush3) full node, with the Proof-of-Work changed from Equihash to RandomX and privacy enforced from the very first block. This software is the DragonX full node and command-line client. It downloads and stores the entire history of DragonX transactions; depending on your computer and network connection this can take a while, so most users start from the [bootstrap snapshot](#fastest-way-to-sync-bootstrap). **DragonX is experimental software.** Use at your own risk, just like Bitcoin. # Key facts | | | | --- | --- | | Ticker | **DRAGONX** | | Proof-of-Work | **RandomX** (CPU-mineable) | | Privacy | fully private from genesis (`ac_private=1`, Sapling active at height 1) | | Block time | 36 seconds | | Block reward | 3 DRAGONX, halving every 3,500,000 blocks | | Max block size | 4 MB | | RPC port | 21769 | | P2P port | 18030 | | Data directory | `~/.hush/DRAGONX` (Linux) | | Config file | `DRAGONX.conf` | | Binaries | `dragonxd`, `dragonx-cli`, `dragonx-tx` | # Fastest way to sync (bootstrap) The quickest way to get a fully-synced node is the signed bootstrap snapshot, which installs a pre-built blockchain so you skip re-validating the whole chain from genesis: ```sh # Stop dragonxd first if it is running, then: ./util/bootstrap-dragonx.sh ``` The script preserves your `wallet.dat` and `DRAGONX.conf`, verifies the download's checksums and (once a release key is published) its cryptographic signature, then starts you near the chain tip. If you prefer to sync from the network instead, a larger `-dbcache` (e.g. `-dbcache=2048`) noticeably speeds up the initial block download. # Build from source Building uses 3 build processes by default; you need ~2GB of RAM for each. ### Debian or Ubuntu ```sh sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib \ autoconf libtool ncurses-dev unzip git zlib1g-dev wget \ bsdmainutils automake curl unzip nano libsodium-dev cmake git clone https://git.dragonx.is/DragonX/dragonx cd dragonx ./build.sh -j3 ``` ### Arch ```sh sudo pacman -S gcc libsodium lib32-zlib unzip wget git python rust curl autoconf cmake git clone https://git.dragonx.is/DragonX/dragonx cd dragonx ./build.sh -j3 ``` ### Fedora ```sh sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libtool ncurses-devel patch -y git clone https://git.dragonx.is/DragonX/dragonx cd dragonx ./build.sh -j3 ``` ### macOS Install Xcode Command Line Tools and [Homebrew](https://brew.sh/), then: ```sh xcode-select --install brew install gcc autoconf automake pkgconf libtool cmake curl # Install Rust (needed for librustzcash on macOS Sequoia+) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" git clone https://git.dragonx.is/DragonX/dragonx cd dragonx # Make sure libtool gnubin and cargo are on PATH export PATH="$HOME/.cargo/bin:/usr/local/opt/libtool/libexec/gnubin:$PATH" ./build.sh -j3 ``` For a release build: ```sh export PATH="$HOME/.cargo/bin:/usr/local/opt/libtool/libexec/gnubin:$PATH" ./build.sh --mac-release -j$(sysctl -n hw.ncpu) ``` ### Windows (cross-compiled on Linux) ```sh sudo apt-get install \ build-essential pkg-config libc6-dev m4 g++-multilib libdb++-dev \ autoconf libtool ncurses-dev unzip git zip \ zlib1g-dev wget bsdmainutils automake mingw-w64 cmake libsodium-dev git clone https://git.dragonx.is/DragonX/dragonx cd dragonx ./util/build-win.sh -j$(nproc) ``` ### ARM (Raspberry Pi) Any ARMv7 machine cannot build this repo because the underlying zk-SNARK library does not support that instruction set. You need an ARMv8-based board (Raspberry Pi 4 or newer). Either install an `aarch64` release package (see below) or cross-compile from amd64. # Installing DragonX binaries 1. [Download a release](https://git.dragonx.is/DragonX/dragonx/releases) with a `.deb` extension. 1. Install it, substituting the version you downloaded: `sudo dpkg -i dragonx-VERSION-amd64.deb` (or `-aarch64.deb` on ARM). 1. Run with: `dragonxd`. # Running a node Start the daemon: ```sh ./src/dragonxd ``` It stores data in `~/.hush/DRAGONX` and reads `~/.hush/DRAGONX/DRAGONX.conf`. Query it with `./src/dragonx-cli`, for example: ```sh ./src/dragonx-cli getinfo ``` To run DragonX as a background service, see [doc/dragonxd-systemd.md](doc/dragonxd-systemd.md). # CPU mining (RandomX) DragonX is CPU-mineable via RandomX (the same algorithm family as Monero); ASICs and GPUs do not apply. To mine with your node, enable generation and choose how many threads to use: ```sh # mine with 4 CPU threads ./src/dragonxd -gen=1 -genproclimit=4 ``` or add to `DRAGONX.conf`: ``` gen=1 genproclimit=4 ``` Mining rewards arrive as transparent coinbase, which is directly spendable; you can optionally move it into the shielded pool with `z_shieldcoinbase` (see [doc/shield-coinbase.md](doc/shield-coinbase.md)). For more on the algorithm and its tuning options, see [doc/randomx.md](doc/randomx.md). # Wallets The DragonX full node includes a built-in wallet, managed via `dragonx-cli` (see [doc/wallet-backup.md](doc/wallet-backup.md) and [doc/seed-phrase.md](doc/seed-phrase.md)). Graphical and mobile wallets: * **[ObsidianDragon](https://git.dragonx.is/DragonX/ObsidianDragon/releases)** — desktop wallet, available in both full-node and light-wallet modes. * **[SilentDragonXAndroid](https://git.dragonx.is/DragonX/SilentDragonXAndroid/releases)** — wallet for Android devices. DragonX light and mobile wallets use BIP39 seed phrases that are compatible with the full node — see [doc/seed-phrase.md](doc/seed-phrase.md). # Support and links * Website: https://dragonx.is * Source code: https://git.dragonx.is/DragonX * Block explorer: https://explorer.dragonx.is * Issues / bounties: https://git.dragonx.is/DragonX/dragonx/issues * Telegram: https://dragonx.is/tg * Matrix: https://dragonx.is/matrix * Twitter / X: https://twitter.com/DragonXchain # License For license information see the file [COPYING](COPYING).