Merge pull request #6430 from zcash/hotfix-v5.4.1
Back-merge of hotfix-v5.4.1
This commit is contained in:
commit
0b9f76c36c
|
@ -1,4 +1,4 @@
|
|||
Zcash 5.4.0
|
||||
Zcash 5.4.1
|
||||
<img align="right" width="120" height="80" src="doc/imgs/logo.png">
|
||||
===========
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
|||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 5)
|
||||
define(_CLIENT_VERSION_MINOR, 4)
|
||||
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)))
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
zcash (5.4.1) stable; urgency=medium
|
||||
|
||||
* 5.4.1 release.
|
||||
|
||||
-- Electric Coin Company <team@electriccoin.co> Mon, 13 Feb 2023 18:10:07 +0000
|
||||
|
||||
zcash (5.4.0) stable; urgency=medium
|
||||
|
||||
* 5.4.0 release.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: "zcash-5.4.0"
|
||||
name: "zcash-5.4.1"
|
||||
enable_cache: true
|
||||
distro: "debian"
|
||||
suites:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: "zcash-5.4.0"
|
||||
name: "zcash-5.4.1"
|
||||
enable_cache: true
|
||||
distro: "debian"
|
||||
suites:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Zcash Contributors
|
||||
==================
|
||||
|
||||
Jack Grigg (1296)
|
||||
Jack Grigg (1297)
|
||||
Kris Nuttycombe (618)
|
||||
Simon Liu (460)
|
||||
Sean Bowe (389)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASH-CLI "1" "February 2023" "zcash-cli v5.4.0" "User Commands"
|
||||
.TH ZCASH-CLI "1" "February 2023" "zcash-cli v5.4.1" "User Commands"
|
||||
.SH NAME
|
||||
zcash-cli \- manual page for zcash-cli v5.4.0
|
||||
zcash-cli \- manual page for zcash-cli v5.4.1
|
||||
.SH DESCRIPTION
|
||||
Zcash RPC client version v5.4.0
|
||||
Zcash RPC client version v5.4.1
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASH-TX "1" "February 2023" "zcash-tx v5.4.0" "User Commands"
|
||||
.TH ZCASH-TX "1" "February 2023" "zcash-tx v5.4.1" "User Commands"
|
||||
.SH NAME
|
||||
zcash-tx \- manual page for zcash-tx v5.4.0
|
||||
zcash-tx \- manual page for zcash-tx v5.4.1
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v5.4.0
|
||||
Zcash zcash\-tx utility version v5.4.1
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASHD-WALLET-TOOL "1" "February 2023" "zcashd-wallet-tool v5.4.0" "User Commands"
|
||||
.TH ZCASHD-WALLET-TOOL "1" "February 2023" "zcashd-wallet-tool v5.4.1" "User Commands"
|
||||
.SH NAME
|
||||
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.4.0
|
||||
zcashd-wallet-tool \- manual page for zcashd-wallet-tool v5.4.1
|
||||
.SH SYNOPSIS
|
||||
.B zcashd-wallet-tool
|
||||
[\fI\,OPTIONS\/\fR]
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH ZCASHD "1" "February 2023" "zcashd v5.4.0" "User Commands"
|
||||
.TH ZCASHD "1" "February 2023" "zcashd v5.4.1" "User Commands"
|
||||
.SH NAME
|
||||
zcashd \- manual page for zcashd v5.4.0
|
||||
zcashd \- manual page for zcashd v5.4.1
|
||||
.SH DESCRIPTION
|
||||
Zcash Daemon version v5.4.0
|
||||
Zcash Daemon version v5.4.1
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
`allowdeprecated` in `zcash.conf`
|
||||
---------------------------------
|
||||
|
||||
In v5.0.0 a [feature deprecation framework](https://zcash.github.io/zcash/user/deprecation.html)
|
||||
was released, to enable `zcashd` features to be formally deprecated and removed:
|
||||
|
||||
- In stage 1, a feature is marked as deprecated, but otherwise left as-is. It
|
||||
remains in this stage for at least 18 weeks.
|
||||
- In stage 2, the feature is default-disabled, but can be re-enabled with the
|
||||
`-allowdeprecated` config option. It remains in this stage for at least 18
|
||||
weeks.
|
||||
- Finally, the feature is removed - either entirely, or (e.g. in the case of RPC
|
||||
methods that were inherited from Bitcoin Core) with a "tombstone" left to
|
||||
inform users of the removal (and what to use instead if applicable).
|
||||
|
||||
Config options can be specified either as a `zcashd` argument (`-option=value`)
|
||||
or in `zcash.conf` (as a `option=value` line). However, due to a bug in the
|
||||
implementation, `allowdeprecated=feature` lines in `zcash.conf` were ignored.
|
||||
The bug went unnoticed until v5.4.0, in which the first group of features moved
|
||||
from stage 1 to stage 2. This hotfix release fixes the bug.
|
||||
|
||||
Fixed RPC blocking and wallet view lag on reindex
|
||||
-------------------------------------------------
|
||||
|
||||
The known issue reported in the v5.4.0 release notes has been fixed.
|
||||
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Jack Grigg (8):
|
||||
Sleep for 200us before each ActivateBestChainStep call
|
||||
Load `-allowdeprecated` settings after reading the config file
|
||||
qa: Refactor `wallet_deprecation` test to extract common logic
|
||||
qa: Extend `wallet_deprecation` to test `allowdeprecated` in config file
|
||||
Write release notes for v5.4.1
|
||||
Postpone dependency updates for v5.4.1
|
||||
make-release.py: Versioning changes for 5.4.1.
|
||||
make-release.py: Updated manpages for 5.4.1.
|
||||
|
||||
Jack Grigg (1):
|
||||
Adjust documentation of 200µs sleep
|
||||
|
|
@ -12,22 +12,48 @@ from test_framework.util import (
|
|||
)
|
||||
from test_framework.authproxy import JSONRPCException
|
||||
|
||||
import os.path
|
||||
|
||||
# Pick a subset of the deprecated RPC methods to test with. This test assumes that
|
||||
# the deprecation feature name is the same as the RPC method name, and that the RPC
|
||||
# method works without any arguments.
|
||||
DEFAULT_ENABLED = [
|
||||
"z_gettotalbalance",
|
||||
]
|
||||
DEFAULT_DISABLED = [
|
||||
"getnewaddress",
|
||||
"z_getnewaddress",
|
||||
]
|
||||
|
||||
# Test wallet address behaviour across network upgrades
|
||||
class WalletDeprecationTest(BitcoinTestFramework):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.num_nodes = 1
|
||||
|
||||
def setup_network(self):
|
||||
self.setup_network_internal([])
|
||||
def setup_chain(self):
|
||||
super().setup_chain()
|
||||
# Save a copy of node 0's zcash.conf
|
||||
with open(os.path.join(self.options.tmpdir, "node0", "zcash.conf"), 'r', encoding='utf8') as f:
|
||||
self.conf_lines = f.readlines()
|
||||
|
||||
def setup_network_internal(self, allowed_deprecated = []):
|
||||
def setup_network(self):
|
||||
self.setup_network_with_args([])
|
||||
|
||||
def setup_network_with_args(self, allowed_deprecated):
|
||||
dep_args = ["-allowdeprecated=" + v for v in allowed_deprecated]
|
||||
|
||||
self.nodes = start_nodes(
|
||||
self.num_nodes, self.options.tmpdir,
|
||||
extra_args=[dep_args] * self.num_nodes)
|
||||
|
||||
def setup_network_with_config(self, allowed_deprecated):
|
||||
conf_lines = self.conf_lines + ["allowdeprecated={}\n".format(v) for v in allowed_deprecated]
|
||||
with open(os.path.join(self.options.tmpdir, "node0", "zcash.conf"), 'w', encoding='utf8') as f:
|
||||
f.writelines(conf_lines)
|
||||
|
||||
self.nodes = start_nodes(self.num_nodes, self.options.tmpdir)
|
||||
|
||||
def verify_enabled(self, function):
|
||||
try:
|
||||
getattr(self.nodes[0], function)()
|
||||
|
@ -50,16 +76,17 @@ class WalletDeprecationTest(BitcoinTestFramework):
|
|||
"failed with '%s'" % errorString if len(errorString) > 0 else "succeeded",
|
||||
))
|
||||
|
||||
def run_test(self):
|
||||
# Pick a subset of the deprecated RPC methods to test with. This test assumes that
|
||||
# the deprecation feature name is the same as the RPC method name.
|
||||
DEFAULT_ENABLED = [
|
||||
]
|
||||
DEFAULT_DISABLED = [
|
||||
"getnewaddress",
|
||||
"z_getnewaddress",
|
||||
]
|
||||
def test_case(self, start_mode, features_to_allow, expected_state):
|
||||
stop_nodes(self.nodes)
|
||||
wait_bitcoinds()
|
||||
start_mode(features_to_allow)
|
||||
|
||||
for function in DEFAULT_ENABLED:
|
||||
expected_state(function)
|
||||
for function in DEFAULT_DISABLED:
|
||||
expected_state(function)
|
||||
|
||||
def run_test(self):
|
||||
# RPC methods that are deprecated but enabled by default should succeed
|
||||
for function in DEFAULT_ENABLED:
|
||||
self.verify_enabled(function)
|
||||
|
@ -68,25 +95,12 @@ class WalletDeprecationTest(BitcoinTestFramework):
|
|||
for function in DEFAULT_DISABLED:
|
||||
self.verify_disabled(function)
|
||||
|
||||
# restart with a specific selection of deprecated methods enabled
|
||||
stop_nodes(self.nodes)
|
||||
wait_bitcoinds()
|
||||
self.setup_network_internal(DEFAULT_DISABLED)
|
||||
for start_mode in (self.setup_network_with_args, self.setup_network_with_config):
|
||||
# restart with a specific selection of deprecated methods enabled
|
||||
self.test_case(start_mode, DEFAULT_DISABLED, self.verify_enabled)
|
||||
|
||||
for function in DEFAULT_ENABLED:
|
||||
self.verify_enabled(function)
|
||||
for function in DEFAULT_DISABLED:
|
||||
self.verify_enabled(function)
|
||||
|
||||
# restart with no deprecated methods enabled
|
||||
stop_nodes(self.nodes)
|
||||
wait_bitcoinds()
|
||||
self.setup_network_internal(["none"])
|
||||
|
||||
for function in DEFAULT_ENABLED:
|
||||
self.verify_disabled(function)
|
||||
for function in DEFAULT_DISABLED:
|
||||
self.verify_disabled(function)
|
||||
# restart with no deprecated methods enabled
|
||||
self.test_case(start_mode, ["none"], self.verify_disabled)
|
||||
|
||||
if __name__ == '__main__':
|
||||
WalletDeprecationTest().main()
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
# bdb 18.1.40 2020-09-01
|
||||
#
|
||||
|
||||
native_zstd 1.5.4 2023-03-01
|
||||
|
||||
# cxx 1.0.84-1.0.87 didn't update third-party/Cargo.lock
|
||||
native_cxxbridge 1.0.84 2024-02-01
|
||||
native_cxxbridge 1.0.85 2024-02-01
|
||||
|
@ -11,12 +13,14 @@ native_cxxbridge 1.0.86 2024-02-01
|
|||
native_cxxbridge 1.0.87 2024-02-01
|
||||
native_cxxbridge 1.0.88 2024-02-01
|
||||
native_cxxbridge 1.0.89 2024-02-01
|
||||
native_cxxbridge 1.0.90 2024-02-01
|
||||
rustcxx 1.0.84 2024-02-01
|
||||
rustcxx 1.0.85 2024-02-01
|
||||
rustcxx 1.0.86 2024-02-01
|
||||
rustcxx 1.0.87 2024-02-01
|
||||
rustcxx 1.0.88 2024-02-01
|
||||
rustcxx 1.0.89 2024-02-01
|
||||
rustcxx 1.0.90 2024-02-01
|
||||
|
||||
# CCache 4.7 appears to drop support for Ubuntu 18.04
|
||||
native_ccache 4.7 2023-03-01
|
||||
|
@ -46,6 +50,7 @@ native_rust 1.65.0 2023-03-01
|
|||
native_rust 1.66.0 2023-03-01
|
||||
native_rust 1.66.1 2023-03-01
|
||||
native_rust 1.67.0 2023-03-01
|
||||
native_rust 1.67.1 2023-03-01
|
||||
|
||||
# We're never updating to this version
|
||||
bdb 18.1.40 2024-02-01
|
||||
|
|
|
@ -94,14 +94,6 @@ bool AppInit(int argc, char* argv[])
|
|||
return true;
|
||||
}
|
||||
|
||||
// Handle setting of allowed-deprecated features as early as possible
|
||||
// so that it's possible for other initialization steps to respect them.
|
||||
auto deprecationError = SetAllowedDeprecatedFeaturesFromCLIArgs();
|
||||
if (deprecationError.has_value()) {
|
||||
fprintf(stderr, "%s", deprecationError.value().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (!fs::is_directory(GetDataDir(false)))
|
||||
|
@ -143,6 +135,14 @@ bool AppInit(int argc, char* argv[])
|
|||
return false;
|
||||
}
|
||||
|
||||
// Handle setting of allowed-deprecated features as early as possible
|
||||
// so that it's possible for other initialization steps to respect them.
|
||||
auto deprecationError = LoadAllowedDeprecatedFeatures();
|
||||
if (deprecationError.has_value()) {
|
||||
fprintf(stderr, "%s", deprecationError.value().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
// Command-line RPC
|
||||
bool fCommandLine = false;
|
||||
for (int i = 1; i < argc; i++)
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
//! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it
|
||||
#define CLIENT_VERSION_MAJOR 5
|
||||
#define CLIENT_VERSION_MINOR 4
|
||||
#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
|
||||
|
|
|
@ -61,7 +61,7 @@ void EnforceNodeDeprecation(int nHeight, bool forceLogging, bool fThread) {
|
|||
}
|
||||
}
|
||||
|
||||
std::optional<std::string> SetAllowedDeprecatedFeaturesFromCLIArgs() {
|
||||
std::optional<std::string> LoadAllowedDeprecatedFeatures() {
|
||||
auto args = GetMultiArg("-allowdeprecated");
|
||||
std::set<std::string> allowdeprecated(args.begin(), args.end());
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
// Per https://zips.z.cash/zip-0200
|
||||
// Shut down nodes running this version of code, 16 weeks' worth of blocks after the estimated
|
||||
// release block height. A warning is shown during the 14 days' worth of blocks prior to shut down.
|
||||
static const int APPROX_RELEASE_HEIGHT = 1977500;
|
||||
static const int APPROX_RELEASE_HEIGHT = 1983000;
|
||||
static const int RELEASE_TO_DEPRECATION_WEEKS = 16;
|
||||
static const int EXPECTED_BLOCKS_PER_HOUR = 3600 / Consensus::POST_BLOSSOM_POW_TARGET_SPACING;
|
||||
static_assert(EXPECTED_BLOCKS_PER_HOUR == 48, "The value of Consensus::POST_BLOSSOM_POW_TARGET_SPACING was chosen such that this assertion holds.");
|
||||
|
@ -71,13 +71,13 @@ extern bool fEnableWalletTxVJoinSplit;
|
|||
void EnforceNodeDeprecation(int nHeight, bool forceLogging=false, bool fThread=true);
|
||||
|
||||
/**
|
||||
* Checks command-line arguments for enabling and/or disabling of deprecated
|
||||
* Checks config options for enabling and/or disabling of deprecated
|
||||
* features and sets flags that enable deprecated features accordingly.
|
||||
*
|
||||
* @return std::nullopt if successful, or an error message indicating what
|
||||
* values are permitted for `-allowdeprecated`.
|
||||
*/
|
||||
std::optional<std::string> SetAllowedDeprecatedFeaturesFromCLIArgs();
|
||||
std::optional<std::string> LoadAllowedDeprecatedFeatures();
|
||||
|
||||
/**
|
||||
* Returns a comma-separated list of the valid arguments to the -allowdeprecated
|
||||
|
|
Loading…
Reference in New Issue