Commit Graph

474 Commits

Author SHA1 Message Date
4caf2fc68f Add BIP39 seed phrases (SilentDragonXLite-compatible) and HD transparent keys
Derive transparent (t-addr) keys from the HD seed and add BIP39 mnemonic seed
phrases that are byte-for-byte compatible with SilentDragonXLite, so the same
24 words recover the same shielded and transparent addresses in either wallet.

HD transparent keys:
- Derive t-keys from the seed at m/44'/coin'/0'/0/i (were random CKeys).
- CHDChain gains a version-gated transparent counter; existing wallets load
  unchanged. GenerateNewKey routes through DeriveNewChildKey when enabled
  (-hdtransparent, default on).
- Restore from a seed hex via -hdseed with gap-limit pre-derivation; birthday
  pinned to genesis so the rescan is not clipped.

BIP39 seed phrases:
- Wire the vendored trezor BIP39 lib (src/crypto/bip39) into the build, fix its
  BIP39_WORDS guard, and disable the insecure mnemonic cache.
- Match SDXLite exactly: English wordlist, empty passphrase, PBKDF2 64-byte
  seed, coin type 141, ZIP-32 m/32'/141'/i' and BIP44 m/44'/141'/0'/0/i. Store
  the 32-byte entropy and expand to the 64-byte seed on demand.
- Restore via -mnemonic, create via -usemnemonic, reveal via z_exportmnemonic.

Verified by gtests including a known-answer BIP39 seed vector and z/t address
derivation checks (src/gtest/test_hdtransparent.cpp, test_mnemonic_compat.cpp).
Docs in doc/hd-transparent-keys.md and doc/seed-phrase.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 01:57:18 -05:00
a9b1b4085f Fix automake -lcurl portability lint in Makefile
LIBBITCOIN_SERVER was fed into both EXTRA_LIBRARIES (a list of buildable
library files) and several _LDADD link lines. Embedding the -lcurl linker
flag inside it made automake reject it in the EXTRA_LIBRARIES context
("'-lcurl' is not a standard library name"). Make LIBBITCOIN_SERVER a pure
file and route -lcurl through its own LIBCURL variable, added to the
dragonxd, hush-gtest, and test_bitcoin link lines after libbitcoin_server.a
(whose objects reference curl symbols) so static link order stays correct.

Verified with a clean Windows cross-build (-DCURL_STATICLIB) and a native
Linux build: both link cleanly and the automake lint is gone.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:58:31 -05:00
1673cfb6dc IBD/sync speedups: parallel RandomX pre-verify, adaptive dbcache, P2P download fixes
- Parallel RandomX PoW pre-verification pool (CCheckQueue) run ahead of the serial
  connect; consensus-neutral (inline CheckRandomXSolution fallback still verifies
  anything not pre-verified). New -randomxverifythreads (default = -par).
- Adaptive dbcache: default sizes the UTXO/coins cache to most of RAM and shrinks
  under memory pressure, always leaving a reserve free; -dbcache pins a fixed value.
- P2P block download: bounded socket recv-drain loop (tlsmanager); frontier-block
  reassignment to break head-of-line stalls (-blockreassigntimeout); ProcessGetData
  serves a bounded batch of blocks per pass instead of one (fixes the serve-side
  one-block-per-tick throttle that caps download network-wide).
- assumeutxo: dumptxoutset RPC + LoadSnapshot machinery + AssumeutxoData chainparams.
- Signed bootstrap verification (util/bootstrap-dragonx.sh, util/sign-bootstrap.md).
- gtest: RandomX pre-verify consensus-equivalence test + UTXO-snapshot round-trip;
  revived the gtest harness (Makefile.am include fix, Makefile.gtest.include).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 12:30:10 -05:00
M
d77088c1f2 Fix macOS Sequoia build with GCC 15 and update README
- Update compiler references from gcc-8 to gcc-15 across build system
  (build-mac.sh, darwin.mk, Makefile_custom)
- Use system Rust (rustup) instead of bundled Rust 1.32.0 for librustzcash
  to fix rlib linker incompatibility on macOS Sequoia
- Replace deprecated std::random_shuffle with std::shuffle (net.cpp,
  transaction_builder.cpp, wallet.cpp)
- Fix -std=gnu17 -> -std=gnu++17 for C++ targets (libzcash, libhush)
- Fix nodiscard warning in glibcxx_sanity.cpp
- Replace deprecated OSMemoryBarrier with std::atomic_thread_fence in LevelDB
- Add -Wno-error=deprecated-declarations to CXXFLAGS for third-party headers
- Fix REMAINING_ARGS unbound variable in build.sh
- Add --disable-tests handling to build-mac.sh
- Update README with correct macOS build dependencies and instructions
2026-03-19 09:30:50 -05:00
85c8d7f7dd Rebrand hush3 to DragonX and share RandomX dataset across mining threads
Minimal rebrand (see compliant-rebrand branch for full rebrand):
- Rename binaries: hushd/hush-cli/hush-tx → dragonxd/dragonx-cli/dragonx-tx
- Default to DRAGONX chain params without -ac_* flags (randomx, blocktime=36, private=1)
- Update configure.ac: AC_INIT([DragonX],[1.0.0])
- Update client version string and user-agent to /DragonX:1.0.0/
- Add chainparams.cpp with DRAGONX network parameters
- Update build.sh, miner.cpp, pow.cpp for DragonX
- Add bootstrap-dragonx.sh utility script
- Update .gitignore for release directory

