zcashd/doc/release-notes/release-notes-4.2.0-rc1.md

11 KiB

Notable changes

Switch to ed25519-zebra for consensus signature checks

This removes the zcashd dependency upon libsodium for ed25519 signature checks and instead uses the Rust implementation in ed25519-zebra, which has been active for signature verification since the Canopy upgrade. For more information on the conditions that led to this change see https://hdevalence.ca/blog/2020-10-04-its-25519am

Update default fees according to ZIP-313

Reduce default fees to 0.00001 ZEC as specified in ZIP-313 and ensure that transactions paying at least the new minimum fee meet the transaction relay threshold irrespective of transaction size.

Improve getblocktemplate rpc performance when using shielded coinbase

This change precomputes future block templates to permit miners to begin working atop newly arrived blocks as quickly as possible, rather than waiting for a new template to be generated after a block has arrived. It also reduces the initial the wait time for incorporating new mempool transactions into a block from 1 minute to 10 seconds; the previous value was inherited from the upstream bitcoin codebase but is inappropriate for our block timing.

Migrate from rpc-tests.sh to rpc-tests.py

This unifies and simplifies the RPC testing framework, as has been done in the upstream Bitcoin codebase.

Changelog

Alex Morcos (2): Reorder RPC tests for running time remove obsolete run-bitcoind-for-test.sh

Alfredo Garcia (1): add address to z_importviewingkey error

Casey Rodarmor (1): Add p2p-fullblocktest.py

Chun Kuan Lee (2): gui: get special folder in unicode refactor: Drop boost::this_thread::interruption_point and boost::thread_interrupted in main thread

Cory Fields (1): build: a few ugly hacks to get the rpc tests working out-of-tree

Daira Hopwood (5): Windows cross-build generates .lib files, which should be ignored by git and removed by clean. Partial revert of "Update links". See #4904 Fix a typo introduced in #4904. Reduce the default fee for z_* operations, and the "low fee penalty" threshold for mempool limiting, to 1000 zatoshis. Always allow transactions paying at least DEFAULT_FEE to be relayed, and do not rate-limit them. In other words, make sure that the "minimum relay fee" is no greater than DEFAULT_FEE.

Daniel Kraft (1): Fix crash when mining with empty keypool.

Dimitris Apostolou (5): Fix typo readelf is Linux only Fix readelf configuration Update links Remove workaround affecting old Boost version

Elliot Olds (1): Check if zmq is installed in tests, update docs

Eric Lombrozo (1): Added fPowNoRetargeting field to Consensus::Params that disables nBits recalculation.

Jack Grigg (32): test: Use default shielded address in RPC tests where the type is irrelevant Revert "remove SignatureHash from python rpc tests" test: Remove FindAndDelete from RPC test framework test: Fix SignatureHash RPC test helper test: Set hashFinalSaplingRoot default correctly in create_block test: Re-enable regtest difficulty adjustment for unit tests that use it test: Adjust some Zcash RPC tests to work with parallel runner test: Run rpc-tests.py in full_test_suite.py lint: Remove boost/foreach.hpp from allowed includes test: Silence pyflakes unused import warning test: Run shielding-heavy RPC tests in serial Fix Hungarian notation nit from Daira Switch to ed25519-zebra for consensus signature checks test: Use ed25519_verify in ConsensusTests Update minimum chain work and set activation block hashes for mainnet Update minimum chain work and set activation block hashes for testnet net: Rework CNode spans rpc: Reload CNode spans after reloading the log filter rpc: Log the new filter when we set it mempool: Log all accepted txids at INFO level Add header to files that will need it scripted-diff: Migrate from boost::variant to std::variant Finish migrating to std::variant Migrate from boost::optional::get to boost::optional::value Add header to files that will need it scripted-diff: Migrate from boost::optional to std::optional Finish migrating to std::optional lint: Remove boost::variant and boost::optional from allowed includes test: Fix test_bitcoin compilation on macOS High Sierra cargo update tracing: Remove unnecessary tracing_init_inner internal function tracing: Simplify init logic using optional layers

James O'Beirne (2): Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator Add basic coverage reporting for RPC tests

Jeff Garzik (1): qa/pull-tester/rpc-tests.py: chmod 0755

Jesse Cohen (1): [doc][trivial] no retargeting in regtest mode

John Newbery (6): Use configparser in rpc-tests.py Use argparse in rpc_tests.py Improve rpc-tests.py arguments Refactor rpc-tests.py Various review markups for rpc-tests.py improvements Add exclude option to rpc-tests.py

Jorge Timón (8): Small preparations for Q_FOREACH, PAIRTYPE and #include <boost/foreach.hpp> removal scripted-diff: Fully remove BOOST_FOREACH scripted-diff: Remove PAIRTYPE Introduce src/reverse_iterator.hpp and include it... Fix const_reverse_iterator constructor (pass const ptr) scripted-diff: Remove BOOST_REVERSE_FOREACH scripted-diff: Remove #include <boost/foreach.hpp> clang-format: Delete ForEachMacros

