The docs/packaging were largely un-rebranded Hush3 content, with several docs stating facts that are wrong for DragonX. This rewrites them against the verified DragonX source state. Corrections (not just branding): - PoW: RandomX (CPU), not Equihash/ASIC — README, overview.md, randomx.md - Privacy: private from genesis (ac_private=1, Sapling@height1), not "as of block 340000" — overview.md, payment-api.md - Removed the false "coinbase must be shielded" consensus claim (shield-coinbase.md, payment-api.md); coinbase is directly spendable - Fixed default fee 0.0001 (was 0.0010000, 10x); stratum port 22769 (was 19031) - datadir ~/.hush/DRAGONX, DRAGONX.conf, dragonxd/dragonx-cli/dragonx-tx, git.dragonx.is throughout; branch model dev->dragonx - Softened the inherited dPoW reorg claim (no live DragonX notary infra) Packaging: fix build-debian-package.sh + gen-manpages.sh to use the dragonx binaries/manpages; rename bash-completions to dragonx*; drop hush-arrakis-chain from the package. Keep /usr/share/hush (hardcoded in the binary for params). Also: README links/logo, ObsidianDragon + SilentDragonXAndroid wallets, networking/init/dev-process/contrib/util rebrand, and leftover helper scripts. Delete legacy duplicates (hushd.* init/service, HUSH3.conf examples, OLD_WALLETS.md, hsc.md) and rename hush-uri.bat -> dragonx-uri.bat. Out of scope (noted, not changed): historical changelog/copyright, the Hush mainnet airdrop snapshot, seed data files, depends/ source mirrors, and the in-code strCurrencyUnits="HUSH". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
214 lines
7.0 KiB
Markdown
214 lines
7.0 KiB
Markdown
<p align="center">
|
|
<img src="doc/dragonx/logo_dragonx_128.png" alt="DragonX" width="128">
|
|
</p>
|
|
<h1 align="center">DragonX</h1>
|
|
<p align="center"><b>A fully-private, RandomX CPU-mineable cryptocurrency.</b></p>
|
|
|
|
<h3 align="center">
|
|
|
|
| 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) |
|
|
|
|
</h3>
|
|
|
|
# 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).
|