build: bump version to 1.2.0

dev and the v1.1.0 tag were version-indistinguishable: both reported
CLIENT_VERSION 1010050, subversion "/DragonX:1.1.0/" and IS_RELEASE=true, because
660678f9b was the last commit to touch a version file and it predates the tag. The
twenty commits since were therefore invisible to every channel a client can query,
and the in-app updater compares exactly those. Only git-describe distinguished
them, and that degrades to "-unk" on a tarball build.

A minor bump rather than a patch: since v1.1.0 the tree gained auto-shield-coinbase
(a new feature, on by default where the seed is known-recoverable), BIP39 seed
phrases as the default for new wallets, the z_autoshieldstatus RPC, and three new
wallet.dat record types. Understating that as 1.1.1 would hide an on-disk format
change from the one place users look.

The published v1.1.0 tag is left where it is. Re-pointing a tag that is already on
the remote breaks anyone who fetched it.

The wallet feature version deliberately stays at FEATURE_LATEST = 60000. The new
records are additive and older binaries skip unknown types harmlessly, while
bumping it would make them refuse the wallet outright with DB_TOO_NEW. The one real
incompatibility, a truncated hdchain record, is self-healing as of a0ccb4be1, so
refusing to load would be strictly worse for the user than what happens today.

Verified: configure.ac and clientversion.h agree; CLIENT_VERSION 1010050 -> 1020050;
build.sh derives 1.2.0; bitcoin-config.h carries CLIENT_VERSION_MINOR 2 after a
reconfigure run with the depends CONFIG_SITE; a full rebuild of src succeeds with 0
errors and both binaries report v1.2.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-25 21:52:51 +02:00
parent 04ac7c1186
commit 4dc57e80b1
3 changed files with 34 additions and 2 deletions

View File

@@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60]) AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 1) define(_CLIENT_VERSION_MAJOR, 1)
dnl Must be kept in sync with src/clientversion.h , ugh! dnl Must be kept in sync with src/clientversion.h , ugh!
define(_CLIENT_VERSION_MINOR, 1) define(_CLIENT_VERSION_MINOR, 2)
define(_CLIENT_VERSION_REVISION, 0) define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 50) define(_CLIENT_VERSION_BUILD, 50)
define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50))) define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))

View File

@@ -1,3 +1,35 @@
dragonx (1.2.0) stable; urgency=medium
* Auto-shield matured coinbase into a wallet-owned Sapling address on a block
interval. The destination is derived from the HD seed at m/32'/coin'/i' and
is the lowest index inside -mnemonicsaplinggap, so a bare seed-phrase restore
re-derives it; auto-shielding refuses to run rather than send anywhere a
restore would not find. Enabled only when the seed's provenance is known to be
recoverable, so upgraded wallets stay opted out until the operator says
otherwise.
* Create new wallets from a BIP39 seed phrase by default, byte-compatible with
SilentDragonXLite. z_exportmnemonic returns the phrase; -mnemonic restores
from it.
* New RPC z_autoshieldstatus reports whether auto-shielding is on, the resolved
destination, the HD seed's provenance, and why it is off when it is off.
* Bound each auto-shield round to 400 inputs and correct the transaction size
estimate to account for all three Sapling output descriptions, and lock the
selected coins for the duration of proof building so a concurrent
z_shieldcoinbase or z_sendmany cannot select them too.
* Repair, rather than reject, an hdchain record truncated by an older wallet
build. Previously one address generated under a pre-1.1.0 binary left the
wallet unopenable with "Wallet corrupted"; the record is now completed and
rewritten, and the error text names the seed-phrase remedy when it genuinely
cannot be recovered.
* Clear a stale sweep flag that could otherwise leave sweeping, consolidation
and auto-shielding permanently disabled together, and stop the async queue
silently discarding operations at shutdown while reporting success.
* Derive the release version from configure.ac in build.sh instead of a
hardcoded literal, and document container-based release builds in
doc/build-containers.md.
-- DragonX Developers <dev@dragonx.is> Tue, 25 Aug 2026 19:45:00 +0000
dragonx (1.1.0) stable; urgency=medium dragonx (1.1.0) stable; urgency=medium
* Extend DRAGONX checkpoints to height 3,226,000, enabling the existing * Extend DRAGONX checkpoints to height 3,226,000, enabling the existing

View File

@@ -29,7 +29,7 @@
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
// Must be kept in sync with configure.ac , ugh! // Must be kept in sync with configure.ac , ugh!
#define CLIENT_VERSION_MAJOR 1 #define CLIENT_VERSION_MAJOR 1
#define CLIENT_VERSION_MINOR 1 #define CLIENT_VERSION_MINOR 2
#define CLIENT_VERSION_REVISION 0 #define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 50 #define CLIENT_VERSION_BUILD 50