diff --git a/configure.ac b/configure.ac index 4aab55486..3fc8a47c7 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 1) dnl Must be kept in sync with src/clientversion.h , ugh! define(_CLIENT_VERSION_MINOR, 3) -define(_CLIENT_VERSION_REVISION, 0) +define(_CLIENT_VERSION_REVISION, 1) 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(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1))) diff --git a/contrib/debian/changelog b/contrib/debian/changelog index 9f8ecba11..87f33a042 100644 --- a/contrib/debian/changelog +++ b/contrib/debian/changelog @@ -1,3 +1,32 @@ +dragonx (1.3.1) stable; urgency=high + + * Fix a file-descriptor double close that could corrupt wallets and block + files and crash the node. wolfSSL's CloseSocket macro turned every P2P + disconnect into a bare close() that left the socket handle set, so the + same fd number was closed again after another thread had reused it, + often for wallet.dat, a BDB log or a block file. Present in every + release since the 2020 move to wolfSSL. + * Defense in depth: block and undo files opened for reading are now + read-only; a wallet error while processing a block now shuts the node + down cleanly instead of crashing it; the BDB logs are kept when the + shutdown flush fails, so the next start can recover the wallet. + * Fix an abort on the next block after a note arrives at an address + imported with z_importviewingkey. + * Large wallets: break the replay -> witness rebuild -> kill loop. Witness + extension is much cheaper and parallel, the chainstate is flushed at + least hourly, replayed transactions keep their nullifiers (no mass + reseed), and the wallet locator never runs ahead of what the wallet has + processed. + * Much faster balance and note RPCs on wallets with thousands of Sapling + notes, through an in-memory cache of decrypted notes (warmed at startup, + -notecachewarmup) and by avoiding deep copies; history RPCs gather + Sapling keys once per call. + * -txindex=0 nodes now include fully shielded notes in queries with + minconf >= 2, so -zsweep and -consolidation now move them. + * No consensus change; PROTOCOL_VERSION is unchanged. + + -- DragonX Developers Tue, 27 Oct 2026 12:00:00 +0000 + dragonx (1.3.0) stable; urgency=medium * RandomX stratum mining support: the daemon can serve stratum clients diff --git a/doc/man/dragonx-cli.1 b/doc/man/dragonx-cli.1 index 849ef114a..a4f8a8b5b 100644 --- a/doc/man/dragonx-cli.1 +++ b/doc/man/dragonx-cli.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH DRAGONX-CLI "1" "August 2026" "dragonx-cli v1.3.0" "User Commands" +.TH DRAGONX-CLI "1" "October 2026" "dragonx-cli v1.3.1" "User Commands" .SH NAME -dragonx-cli \- manual page for dragonx-cli v1.3.0 +dragonx-cli \- manual page for dragonx-cli v1.3.1 .SH DESCRIPTION -DragonX RPC client version v1.3.0 +DragonX RPC client version v1.3.1 .PP In order to ensure you are adequately protecting your privacy when using DragonX, please see . diff --git a/doc/man/dragonx-tx.1 b/doc/man/dragonx-tx.1 index 126f7b444..aa7b20fe6 100644 --- a/doc/man/dragonx-tx.1 +++ b/doc/man/dragonx-tx.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH DRAGONX-TX "1" "August 2026" "dragonx-tx v1.3.0" "User Commands" +.TH DRAGONX-TX "1" "October 2026" "dragonx-tx v1.3.1" "User Commands" .SH NAME -dragonx-tx \- manual page for dragonx-tx v1.3.0 +dragonx-tx \- manual page for dragonx-tx v1.3.1 .SH DESCRIPTION -hush\-tx utility version v1.3.0 +hush\-tx utility version v1.3.1 .SS "Usage:" .TP hush\-tx [options] [commands] diff --git a/doc/man/dragonxd.1 b/doc/man/dragonxd.1 index 9fd809079..c72058e19 100644 --- a/doc/man/dragonxd.1 +++ b/doc/man/dragonxd.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1. -.TH DRAGONXD "1" "August 2026" "dragonxd v1.3.0" "User Commands" +.TH DRAGONXD "1" "October 2026" "dragonxd v1.3.1" "User Commands" .SH NAME -dragonxd \- manual page for dragonxd v1.3.0 +dragonxd \- manual page for dragonxd v1.3.1 .SH DESCRIPTION -DragonX Daemon version v1.3.0 +DragonX Daemon version v1.3.1 .PP In order to ensure you are adequately protecting your privacy when using DragonX, please see . diff --git a/src/chain.h b/src/chain.h index aa039e83f..87edf54ad 100644 --- a/src/chain.h +++ b/src/chain.h @@ -35,7 +35,7 @@ extern bool fZindex; // These version thresholds control whether nSproutValue/nSaplingValue are // serialized in the block index. They must be <= CLIENT_VERSION or the // values will never be persisted, causing nChainSaplingValue to reset -// to 0 after node restart. DragonX CLIENT_VERSION is 1030050 (v1.3.0.50). +// to 0 after node restart. DragonX CLIENT_VERSION is 1030150 (v1.3.1.50). static const int SPROUT_VALUE_VERSION = 1000000; static const int SAPLING_VALUE_VERSION = 1000000; // Block-index records written at >= this version store nSaplingValue as a boost::optional diff --git a/src/clientversion.h b/src/clientversion.h index 734105201..8106ec01e 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -30,7 +30,7 @@ // Must be kept in sync with configure.ac , ugh! #define CLIENT_VERSION_MAJOR 1 #define CLIENT_VERSION_MINOR 3 -#define CLIENT_VERSION_REVISION 0 +#define CLIENT_VERSION_REVISION 1 #define CLIENT_VERSION_BUILD 50 //! Set to true for release, false for prerelease or test build