Josh Ellithorpe (1): Include transaction hex in verbose getblock output

Kris Nuttycombe (7): Write down the folklore about nSequence Prefer explicit passing of CChainParams to the Params() global. Remove vestigial OSX_SDK_VERSION from darwin build. Update boost to 1.75, postpone other updates. Don't log to stdout if a file logger is configured. make-release.py: Versioning changes for 4.2.0-rc1. make-release.py: Updated manpages for 4.2.0-rc1.

Larry Ruane (2): add more version information to getinfo rpc improve getblocktemplate performance for shielded coinbase

Luv Khemani (1): Add autocomplete to bitcoin-qt's console window.

Marco Falke (37): [doc] trivial: fix markdown syntax in qa/rpc-tests/README.md [rpc-tests] fundrawtransaction: Update fee after minRelayTxFee increase [rpc-tests] Check return code [qa] Split README.md to /qa and /qa/rpc-tests [qa] Extend README.md [qa] keypool: Fix white space to prepare transition to test framework [qa] keypool: DRY: Use test framework [qa] pull-tester: Cleanup (run keypool, tidy stdout) [qa] Use python2/3 syntax [qa] rpc-tests: Properly use integers, floats [qa] mininode: Catch exceptions in got_data [qa] pull-tester: Don't mute zmq ImportError [qa] pull-tester: Exit early when no tests are run [qa] rpc-tests: Fix link in comment and label error msg [qa] Switch to py3 [qa] Refactor test_framework and pull tester [qa] Update README.md [qa] Stop other nodes, even when one fails to stop [qa] pull-tester: Adjust comment [qa] pull-tester: Run rpc test in parallel [qa] Add option --portseed to test_framework [qa] Remove hardcoded "4 nodes" from test_framework [qa] test_framework: Append portseed to tmpdir [qa] test_framework: Use different rpc_auth_pair for each node [qa] pull-tester: Fix assertion and check for run_parallel [qa] pull-tester: Start longest test first [qa] Adjust timeouts for micro-optimization of run time [qa] Use single cache dir for chains [qa] Remove unused code [qa] pull-tester: Don't mute zmq ImportError [qa] create_cache: Delete temp dir when done [qa] Refactor RPCTestHandler to prevent TimeoutExpired [qa] pull-tester: Only print output when failed [qa] test_framework: Exit when tmpdir exists [qa] rpc-tests: Apply random offset to portseed qa: Set correct path for binaries in rpc tests util: Replace boost::signals2 with std::function

Nate Wilcox (1): configure.ac: Introduce macros to simplify requiring tools.

Suhas Daftuar (2): Remove unmaintained example test script_test.py Tests: add timeout to sync_blocks() and sync_mempools()

Wladimir J. van der Laan (2): build: don't distribute tests_config.py test: don't override BITCOIND and BITCOINCLI if they're set

fanquake (4): [doc] Add OS X ZMQ requirement to QA readme [trivial] Add tests_config.ini to .gitignore [qa][doc] Correct rpc test options in readme build: set minimum supported macOS to 10.14

furszy (15): wallet:AvailableCoins fOnlySpendable filtering flag implemented + connected to sendmany async operation. wallet:AvailableCoins nMinDepth filter implemented + connected to sendmany async operation. asyncrpcoperation_sendmany::find_utxos removing a redundant coinbase check, coinbases are already being filtered by the AvailableCoins flag. wallet:AvailableCoins filter by destination/s feature implemented + connected to sendmany async operation. sendmany::find_utxo removing an unneeded recursive lock, AvailableCoins is already locking cs_main and cs_wallet. wallet:COutput adding fIsCoinbase member. COutput: implemented Value() method. asyncRPCOperation_sendmany:find_utxos, removing a redundant loop over all of the available utxo in the wallet. sendmany: removing now unused SendManyInputUTXO class. move-only: asyncOp_sendmany, target amount calculation moved before find inputs (utxos and notes). sendmany operation: Creating TxValues struct to store the transaction values in a more organized manner. Improving asyncoperation_sendmany, removing another redundant for loop over all of the available utxos. rpc_wallet_tests: changed "Insufficient funds" error message to a proper "Insufficient transparent funds". This is because we are now throwing the insufficient transparent balance rpc error inside load_utxo. asyncOp sendmany: moved inputs total amount check inside load_utxo before the dust validation. sendmany::find_unspent_notes removing an unneeded recursive lock, GetFilteredNotes is already locking cs_main and cs_wallet.

isle2983 (1): [doc] - clarify statement about parallel jobs in rpc-tests.py

Marshall Gaucher (1): Update expected fails for Sprout txns flows on Canopy

ptschip (1): Migrated rpc-tests.sh to all python rpc-tests.py

whythat (2): [qa]: add parsing for ':' argument form to rpc_url() [qa]: enable rpcbind_test