docs: rebrand documentation, packaging, and helper scripts to DragonX
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>
This commit is contained in:
@@ -5,11 +5,11 @@ First the basics, how to compile code in this repo.
|
||||
First you will want to clone the code locally:
|
||||
|
||||
```
|
||||
git clone https://git.hush.is/hush/hush3
|
||||
cd hush3
|
||||
git clone https://git.dragonx.is/DragonX/dragonx
|
||||
cd dragonx
|
||||
```
|
||||
|
||||
If you want to compile a branch other than master (the default), such as
|
||||
If you want to compile a branch other than `dragonx` (the default), such as
|
||||
our development tip (the `dev` branch) you can switch to it:
|
||||
|
||||
```
|
||||
@@ -17,7 +17,7 @@ git checkout dev
|
||||
```
|
||||
|
||||
Then install needed dependencies. This is different on each OS as well as
|
||||
older or newer systems. See https://git.hush.is/hush/hush3/src/branch/dev/INSTALL.md for
|
||||
older or newer systems. See the build instructions in the repo README for
|
||||
details on installing dependencies. If you are using a recent-ish Ubuntu or Debian Linux
|
||||
distro, this is probably what you need:
|
||||
|
||||
@@ -59,20 +59,21 @@ A fresh sync preserves peers.dat, so it will always be faster than a "fresh clon
|
||||
One way to do a fresh sync is:
|
||||
|
||||
```
|
||||
cd ~/.hush/HUSH3
|
||||
rm blocks chainstate database notarizations hushstate
|
||||
cd ~/.hush/DRAGONX
|
||||
rm -rf blocks chainstate database notarizations hushstate hushsignedmasks minerids
|
||||
```
|
||||
|
||||
NOTE: The legacy directory is ~/.komodo/HUSH3 and hushd will use data from either, or ~/.hush/HUSH3 if both exist.
|
||||
NOTE: The DragonX data directory is `~/.hush/DRAGONX`. The on-disk notarization/state
|
||||
files are still named `hushstate`/`hushsignedmasks` (inherited names, not rebranded).
|
||||
|
||||
If you are using `zindex=1` then you need to also delete zindex.dat
|
||||
|
||||
```
|
||||
cd ~/.hush/HUSH3
|
||||
rm zindex.dat blocks chainstate database notarizations hushstate
|
||||
cd ~/.hush/DRAGONX
|
||||
rm -rf zindex.dat blocks chainstate database notarizations hushstate hushsignedmasks minerids
|
||||
```
|
||||
|
||||
It's possible to confused hush if you ran old code, stop, restart, and then write out zindex.dat that is incorrect, which later hushds will load from disk and believe.
|
||||
It's possible to confuse the node if you ran old code, stop, restart, and then write out a zindex.dat that is incorrect, which later dragonxd instances will load from disk and believe.
|
||||
|
||||
# Generating a backtrace from a coredump
|
||||
|
||||
@@ -93,12 +94,11 @@ core_filename` and then type bt to generate the backtrace.
|
||||
|
||||
For this repo, it's likely this is the command you need:
|
||||
```
|
||||
gdb src/hushd core
|
||||
gdb src/dragonxd core
|
||||
```
|
||||
|
||||
NOTE: Even if you are debugging a coredump on a HAC, the file `src/blahd`
|
||||
is just a shell script that calls `src/hushd` and you always want to give an actual executable
|
||||
file as the first argument to `gdb`, not a bash script.
|
||||
NOTE: `src/blahd` is just a shell script that calls `src/dragonxd`; you always want to
|
||||
give an actual executable file as the first argument to `gdb`, not a bash script.
|
||||
|
||||
This link about Advanced GDB is very useful: https://interrupt.memfault.com/blog/advanced-gdb
|
||||
|
||||
@@ -113,7 +113,7 @@ unspendable funds mixed together. This can happen when you import a viewing key.
|
||||
the address of a viewing key will have `spendable = false` :
|
||||
|
||||
|
||||
hush-cli listunspent|jq '.[] | {spendable, address, amount} | select(.spendable != false)'
|
||||
dragonx-cli listunspent|jq '.[] | {spendable, address, amount} | select(.spendable != false)'
|
||||
|
||||
The above command will only show spendable UTXOs. The jq language is very powerful and is very
|
||||
useful for devops and developer scripts.
|
||||
@@ -121,7 +121,7 @@ useful for devops and developer scripts.
|
||||
The jq manual can be found here: https://stedolan.github.io/jq/manual/
|
||||
|
||||
|
||||
# Making a new release of Hush
|
||||
# Making a new release of DragonX
|
||||
|
||||
See doc/release-process.md for details.
|
||||
|
||||
@@ -132,39 +132,39 @@ To test a branch called `zindexdb` with a fresh clone:
|
||||
|
||||
```
|
||||
# TODO: this should probably become a script in ./contrib
|
||||
git clone https://git.hush.is/hush/hush3 hush3-testing
|
||||
cd hush3-testing
|
||||
git clone https://git.dragonx.is/DragonX/dragonx dragonx-testing
|
||||
cd dragonx-testing
|
||||
git checkout zindexdb
|
||||
# you need 2GB RAM free per -jN
|
||||
./build.sh -j2; make; make; make # this deals with build-system race condition bugs
|
||||
|
||||
# we want to test a fresh sync, so backup current data
|
||||
TIME=`perl -e "print time"`
|
||||
mv ~/.hush/{HUSH3,HUSH3-backup-$TIME}
|
||||
mkdir ~/.hush/HUSH3
|
||||
mv ~/.hush/{DRAGONX,DRAGONX-backup-$TIME}
|
||||
mkdir ~/.hush/DRAGONX
|
||||
|
||||
# Use your previous config as a base
|
||||
cp ~/.hush/{HUSH3-backup-$TIME,HUSH3}/HUSH3.conf
|
||||
cp ~/.hush/{DRAGONX-backup-$TIME,DRAGONX}/DRAGONX.conf
|
||||
# Add zindex to your node
|
||||
echo "zindex=1" >> ~/.hush/HUSH3/HUSH3.conf
|
||||
echo "zindex=1" >> ~/.hush/DRAGONX/DRAGONX.conf
|
||||
|
||||
|
||||
# This is optional but will likely speed up sync time greatly
|
||||
cp ~/.hush/{HUSH3-backup,HUSH3}/peers.dat
|
||||
cp ~/.hush/{DRAGONX-backup-$TIME,DRAGONX}/peers.dat
|
||||
|
||||
# This log file is helpful for debugging more and will contain a history of the
|
||||
# size of the anonset at every block height
|
||||
./src/hushd &> hushd.log &
|
||||
./src/dragonxd &> dragonxd.log &
|
||||
# to look at the log
|
||||
tail -f hushd.log
|
||||
tail -f dragonxd.log
|
||||
```
|
||||
|
||||
To get a CSV file of the value of the anonset size for every block height:
|
||||
```
|
||||
grep anonset hushd.log | cut -d= -f2 > anonset.csv
|
||||
grep anonset dragonxd.log | cut -d= -f2 > anonset.csv
|
||||
```
|
||||
|
||||
This only needs to be calculated once, if we can verify it's correct. These are historical values that do not change. The goal is a web page with a historical view of the HUSH anonset size.
|
||||
This only needs to be calculated once, if we can verify it's correct. These are historical values that do not change. The goal is a web page with a historical view of the DRAGONX anonset size.
|
||||
|
||||
|
||||
These values should match on all nodes:
|
||||
@@ -180,17 +180,22 @@ These values should match on all nodes:
|
||||
We should also check a recent block height to verify it's working correctly. The big "test" for this `zindexdb` branch is:
|
||||
|
||||
* If you stop a node, and restart, are the stats from `getchaintxtstats` correct, i.e. the anonset stats? For instance, `shielded_pool_size` should be close to 500000, if it's close to or exactly 0, something is wrong.
|
||||
* Is there a new file called `zindex.dat` in `~/.hush/HUSH3/` ?
|
||||
* Is there a new file called `zindex.dat` in `~/.hush/DRAGONX/` ?
|
||||
* Is `zindex.dat` 149 bytes ?
|
||||
|
||||
# Adding a PoW algorithm
|
||||
|
||||
We will describe here the high-level ideas on how to add a new PoW algorithm to
|
||||
the Hush codebase. Adding a new PoW algo means adding a new option to the `-ac_algo`
|
||||
CLI param for HSC's.
|
||||
the codebase. Adding a new PoW algo means adding a new option to the `-ac_algo`
|
||||
CLI param.
|
||||
|
||||
Note: DragonX itself uses **RandomX** (CPU) as its Proof-of-Work — it is selected by
|
||||
default for the DRAGONX chain (`isdragonx ? "randomx"` in `src/hush_utils.h`). The
|
||||
generic `ASSETCHAINS_ALGORITHMS` array below still lists Equihash as its first element
|
||||
(the array default), but that is not DragonX's algorithm.
|
||||
|
||||
* Add the new value to the end of the `ASSETCHAINS_ALGORITHMS` array in `src/hush_utils.h`
|
||||
* You cannot add it to the front because the first element is the default "equihash"
|
||||
* You cannot add it to the front because the first element is the array default "equihash"
|
||||
* You will also need to add a new constant, such as `ASSETCHAINS_FOOHASH` to `src/hush_globals.h`
|
||||
* Increase the value of `ASSETCHAINS_NUMALGOS` by one
|
||||
* This value cannot be automatically be determined by the length of the above array because Equihash has different supported variants of (N,K) values
|
||||
@@ -263,7 +268,7 @@ on all categories (and give you a very large debug.log file).
|
||||
**test coins**
|
||||
|
||||
The main way to test new things is directly on mainnet or you can also make a
|
||||
Hush Arrakis Chain "testcoin" with a single command: `hushd -ac_name=COIN ...`
|
||||
test "testcoin" chain with a single command: `dragonxd -ac_name=COIN ...`
|
||||
|
||||
If you are testing something that can run on one machine you can use `-testnode=1`
|
||||
which makes it so a single machine can create a new blockchain and mine blocks, i.e.
|
||||
@@ -271,7 +276,7 @@ no peers are necessary.
|
||||
|
||||
**DEBUG_LOCKORDER**
|
||||
|
||||
Hush is a multithreaded application, and deadlocks or other multithreading bugs
|
||||
DragonX is a multithreaded application, and deadlocks or other multithreading bugs
|
||||
can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
|
||||
CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks
|
||||
are held, and adds warnings to the debug.log file if inconsistencies are detected.
|
||||
@@ -306,7 +311,7 @@ Threads
|
||||
|
||||
- ThreadMapPort : Universal plug-and-play startup/shutdown
|
||||
|
||||
- ThreadSocketHandler : Sends/Receives data from peers on port 8233.
|
||||
- ThreadSocketHandler : Sends/Receives data from peers on the P2P port (18030 on DragonX mainnet).
|
||||
|
||||
- ThreadOpenAddedConnections : Opens network connections to added nodes.
|
||||
|
||||
@@ -318,9 +323,9 @@ Threads
|
||||
|
||||
- ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used in 500ms.
|
||||
|
||||
- ThreadRPCServer : Remote procedure call handler, listens on port 8232 for connections and services them.
|
||||
- ThreadRPCServer : Remote procedure call handler, listens on the RPC port (21769 on DragonX mainnet) for connections and services them.
|
||||
|
||||
- HushMiner : Generates zcash (if wallet is enabled).
|
||||
- Miner threads : Generate DRAGONX blocks via RandomX (if wallet and mining are enabled).
|
||||
|
||||
- Shutdown : Does an orderly shutdown of everything.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user