zcashd/doc/release-notes/release-notes-1.1.1-rc2.md

12 KiB

Notable changes

zcash-cli: arguments privacy

The RPC command line client gained a new argument, -stdin to read extra arguments from standard input, one per line until EOF/Ctrl-D. For example:

$ src/zcash-cli -stdin walletpassphrase
mysecretcode
120
^D (Ctrl-D)

It is recommended to use this for sensitive information such as private keys, as command-line arguments can usually be read from the process table by any user on the system.

Asm representations of scriptSig signatures now contain SIGHASH type decodes

The asm property of each scriptSig now contains the decoded signature hash type for each signature that provides a valid defined hash type.

The following items contain assembly representations of scriptSig signatures and are affected by this change:

  • RPC getrawtransaction
  • RPC decoderawtransaction
  • REST /rest/tx/ (JSON format)
  • REST /rest/block/ (JSON format when including extended tx details)
  • zcash-tx -json

For example, the scriptSig.asm property of a transaction input that previously showed an assembly representation of:

304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001

now shows as:

304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL]

Note that the output of the RPC decodescript did not change because it is configured specifically to process scriptPubKey and not scriptSig scripts.

Changelog

Cory Fields (4): serialization: teach serializers variadics build: univalue subdir build fixups don't throw std::bad_alloc when out of memory. Instead, terminate immediately prevector: assert successful allocation

Daira Hopwood (1): Use https: for BDB backup download URL.

David Llop (1): Update Payment API

Eirik Ogilvie-Wigley (7): Clarify help text of dumpprivkey Add sapling nullifier set Add enum for nullifier type Add sapling nullifiers to db and mempool Rename nullifier caches and maps to indicate sprout nullifiers Make sure transactions have non-empty outputs Coinbase transactions can not have shielded spend or output

Jack Grigg (52): Disable building libzcashconsensus by default depends: Upgrade Rust to 1.26.0-beta.3 depends: Add support for unpackaged Rust crates depends: Update to latest librustzcash with sapling-crypto dependencies Add Sapling to upgrade list Add static asserts to ensure CONTINUE_EXECUTION doesn't collide [Bitcoin-Tx] Adjust util-test test cases for Zcash Handle usage of prevector for CScript in Zcash-specific code GetSerializeSize changes in Zcash-specific code Remove nType and nVersion from Zcash-specific code Adjust consensus rules to require v4 transactions from Sapling activation Implement basic Sapling v4 transaction parser Add Sapling v4 transactions to IsStandard Pass transaction header into correct SignatureHash serialization level Remove now-unshadowed serialization lines that do nothing Implement SpendDescription and OutputDescription datastructures Add a constant for Overwinter's transaction version Return result of boost::apply_visitor Improve best-effort logging before termination on OOM Attempt to log before terminating if prevector allocation fails Fix -Wstring-plus-int warning on clang Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling Use CBitcoinAddress wrappers in Zcash-specific code Change JSOutPoint constructor to have js argument be uint64_t Update CreateNewContextualCMutableTransaction to create Sapling transactions Expire Overwinter transactions before the Sapling activation height Remove obsolete CreateJoinSplit and GenerateParams binaries Add missing include guard Raise 100kB transaction size limit from Sapling activation Benchmark the largest valid Sapling transaction in validatelargetx Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING Rework z_sendmany z-address recipient limit Add test of Sapling transaction size boundary Update tests for CreateNewContextualCMutableTransaction changes wallet: Change IsLockedNote to take a JSOutPoint wallet: Make some arguments const that can be Implement Sapling signature hash (ZIP 243) Update sighash tests Introduce wrappers around CZCPaymentAddress Introduce wrappers around CZCSpendingKey Introduce wrappers around CZCViewingKey Implement {Encode,Decode}PaymentAddress etc. without CZCEncoding Add key_io includes to Zcash-specific code Add valueBalance to value balances, and enforce its consensus rules Track net value entering and exiting the Sapling circuit Add contextual comment for GetValueOut() and GetShieldedValueIn() Use boost::variant to represent shielded addresses and keys Correctly serialize Groth16 JSDescription for verifyjoinsplit benchmark make-release.py: Versioning changes for 1.1.1-rc1. make-release.py: Updated manpages for 1.1.1-rc1. make-release.py: Updated release notes and changelog for 1.1.1-rc1. Comment out Gitian library handling while we don't build any libraries

Jay Graber (1): Add test for dependent txs to mempool_tx_expiry.py

Jeremy Rubin (1): Fix subscript[0] in base58.cpp

Jonas Schnelli (4): [RPC] createrawtransaction: add option to set the sequence number per input [bitcoin-tx] allow to set nSequence number over the in= command [Bitcoin-Tx] Add tests for sequence number support add bip32 pubkey serialization

João Barbosa (1): Remove unused GetKeyID and IsScript methods from CBitcoinAddress

Karl-Johan Alm (1): Removed using namespace std from bitcoin-cli/-tx and added std:: in appropriate places.

Kaz Wesley (1): CBase58Data::SetString: cleanse the full vector

Larry Ruane (1): fix qa/zcash/full_test_suite.py pathname