Share single RandomX dataset across all mining threads:
- Add RandomXDatasetManager with readers-writer lock, reducing RAM from
  ~2GB per thread to ~2GB total plus ~2MB per thread for the VM scratchpad
- Add LogProcessMemory() diagnostic helper for Linux and Windows
2026-03-04 18:42:42 -06:00
Duke
c1c5da11bd CXXFLAGS 2025-12-30 02:59:40 -05:00
Duke
79230c41ab CFLAGS 2025-12-30 01:54:09 -05:00
onryo
b446ec384c make sure genbuild.sh builds 2024-03-31 23:54:32 +02:00
onryo
58b65f9670 Update copyrights 2024-02-27 23:59:59 +01:00
Duke
9e26dac42a Remove libcryptoconditions dependency #381 2024-02-11 00:04:55 -05:00
Duke
b41785a684 Delete more CCs #381 2024-02-10 22:56:34 -05:00
Duke
1c04972c81 Delete more CCs #381 2024-01-31 20:46:37 -05:00
Duke
8811ba4502 Delete more CCs #381 2024-01-31 20:27:46 -05:00
Duke
9e0ac062fa Delete a lot of CC stuff #381 2024-01-30 11:23:35 -05:00
Duke
3a3c67e0fc Delete many things we do not want or need 2024-01-13 00:06:09 -05:00
Duke
de7a5fb6d7 remove cc payments and rewards 2024-01-12 20:47:46 -05:00
Duke
657bb1e25e remove dice, channels, lotto 2024-01-11 22:30:50 -05:00
Duke
2a713aeba2 remove gateways 2024-01-11 21:39:08 -05:00
Duke
d5c5c6008c Remove unused code 2024-01-07 13:05:31 -08:00
Duke Leto
21530ba159 Remove unused code 2024-01-06 21:24:57 -08:00
Duke
20fdc0e4fe Get rid of deprecation entirely which allows current code to run past block height 5555555 2023-12-27 12:57:35 -05:00
Duke
bc1d6be55f Add leveldb/include header dir to src/Makefile.am 2023-04-17 14:32:02 -07:00
Duke
e033a2e6eb Update copyrights to 2023 2023-02-09 18:06:03 -05:00
zanzibar
512da314a5 BIP155 (addrv2)
Tor v3 + i2p
2023-01-06 15:23:22 +00:00
Duke
ae64eb2392 Remove alerts 2022-12-18 08:24:49 -08:00
Jonathan "Duke" Leto
5d2307a709 Update copyrights to 2022 2022-09-19 15:45:30 -07:00
Jonathan "Duke" Leto
2b809c56a0 Move things to util/ and update docs+build system references 2022-09-19 06:16:25 -07:00
Duke Leto
61999b89ed Merge pull request 'Implement zsweep' (#195) from zsweep into dev
Reviewed-on: https://git.hush.is/hush/hush3/pulls/195
2022-09-17 02:16:05 +00:00
Duke Leto
1799c6c9bf Remove zeromq support 2022-09-12 19:35:27 -04:00
Duke Leto
bd4d2d71d3 Merge branch 'dev' into zsweep 2022-09-12 09:40:35 -04:00
jahway603
3e75a2be22 delete unused zcbenchmarks 2022-09-07 00:35:08 -04:00
Duke Leto
c6e5b07a59 You might be a king or a little street zsweeper, but sooner or later you will dance with the reaper 2022-08-24 23:38:19 -04:00
Duke Leto
35f6314123 Correctly link against librandomx in build 2022-02-20 11:32:09 -05:00
Duke Leto
c2aa7bc353 Merge branch 'dev' into stratum 2021-08-09 11:54:55 -04:00
Duke Leto
50ee752c3f hushd, hush-cli and hush-tx are real binaries now
No more bash scripts or .bat files needed as wrappers!
2021-07-11 19:16:26 -04:00
Duke Leto
30a6ca4447 Built-in stratum server 2021-07-09 18:47:15 -04:00
Duke Leto
00a7437ad8 Add -fPIC to make wolfssl happy on Ubuntu 16.04 2021-02-23 07:54:40 -08:00
Duke Leto
b58c15b9fb update copyrights 2020-12-10 07:45:36 -05:00
Duke Leto
32fda42602 Notarization 2020-12-06 22:57:07 -05:00
Duke Leto
a23b0e8388 Remove the unsupported concept of staked notaries 2020-11-15 10:28:53 -05:00
Duke Leto
52240c64b1 Tweak test suite and rename to HUSH_INSYNC 2020-11-14 20:00:23 -05:00
miodragpop
56d9c00749 asmap bucketing ported from Komodo 2020-10-02 11:10:26 +02:00
miodragpop
62f67821ec tls implemented 2020-09-29 13:08:45 +02:00
Duke Leto
3f2e814067 alert system updates 2020-09-13 19:15:15 -04:00
miodragpop
b1de0a7f86 proton lib removed 2020-07-16 23:35:43 +02:00
miodragpop
9544bd0ffc adjustments for cross build of aarch64 binaries on x86_64 linux 2020-07-12 11:47:00 +02:00
Duke Leto
96c50683e9 Fix the fucking linker bug 2020-06-13 09:01:06 -04:00
Duke Leto
b0ea67d5be desprout 2020-06-07 16:10:49 -04:00
Duke Leto
0c118eb129 delete 2020-06-07 00:04:15 -04:00
Duke Leto
f7b1c1f26f Delete Payment Disclosures
This code will be "experimental" forever, only supports Sprout, and
is a piece of shit. Deleting with fire.

Sapling viewing keys are the replacement, which already exist.
2020-06-05 07:20:38 -04:00