MarcoFalke (3): [uacomment] Sanitize per BIP-0014 [rpcwallet] Don't use floating point [test] Remove unused code

Matt Corallo (1): Add COMPACTSIZE wrapper similar to VARINT for serialization

Pavel Janík (1): [WIP] Remove unused statement in serialization

Pavol Rusnak (2): implement uacomment config parameter which can add comments to user agent as per BIP-0014 limit total length of user agent comments

Pedro Branco (1): Prevent multiple calls to ExtractDestination

Per Grön (1): Make some globals static that can be

Peter Pratscher (1): Backported Bitcoin PR #8704 to optionally return full tx details in the getblock rpc call

Pieter Wuille (22): Prevector type Remove unused ReadVersion and WriteVersion Make streams' read and write return void Make nType and nVersion private and sometimes const Make GetSerializeSize a wrapper on top of CSizeComputer Get rid of nType and nVersion Avoid -Wshadow errors Make CSerAction's ForRead() constexpr Add optimized CSizeComputer serializers Use fixed preallocation instead of costly GetSerializeSize Add serialization for unique_ptr and shared_ptr Add deserializing constructors to CTransaction and CMutableTransaction Avoid unaligned access in crypto i/o Fix some empty vector references Introduce wrappers around CBitcoinAddress Move CBitcoinAddress to base58.cpp Implement {Encode,Decode}Destination without CBitcoinAddress Import Bech32 C++ reference code & tests Convert base58_tests from type/payload to scriptPubKey comparison Replace CBitcoinSecret with {Encode,Decode}Secret Stop using CBase58Data for ext keys Split key_io (address/key encodings) off from base58

Puru (1): bitcoin-cli.cpp: Use symbolic constant for exit code

Sean Bowe (49): Switch to latest librustzcash Invoke the merkle_hash API in librustzcash via test suite. Link with -ldl Update librustzcash hash Load Sapling testnet parameters into memory. Update librustzcash hash Check that duplicate Sapling nullifiers don't exist within a transaction. Abstract uncommitted and depth personalization for IncrementalMerkleTree. Add implementation of Sapling merkle tree Add regression tests and test vectors for Sapling merkle tree Rename NullifierType to ShieldedType. Specifically describe anchors as Sprout anchors. Rename hashAnchor to hashSproutAnchor. Rename hashReserved to hashSaplingAnchorEnd. Add primitive implementation of GetSaplingAnchorEnd. Rename DB_ANCHOR to DB_SPROUT_ANCHOR. Rename GetAnchorAt to GetSproutAnchorAt. Rename PushAnchor to PushSproutAnchor. Introduce support for GetBestAnchor(SAPLING). Generalize the PopAnchor implementation behavior. Generalize the PushAnchor implementation behavior. Remove underscores from gtest test names. Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec. Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent. Add support for Sapling anchors in coins/txdb. Add support for PopAnchor(.., SPROUT/SAPLING) Add PushSaplingAnchor Add consensus support for Sapling merkle trees. Add support for Sapling anchor checks in mempool consistency checks. Calculate the correct hashFinalSaplingRoot in the miner. Adjust tests to handle Sapling anchor cache Evict transactions with obsolete anchors from the mempool Fix outdated comment Fix broken error messages. Fix miner tests Update sapling-crypto and librustzcash Swap bit endianness of test vectors Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit. Refactor so that dataToBeSigned can be used later in the function for other purposes. Update to latest librustzcash Check Sapling Spend/Output proofs and signatures. Integrate Groth16 verification and proving. Update librustzcash again Adjust tests and benchmarks Switch Rust to 1.26 Stable. Update librustzcash Update Sapling testnet parameters Update merkle tree and pedersen hash tests to account for new encoding Change txdb prefixes for sapling and avoid writing unnecessary information.

Simon Liu (16): Part of #2966, extending Sprout tests to other epochs. Closes #3134 - Least Authority Issue E Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote. Refactoring: Rename class libzcash::Note to libzcash::SproutNote. Refactoring: SproutNote member variable value moved to BaseNote. Add virtual destructor to SproutNote and BaseNote Remove unused SproutNote variables. Refactoring: rename NotePlaintext --> SproutNotePlaintext Create class hierarchy for SproutNotePlaintext. Move memo member varible from SproutNotePlaintext to BaseNotePlaintext. Tweaks to d0a1d83 to complete backport of Bitcoin PR #8704 Closes #3178 by adding verbosity level improvements to getblock RPC. Fix undefined behaviour, calling memcpy with NULL pointer. Closes #3250. Memo getter should return by reference, not by value. make-release.py: Versioning changes for 1.1.1-rc2. make-release.py: Updated manpages for 1.1.1-rc2.

Tom Harding (1): Add optional locktime to createrawtransaction

UdjinM6 (2): Fix exit codes: Every main()/exit() should return/use one of EXIT_ codes instead of magic numbers

Wladimir J. van der Laan (2): rpc: Input-from-stdin mode for bitcoin-cli doc: mention bitcoin-cli -stdin in release notes

ca333 (2): [fix] proton download path update proton.mk

kozyilmaz (2): [macOS] added curl method for param download [macOS] use shlock instead of flock in fetch-params

mruddy (1): Resolve issue bitcoin/bitcoin#3166.