Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
network:cryptocurrencies
zcash
zcash.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File zcash.changes of Package zcash
------------------------------------------------------------------- Sat Jul 09 12:37:34 UTC 2022 - marec@detebe.org - Update to version 5.0.0: * Update v5.0.0 release notes to note NU5 upgrade * Set NU5 activation height & bump protocol version. * make-release.py: Updated release notes and changelog for 5.0.0. * make-release.py: Updated manpages for 5.0.0. * make-release.py: Versioning changes for 5.0.0. * Revert "Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt." * Migrate to `zcash_primitives 0.6` et al * Update rpcwallet help to better distinguish transparent-only APIs. * Deprecate `getrawchangeaddress` and `z_listaddresses` * Add tests to check auth data commitments committing to Orchard actions. * Include getbalance in recommendations for z_getbalance and z_gettotalbalance replacements. * Add missing parenthesis to -reindex help. * make-release.py: Updated release notes and changelog for 5.0.0-rc1. * make-release.py: Updated manpages for 5.0.0-rc1. * Fix typos in release notes & Orchard wallet internal API doc. * make-release.py: Versioning changes for 5.0.0-rc1. * Fix a typo in the release script. * Set RELEASE_TO_DEPRECATION_WEEKS to 2 weeks to provide RC EOS halt. * Postpone dependency updates prior to v5.0.0-rc1 * Add -orchardactionlimit help text. * Add -orchardactionlimit parameter to guard against memory exhaustion. * Use default anchor confirmations for minconf in z_mergetoaddress. * Change default anchor depth from 10 confirmations to 3 * Fix missing handling for imported transparent multisig addresses. * Reproduce an assertion failure in the listaddresses RPC * Update release process documentation to clarify the use of release stabilization branches. * Apply suggestions from code review * Build releases from a commit hash, rather than a named branch. * Ensure transaction integer fields are zero-initialized. * Add parity-scale-codec licenses to contrib/debian/copyright * Gracefully handle Get(Sprout/Sapling)NoteWitnesses failure. * Apply suggestions from code review * Add z_get(total)balance to deprecation flags. * Fix RPC tests that depend upon -anchorconfirmations=1 * Add -anchorconfirmations to the release notes * Disallow -anchorconfirmations values > 100 * Add anchor depth parameter to Get*NoteWitnesses * Fix WalletTests.CachedWitnessesEmptyChain for new anchor selection. * Select an anchor and notes that have 10 confirmations. * Rename nOrchardAnchorConfirmations -> nAnchorConfirmations * Select Orchard anchors at `-orchardanchorconfirmations` depth. * Clarify documentation of the deprecation process. * Remove `-allowdeprecated=all` * Require wallet recovery phrase to be backed up for z_getnewaccount and z_getaddressforaccount * Use ERROR level logging for fatal errors in main/init * Add orchard pool metrics * ThreadStartWalletNotifier: wait until !IBD, rather than !reindex * Specify the format and epoch * Add deprecation policy to the zcashd book. * Remove zcrawreceive, zcrawjoinsplit, zcrawkeygen from default-allowed deprecated methods. * Allow deprecated wallet features to be preemptively disabled. * Update minimum chain work and set NU5 activation block hash for testnet * Document the block time in the `z_gettreestate` RPC response * Remove -developersapling since it hasn't been implemented for a long time * Tidy up spacing in newly-ported gtests * Update comments in newly-ported gtests to be more consistent with current codebase * Update copyright header * Port anchors_test to gtest suite CoinsTests * Port anchors_flush_test to gtest suite CoinsTests * Port nullifiers_test to gtest suite CoinsTests * Port anchor_regression_test to gtest suite CoinsTests * Port anchor_pop_regression_test to gtest suite CoinsTests * Port nullifier_regression_test to gtest suite CoinsTests * Port CCoinsViewTest to gtest suite CoinsTests * Create a new gtest suite CoinsTests * Make [seed_]insecure_rand available to the gtests * Downgrade btest suite coins_test to BasicTestingSetup * Port btest rpc_z_sendmany_taddr_to_sapling to gtest suite WalletRPCTests * Port btest rpc_z_mergetoaddress_internals to gtest suite WalletRPCTests * Port btest rpc_z_shieldcoinbase_internals to gtest suite WalletRPCTests * Create a new gtest group WalletRPCTests * Port btest test_basic_joinsplit_verification to gtest suite Joinsplit * Allow rpc python tests to be run standalone * Use bullseye apt source in Dockerfile to match debian:11 base image * Use fallible version parsing for tags. * Change the numbering convention for hotfixes to increment the patch number, not the hyphen number. fixes #4364 * btest parallelization work: tag #if'd out test suites * Allow parallel btest runs using make as the parallelization tool. * Separate test suite from tests, inspired by upstream's #12926 * Remove proof parameter loading from btests * Make a LoadGlobalWallet and UnloadGlobalWallet for gtests * remove JoinSplitTestingSetup from sighash_tests -- it doesn't need it * Closing #1539 simplifies gtest Makefile. * Fix boolean initialization in Orchard transaction builder. * zcashd-wallet-tool: improve the error message for an invalid logging filter directive. * Default to error logging if we can't parse the log filter. * Fix typo * zcutil/build-debian-package.sh: copy executable and man page for zcashd-wallet-tool. * Cargo.toml: Rename hdwallet source * Update boost dependencies to version 1.79.0 * add tx-orchard-duplicate-nullifiers.h to Makefile.gtest.include * Make `-reindex` and `-reindex-chainstate` imply `-rescan` (provided that the wallet is enabled and pruning is disabled, and unless `-rescan=0` is specified explicitly). * zcutil/build.sh: Run zcutil/clean.sh before building. fixes #3625 * Fix to 4.7.0 release notes: testnet nodes that upgrade prior to height 1,842,420 actually still need to run with -reindex and -rescan. * Bump actions/checkout from 2 to 3 * Fix typo in getaddressbalance RPC help * Move LoadProofParameters to gtest/utils.cpp ------------------------------------------------------------------- Sat Apr 16 07:51:03 UTC 2022 - marec@detebe.org - Update to version 4.7.0: * make-release.py: Updated release notes and changelog for 4.7.0. * make-release.py: Updated manpages for 4.7.0. * make-release.py: Versioning changes for 4.7.0. * qa: postpone native_clang, libcxx, boost, and native_b2 upgrades before 4.7.0 release * Push back NU5 testnet release height to 1842420 * Apply suggestions from code review * Update the release notes to describe consensus changes since v4.6.0 * Update protocol version to 170050 for v4.7.0 release. * fix smoke_tests.py accounting math to remove the warning before test 4r * Set NU5 testnet reactivation height. * Defensively check for a null pindex in `FindFork` * Don't advance the wallet init timer until past reindex. * Revert "rpc: Reload CNode spans after reloading the log filter". fixes #5863 * add walletrequirebackup=false to the zcash argument list in smoke_tests.py * Fix uninitialized sleep variable. * Fix missing null initialization of `pindexLastTip` pointer in ThreadStartWalletNotifier * depends: Remove direct `tokio` dependency * depends: Remove `hyper 0.14.2` pin * remove final dot from error msg * cargo update * qa: Update Berkeley DB release listener regex * Make Orchard `finalState` serialization format match Sapling. * fix grammar in message * Ensure pindexPrev is not null before mining against it. * test: Capture gtest log output and only print on error * Fix error in z_listaccounts help text. * change error message * rpc: Document that enabling trace-level logging is unsafe * wallet: Bump a trace log message to error in `Wallet::checkpoint` * Apply suggestions from code review * Check for overflow in IncrementAccountCounter(). * Apply suggestions from code review * Fix assertion in wallet initialization when wallet best block is ahead of the main chain. * Never consider transactions that pay the default fee to be free. * qa: Postpone update to Rust 1.60 * Use DEFAULT_FEE consistently in wallet_unified_change test * Return MAX_PRIORITY when transactions contain an Orchard bundle. * Add 'AllowRevealedAmounts' in tests where it is now necessary. * Make all privacy policy checks after note selection. * Fix >= bound when iterating over network upgrades. * Use height of latest network upgrade in -mineraddress validation. * Inline z_listaccounts check in wallet_accounts.py * Add z_listaccounts RPC. * lint: Add check that every Cargo patch has a matching replacement * Update to orchard-0.1.0-beta.3, incrementalmerkletree 0.3.0-beta.2, secp256k1-0.21 * Correctly derive UAs for unknown Orchard receivers. * IsNoteSaplingChange: Inline internal recipient check. * Introduce push_orchard_result in z_listreceivedbyaddress. * Introduce CWallet::HaveOrchardSpendingKeyForAddress. * Check privacy strategy when setting allowed change types. * Add logging to the miner to provide more detail on tx selection. * Add a test demonstrating that change may cross the pool boundary without permission. * Update Dockerfile * wallet: Remove duplicate nullifier insertion into Orchard wallet * wallet: Add assertions during Orchard wallet bundle appends * Add trace-level logging to the Orchard wallet * Fix logic for deciding whether to perform Orchard updates during rescan * Only check nWitnessCacheSize on rewind if we've ever witnessed a Sprout or Sapling note. * Omit check of Orchard commitment root after rewind past first checkpoint. * Update test to verify rewind behavior. * Improve error output from OrchardWallet::get_spend_info * Fix a bug in initialization of the Orchard wallet after NU5 activation. * Refactor ChainTip to take a struct of Merkle trees instead of a pair. * Adds a test demonstrating an Orchard wallet initialization bug. * wallet: Rename `CWallet::GetBestBlock` to `GetPersistedBestBlock` * AcceptToMemoryPool: Re-add missing code comment * mempool: Remove duplicated anchor and nullifier assertions * Apply `HaveShieldedRequirements` to coinbase transactions * wallet: Initialise ThreadNotifyWallets with wallet's best block * Fix the exception message for SetSeedFromMnemonic failure * Fix sporadic failures in StoreAndRetrieveMnemonicSeedInEncryptedStore * wallet: Treat `mnemonichdchain` records as key material * AcceptToMemoryPool: Remove initial nullifier checks for Sprout and Sapling (within the mempool only), that are redundant with checks in HaveShieldedRequirements. The latter take into account nullifiers in the chain (using CCoinsViewMemPool::GetNullifier) and include Orchard. * Fix test_wallet_zkeys failures by increasing diversifier search offset * Do not display internal addresses in z_listaddresses. * Add a test demonstrating that z_listaddresses reveals internal addrs. * This check done for Sprout and Sapling (which is separate from consensus nullifier checks) was not being done for Orchard. * Add account ID to z_listunspent results. * qa: Add test for Orchard support in `z_listunspent` * Update incrementalmerkletree version to fix GC bug & use updated API. * Add Orchard support to z_listunspent. * Apply suggestions from code review * wallet: Persist Orchard tx height alongside note positions * wallet: Add version information to Orchard commitment tree data * wallet: Persist Orchard note positions with the witness tree * wallet: Move Orchard note position data into a separate map * qa: Add RPC test testing Orchard note position persistence * Apply suggestions from code review * Update FFI to use scoped APIs for viewing keys and addresses * Add independent wallet persistence tests. * .gitignore: add files temporarily created by autoconf. * Fix an incorrect preprocessor symbol. Also repair the lint-includes-guards.sh script that was checking for the incorrect symbol. * Postpone native_clang and libcxx 14.0.0. * qa/zcash/updatecheck.py: print status code and response of failed http requests. * Note that Debian 9 has been removed from the list of supported platforms. * Update release notes to include all RPC changes since 4.6.0 * Add a test verifying the default addr is added when importing a Sapling key. * Ensure that legacy imported addresses are properly restored to the wallet. * Apply suggestions from code review * Guard against invalid coercion of int to u32 in FindSpendableInputs * Fix overzealous matching of Orchard FVKs to addresses. * Add an RPC test that attempts a double-spend. * Improve error logging in walletdb.cpp * Rename constant in include file to avoid conflicts with btest * Activate NU5 at start of DuplicateOrchardNullifier test. * Revert "AddBogusOrchardSpends" * Hardcode transaction data for DuplicateOrchardNullifier test. * Add test that checks if a bundle containing duplicate Orchard nullifiers is rejected. * AddBogusOrchardSpends * test: Fix `WalletTests.GetConflictedOrchardNotes` gtest * rust: Improve `PrecomputedTransactionData` construction errors * test: Improve gtest handling of `TransactionBuilderResult::GetTxOrThrow` * builder: Handle `std::ios_base::failure` exceptions during sighash * test: Print all logged errors to stdout during gtests * Improve error message for when a UA is only usable after a future NU. * Repair `feature_zip239` RPC test by checking the debug log of node 0 rather than its stderr. * Switch Jack Grigg's copyright on src/rust/{include/tracing.h, src/tracing_ffi.rs} to the Zcash developers (with his permission). * contrib/debian/copyright: add license for Apache-2.0. * contrib/debian/copyright: add licenses of Rust dependencies that do not have Expat/MIT as an option. * contrib/debian/copyright: minor corrections and formatting * contrib/debian/copyright: add license entries for Libtool macros. * Remove the fExperimentalOrchardWallet flag and related logic * Apply suggestions from code review * Disallow testnet peers with a protocol version older than 170040 * Add missing filter to ensure only fully-transparent transactions end up in mapOrphans. * Add test for rollback of an Orchard spend. * Correctly return p2pkh/p2sh labels for z_listunifiedreceivers * Improve consistency of RPC parameter and result attribute naming. * Add undocumented components to getinfo API. * Rename unifiedaddress->address in z_getaddressforaccount results * Assert that pindexStart cannot be null in CWallet::ScanForWalletTransactions * orchard_wallet_get_potential_spends: Do not use uint256 type. * Introduce OrchardWallet::GetPotentialSpendsFromNullifier method. * Fix GetConflictedOrchardNotes test. * Only send exceptions to the log, not stderr * Test Orchard shielded coinbase rules * Start with an empty banlist if -reindex is set. fixes #5739 * Restore legacy default Sapling addresses to the keystore. * zcashd-wallet-tool: adjust man page to correct copyright information. * zcashd-wallet-tool: warn that wallet.dat needs to be backed up. fixes #5704 * zcashd-wallet-tool: add man page generation. fixes #5729 * test_wallet: Test GetConflictedOrchardNotes. * qa: Remove pinned action indices from wallet_listreceived * qa: Remove hard-coded consensus branch IDs from RPC tests * Prevent a pindex == NULL case in the ScanForWalletTransactions traversal * Set NU5 protocol version for regtest to 170040, bump protocol version * builder: Use correct `PrecomputedTransactionData` for transparent sigs * Add regtest documentation to book * Fix logical merge conflicts after merging 4.7.0-rc1 * Migrate to latest `zcash/librustzcash` revision * Add missing gtest/test_transaction_builder.h to Makefile.gtest.include * Add missing wallet/orchard.h to src/Makefile.am * make-release.py: Updated release notes and changelog for 4.7.0-rc1. * make-release.py: Updated manpages for 4.7.0-rc1. * make-release.py: Versioning changes for 4.7.0-rc1. * Fix typos * cargo update * qa: Exclude `native_libtinfo` from dependency update checks * wallet: Fix expected `listaddresses` sources in `rpc_wallet_tests` * wallet: Fix Sapling address bug in `listaddresses` * wallet: Fix bugs in `listaddresses` * Fix bugs in wallet_addresses RPC test * update listaddresses RPC for UAs, Orchard * Documentation fix for UnifiedAddressForReciever (+ spelling corrections.) * Fix legacy address handling in CWallet::GetPaymentAddressForRecipient * Lock cs_main for accesses to chainActive in GetPaymentAddressForRecipient. * Return failure rather than asserting on WriteRecipientMapping failure. * Make CWallet::DefaultReceiverTypes height-dependent. * Add RecipientType to GetPaymentAddressForRecipient result. * Minor rename & documentation improvement. * Remove stretch (debian 9), add bullseye (debian 11) in gitian descriptor * Uncomment addtional tests that depend on z_viewtransaction. * Fix missing AllowRevealedSenders flag in test. * wallet: Add seedfp to transparent keys in dumpwallet / z_exportwallet * [Wallet] add HD xpriv to dumpwallet * Return the default unified address if we have the UFVK but no address metadata. * Correctly report change outputs in z_viewtransaction. * Add debug printing for receivers and recipient addresses. * Update z_viewtransaction documentation to correctly represent field names. * Apply suggestions from code review * Ensure z_viewtransaction returns Orchard details * Add Orchard & unified address support to z_viewtransaction. * Add OrchardWallet::GetTxActions * Load previously persisted sent transaction recipient metadata back into the wallet. * build: Add missing `util/match.h` to `src/Makefile.am` * z_sendmany: Expand `privacyPolicy` cases * z_sendmany: Replace `allowRevealedAmount` with `privacyStrategy` * build: Fix `zcash/address/orchard.hpp` filename in `src/Makefile.am` * Simplify retrieval of unified account by address. * Eliminate redundancy between the wallet and the keystore. * Add UnifiedAddress variant to ZTXOSelector * Update documentation of z_importviewingkey and z_exportviewingkey to address unified keys. * Return the correct error for `z_getbalance` if a UA does not correspond to an account in the wallet.. * Style improvements in RPC tests. * Adapt RPC tests to use z_getbalance for UAs. * z_getbalance: Handle Unified Address case. * Document that Orchard keys are not supported in z_importkey help * Add orchard support to z_getnotescount * Document that z_getnewaccount and z_getaddressforaccount replace z_getnewaddress. * Add TODO for Orchard z_listunspent integration. * Set default Orchard anchor confirmations to 1 * Add support for sending Orchard funds in `z_sendmany` * Explicitly specify the change address in the Sapling migration. * Add Orchard to change address generation * Add Orchard cases to note selection logic * Implement opportunistic shielding in `SpendableInputs::LimitToAmount` * Select spendable inputs based on recipient and change pool types * Fix bug in `SpendableInputs::LimitToAmount` * Add unit tests for `SpendableInputs::LimitToAmount` * Refactor `CWallet::GenerateChangeAddressForAccount` * Apply suggestions from code review * Fix indentation. * Derive the new mnemonic seed from the legacy HD seed, if one is available. * Tweaks to message text. * qa/zcash/full_test_suite.py: enable `test_rpath_runpath` for Rust binaries, and reenable `test_fortify_source` for C++ binaries. * Include $(bin_SCRIPTS) in `check-symbols`, `check-security`, and `clean` targets. Checking for stack canaries in `check-security` is disabled for Rust executables (Rust does support `-Z stack-protector=all` but only for the nightly compiler). * Correct the fallback instruction for how to clear the terminal on macOS: pressing Command + K also clears scrollback. * Update orchard_wallet_add_notes_from_bundle documentation. * Simplify debug tracing. * Serialize the Orchard note commitment tree to the wallet. * Apply suggestions from code review * Address suggestions from code review on #5637 * Modify `join_network` in tests to skip mempool resync. * Ensure that Orchard spentness information is repopulated by LoadUnifiedCaches. * CWallet::GetConflictS: Handle conflicting Orchard spends. * Return std::optional<CExtKey> from CExtKey::Master * Improve FFI interface documentation * Set `meta` for `-datadir` option. * Document that '~' cannot be used in `-datadir` (see #5661). * Ensure the buffer used in `prompt` is zeroized even on error. * Improve error message when the config file cannot be found, taking into account -conf and -datadir. * Use the tracing crate for debugging. * wallet: Alter `OrchardWallet::GetSpendInfo` to return the spending key * Add Orchard spend support to the transaction builder * Cleanups to error handling for the first invocation of zcash-cli. * Improve memory hygiene, and use -stdin to pass the recovery phrase to the child zcash-cli process. * Apply suggestions from code review * Restore mined block heights when restoring decrypted notes. * Apply suggestions from code review * Simplify extraction of recovery phrase. * Update tests with rollback checks. * Restore decrypted notes to the wallet. * Persist Orchard action index/IVK mappings in CWalletTx * Update walletTx with decrypted Orchard action metadata. * coins_tests: Update tests to include Orchard case. * coins_tests.cpp: Add Orchard nullifier to TxWithNullifiers(). * Set number of confirmations for Orchard notes returned by FindSpendableInputs * Respect maxDepth for Orchard notes in GetFilteredNotes * Apply suggestions from code review * Track mined-ness instead of spent-ness of notes in the Orchard wallet. * Fix missing update to `last_checkpoint` on rewind. * Apply suggestions from code review * Add an `InPoint` type to the Orchard wallet to fix incorrect conflict data. * Apply suggestions from code review * Assert we never attempt to checkpoint the Orchard wallet at a negative block height. * Add a test for Orchard note detection. * Remove assertions that require Orchard wallet persistence to satisfy. * Check wallet latest anchor against hashFinalOrchardRoot in ChainTip. * Reset Orchard wallet state when rescanning from below NU5 activation. * Record when notes are detected as being spent in the Orchard wallet. * Fix missing locks for GenerateNewUnifiedSpendingKey tests. * Split LoadWalletTx from AddToWallet * Update incrementalmerkletree version * Update MSRV for lints. * Tweak the wording of the fallback messages when the terminal cannot be automatically cleared. * Refactor use of `export_path` as suggested. * The recovery phrase confirmation and `zcashd-wallet-tool` are being introduced in zcashd v4.7.0. * Improved error handling. * Move `wallet_tool.rs` from `src/rust/src` into `src/rust/bin`. Also add a brief description of `zcashd-wallet-tool` to `src/rust/README.md`. * Add some text about choosing location of the physical backup. Add TODO for better handling of file not found and permission errors. * Attempt to fix linking problem on ARM. * Make a zcashd-wallet-tool executable. * Extend uniqueness check in z_sendmany to UA receivers * Call LoadProofParameters() in gtests that need proofs * move proof parameter loading out of gtest/main.cpp and into utiltest.cpp * make librustzcash_init_zksnark_params idempotent * depends: Revert to `libc++ 13.0.0-3` for Windows cross-compile * libzcash_script: Add more granular errors to the new APIs * Respect minDepth argument for Orchard notes in GetFilteredNotes * Add test for Orchard contribution to z_gettotalbalance * rpc: Handle keypool exhaustion separately in `generate` RPC * Add a roundtrip test for Orchard merkle frontier serialization from the C++ side. * miner: Manually add dummy Orchard output with Orchard miner address * Select Orchard receivers from UA miner addresses once NU5 activates * Use `std::optional` in `CValidationInterface::GetAddressForMining` * Add RPC test for the Orchard commitment tree bug on first NU5 testnet * Add missing `view.PopAnchor(_, ORCHARD)` in `DisconnectBlock` * Ensure the view's best Orchard anchor matches the previous block * Orchard: invalidate mempool transactions that use orphaned anchors. * wallet: add logging for failure cases in unified cache loading * Log outpoint for failed Sapling witness lookup. * gtests ordering: clean up wallet files before each WalletZkeysTest * gtests ordering: make Metrics.GetLocalSolPS idempotent * implement AtomicTimer::zeroize() that resets start_time and total_time * wallet: rather than assert, error in case of inconsistency between FVK and address * wallet_sendmany_any_taddr.py: Expect expired tx to be ignored. * FindSpendableInputs: Add nDepth < 0 check. * wallet_sendmany_any_taddr.py: Test sending output from expired tx. * wallet: restore orchard address to IVK mappings during wallet loading * wallet: restore Orchard secret keys from mnemonic seed * wallet: consolidate unified key/address/account map reconstruction * document global variables * Modernize best block mutex/cv/hash variable naming * Fix csBestBlock/cvBlockChange waiting in rpc/mining * Filter returned Orchard notes by minimum confirmations. * wallet_sendmany_any_taddr.py: Test sending from a change taddr. * gtests ordering: CheckBlock.VersionTooLow calls SelectParams(MAIN) * gtests ordering: ContextualCheckBlockTest's TearDown deactivates Blossom * gtests ordering: change wallet filename in WriteZkeyDirectToDb * rust: Fix clippy lint * cargo update * depends: Update Clang / libcxx to LLVM 13.0.1 * depends: Update Rust to 1.59.0 * qa: Postpone recent CCache release * qa: Bump all postponed dependencies * Migrate to `orchard` crate revision with circuit changes * Add zcash_script V5 functions * GenerateNewKey must be guarded by a cs_wallet lock * remove superfluous space at end of native_packages line * Select Orchard notes in FindSpendableInputs * Regenerate `TxDigests` after rebuilding tx with Orchard bundle * Select Orchard receivers preferentially from UAs * Fix semantic merge conflicts * Add Orchard to default UA receiver types * Add mappings from Orchard receivers to IVKs to the wallet * Update transaction size estimation to include V5 transactions * Log calls to getblocktemplate * Trial-decrypt candidate Sapling receivers with all wallet UFVKs * Rename to `ZcashdUnifiedSpendingKey::GetSaplingKey` for consistency * Return UFVK from `CWallet::GenerateNewUnifiedSpendingKey` * Remove OrchardSpendingKey serialization code * Add Orchard components to unified spending keys * Add Orchard components to unified full viewing keys * explain the 0x0f0f[..]0f0f powLimit constant for regtest * on Arch only, use Debian's libtinfo5_6.0 to satisfy clang * WriteRecipientMapping: Check that receiver exists in UA. * Apply docfixes from code review * Add Orchard components to unified address * Add various bits of documentation * Apply suggestions from code review * Remove txid field from TxNotes * CSerializeRecipientAddress: add Read method and make constructor private. * Docfixes. * ShieldToAddress: Factor out static shieldToAddress() helper. * Move parsing of unified addresses to UnifiedAddress. * Add test for Orchard wallet note detection. * Add GetFilteredNotes to Orchard wallet. * Add Rust backend for Orchard components of the wallet. * add functional test * ZIP 244: Address review comments * Enforce length constraints on allPrevOutputs * Make SaveRecipientMappings polymorphic in RecipientMapping type. * Add Orchard support to the z_gettreestate RPC * z_sendmany: Only get ua if decoded is ua variant. * Cosmetic whitespace change * Mark z_gettotalbalance and dumpwallet as deprecated * Make `TransactionBuilder::AddOrchardOutput` memo optional * Implement read and write for (txid, recipient) -> ua mapping. * Enforce ZIP 244 consensus rules on sighash type * Update ZIP 244 implementation * Add Orchard recipient support to the transaction builder * Untested, not working yet, use libtinfo from the debian packages * z_listreceivedbyaddress: reject UA component addr (#5537) * Update ZIP 244 test vectors * Make `PrecomputedTransactionData` a required argument of `SignatureHash` * Move shielded signature checks out of `ContextualCheckTransaction` * SendTransaction: Introduce recipients argument. * Move SendManyRecipient to wallet.h and introduce optional ua field. * Rename sapling-specific zip32 FFI methods. * Add test vectors for UFVK derivation * fix wallet_listreceived.py, add blockdata to taddr output * Fix missing std::variant header that was breaking Darwin builds. * Add change field to z_listreceivedbyaddress for transparent addrs. * Update z_listreceivedbyaddress to support unified addresses (5467) * wallet: Separate counters for external and internal transparent keys * wallet: Store internal transparent keys in the keypool * wallet: Remove `CWallet::GetKeyFromPool` * Address comments from review. * wallet: Show UAs instead of Sapling receivers in `z_listunspent` * Add unified address support to GetSourceForPaymentAddress * Implement PaymentAddressBelongsToWallet for unified addresses. * wallet: Don't show Sapling receivers from UAs in `z_listaddresses` * Clarify documentation of z_getbalanceforviewingkey for Sprout viewing keys. * Replace z_getbalanceforaddress with z_getbalanceforviewingkey * Fix locking in z_getbalanceforaddress and z_getbalanceforaccount * contrib/devtools/rust-deps-graph.sh: allow overriding the arguments to `cargo deps`. * fix minconf parsing for z_getbalanceforaccount and z_getbalanceforaddress * Fix nondeterministic test failure in wallet_listreceivedby.py * Apply suggestions from code review. * Apply suggestions from code review * Use z_shieldcoinbase for Sprout funds in wallet_listreceived tests. * allow UA as z_shieldcoinbase destination * Fix nondeterministic test error (checking for the wrong error case). * Update librustzcash dependency. * All implementations of ComparisonTestFramework were overriding num_nodes * enforce usage of the get_tests comptool interface as ComparisonTestFramework method * Add a few additional cases to z_sendmany RPC tests. * Address TODOs in rpc-tests/wallet-accounts.py * Add accessor method for Sapling IVKs to SaplingDiversifiableFullViewingKey * Fix a bug in the generation of addresses from UFVKs * Do not add Sapling addresses to the wallet by default when adding extfvks. * Add comment to zcash_script_new_precomputed_tx about references to input buffers * Rename AddSaplingIncomingViewingKey -> AddSaplingPaymentAddress * GenerateLegacySaplingZKey only needs to return an address, not an extfvk. * Fix variable shadowing in change address derivation & add change IVK to the keystore. * Add gtest for change address derivation. * Add failing tests for z_sendmany ANY_TADDR -> UA and UA -> <legacy_taddr> * Simplify determination of valid change types. * Fix z_sendmany handling of transparent OVK derivation in the ANY_TADDR case. * Add a check for internal vs. external outputs to wallet_listreceived test. * Use a BIP 44 change address for change when sending from legacy t-addrs. * Implement derivation of the internal Sapling spending key. * Implement OVK selection for z_sendmany. * Add a first-class type for transparent full viewing keys. * Add correct selection of change addresses to z_sendmany * wallet: Implement `z_getbalanceforaddress` * wallet: Fix account generation bug * wallet: Implement `z_getbalanceforaccount` * Add documentation for `UnifiedAddress::GetPreferredRecipientAddress` * Use `ZTXOSelector::IncludesSapling` rather than selector internals. * Clarify documentation of CWallet::FindAccountForSelector * Make `FindSpendableInputs` respect `ZTXOSelector::RequireSpendingKeys()` * Rename ZTXOSelector::SpendingKeysAvailable -> RequireSpendingKeys * Apply suggestions from code review * Use libzcash::RecipientAddress for z_sendmany recipients. * Add RecipientAddress type. * Add CWallet::FindAccountForSelector * Modify CWallet::FindSpendableInputs to use ZTXOSelector * Replace `HaveSpendingKeyForAddress` with checks at ZTXOSelector construction. * Add support for unified addresses to CWallet::ToZTXOSelector * Replace the badly-named `PaymentSource` with `ZTXOSelector` * Move FindSpendableInputs to CWallet * rust: Add missing checks for transparent UFVK items * rust: Add missing checks for shielded UFVK items * rust: Add missing Orchard receiver check in UA parsing * wallet: Reverse order of arguments to z_getaddressforaccount * wallet: Show UAs owned by the wallet in `z_viewtransaction` * wallet: Implement `z_listunifiedreceivers` * wallet: Implement `z_getaddressforaccount` * wallet: Implement `z_getnewaccount` * Update release notes to reflect z_sendmany changes * Return z_sendmany errors synchronously when possible. * Apply suggestions from code review * Require an explicit flag to allow cross-pool transfers in z_sendmany. * Fix conditions around dust thresholds. * Transaction builder must not set consensus branch ID for V4 transactions. * Use transaction builder for asyncrpcoperation_sendmany. * mining: submitblock: log detailed equihash solution error * update doctest in gtest suite to prefer hashlib * blake2b/s is integrated into hashlib, drop external python package dependency * Apply suggestions from code review * Replace call to drop with zeroization. * Avoid a warning by explicitly calling drop. * Apply suggestions from code review * Improve error messages in the case of taddr decoding failure. * Use libzcash::PaymentAddress instead of std::string in mergetoaddress * Remove a use of KeyIO::DecodeDestination in z_shieldcoinbase * Remove uses of KeyIO::DecodeDestination * Replace `DecodeDestination` in `GetMinerAddress` with `DecodePaymentAddress` * Remove `RawAddress` * Remove spurious variant from asyncrpcoperation_sendmany * Add raw transparent address types to PaymentAddress * Remove spurious uses of HaveSpendingKeyForPaymentAddress * Use CKeyID and CScriptID instead of new P2PKH/P2SHAddress classes. * Remove the `InvalidEncoding` type from key & address variants. * Fix encoding order of unified addresses. * Apply suggestions from code review * Improve documentation of UFVK/UA metadata storage semantics. * Use Bip44TransparentAccountKeyPath() for Bip44AccountChains keypath construction. * Make `FindAddress` correctly check for maximum transparent child index. * Fix typos * Apply suggestions from code review * Lock cs_main prior to calling blockToJSON * Update copyright year to 2022 * Ensure that unified address metadata is always correctly populated. * Remove unused ufvkid argument from AddTransparentSecretKey * Rename `ZcashdUnifiedSpendingKeyMetadata` -> `ZcashdUnifiedAccount` * Only derive ZcashdUnifiedFullViewingKey from UnifiedFullViewingKey * Apply suggestions from code review * Fix handling of unified full viewing key metadata. * Add test for CKeyStore::AddUnifiedAddress * Add test for wallet UA generation & detection. * Add tests for keystore storage and retrieval of UFVKs. * Add CWallet::GetUnifiedForReceiver * Add newly generated transparent UA receivers to the wallet. * AddTransparentSecretKey does not need to take a CExtKey * Add unified address generation. * Add key metadata to walletdb. * Load unified full viewing keys from the walletdb. * Add unified address tracking to KeyStore * Store ufvks to the wallet database. * Add new and modify existing Orchard RPCs, non-functional * Add unified key components to the transparent & Sapling wallet parts. * Add ZcashdUnifiedKeyMetadata and libzcash::ReceiverType * Compute key id for UFVKs. * Check the output of zip339_phrase_to_seed in MnemonicSeed initialization. * Add functions for generating BIP-44 and ZIP-32 keypaths * add -orchardwallet experimental feature flag * add ParseArbitraryInt() for diversifier index * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review * Add tests for ufvk roundtrip serialization. * Apply suggestions from code review * Add UnifiedFullViewingKey type. * Add Rust FFI components for unified full viewing keys. * Adds SaplingDiversifiableFullViewingKey * Update to ufvk zcash_address build. * Remove ZcashdUnifiedAddress in favor of UnifiedAddress * Use CKeyID and CScriptID instead of new P2PKH/P2SHAddress classes. * Refine structure of Zcash address generation. * Remove Orchard spending key equality implementation. * Remove incorrect FFI method documentation. * Update orchard & librustzcash dependency versions. * Apply suggestions from code review * Adds Orchard Address, IncomingViewingKey, FullViewingKey, and SpendingKey types. * Add libzcash::AccountId type. * Improve documentation of the `-walletrequirebackup` zcashd wallet configuration option. * Minor textual fixes to release notes. * Apply suggestions from code review * Fix error message text to refer to zcashd-wallet-tool rather than the RPC method. * Parameterize HD keypath parsing by coin type. * Minor naming fixes * Only maintain CKeyID for the transparent part of ZcashdUnifiedAddress * Add diversifier_index_t::ToTransparentChildIndex * Use MnemonicSeed instead of HDSeed where appropriate. * Update documentation for GenerateNewSeed. * Generalize keypath parsing over account id. * Minor cleanup of the code that searches for a valid transparent key. * Document mnemonic-seed-related RPC method changes & update changelog. * Fix polymorphism of string serialization. * Fix name of menmonic entropy length constant. * Apply suggestions from code review * Do not strip quotes when verifying mnemonic seed. * Style fix in BIP 32 path account parsing test. * Restore legacy HDSeed encryption tests. * Clean up handling of mnemonic seed metadata. * Fix max transparent diversifier index. * Fix naming of unified spending & full viewing keys * Fix transparent BIP-44 keypaths. * Restore FindAddress comment * Fix diversifier_index_t less than operator. * Apply suggestions from code review * Use SecureString for mnemonic phrase. * Clean up format of recovery information in the wallet dump. * Move CKeyMetadata back to wallet.h * Fix spurious test passage. * Restore legacy HD seed storage & retrieval tests. * Address comments from code review. * Use hardened derivation for the legacy Sapling key at the address index level. * Require backup of the emergency recovery phrase. * Use 0x7FFFFFFF for the legacy account ID. * Fix wallet import/export test * Revert change to the type of GenerateNewKey * Use legacy address for Sapling migration until UA functionality is available to the RPC tests. * Replace account ID with ZIP-0032 key path in listaddresses output. * Generate legacy Sapling addresses from the mnemonic seed. * Derive transparent keys from mnemonic seed. * Apply suggestions from code review * Update librustzcash dependency version. * Remove unused forward declaration. * Fix tests for wallet operations on legacy Sapling keys. * Use the default UA-based Sapling address for the saplingmigration tool. * Add unified full viewing keys and Zcash-internal unified addresses. * Adds basic unified spending key derivation. * Add support for externally searching for valid Sapling diversifiers. * Derive random HD seeds from ZIP-339 seed phrases. * Update base image used by Dockerfile from debian 10 to debian 11 ------------------------------------------------------------------- Tue Apr 05 17:06:25 UTC 2022 - marec@detebe.org - Update to version 4.6.0.2: * Update release notes for v4.6.0-2 * make-release.py: Updated release notes and changelog for 4.6.0-2. * make-release.py: Updated manpages for 4.6.0-2. * make-release.py: Versioning changes for 4.6.0-2. * Remove stretch (debian 9), add bullseye (debian 11) in gitian descriptor * Postpone native_clang and libcxx 14.0.0. * qa/zcash/updatecheck.py: print status code and response of failed http requests. * qa: Exclude `native_libtinfo` from dependency update checks * depends: Revert to `libc++ 13.0.0-3` for Windows cross-compile * rust: Fix clippy lint * depends: Update Clang / libcxx to LLVM 13.0.1 * depends: Update Rust to 1.59.0 * qa: Postpone recent CCache release * qa: Bump all postponed dependencies * remove superfluous space at end of native_packages line * on Arch only, use Debian's libtinfo5_6.0 to satisfy clang * Untested, not working yet, use libtinfo from the debian packages * document global variables * Modernize best block mutex/cv/hash variable naming * Fix csBestBlock/cvBlockChange waiting in rpc/mining * Update base image used by Dockerfile from debian 10 to debian 11 * Replace call to drop with zeroization. * Avoid a warning by explicitly calling drop. ------------------------------------------------------------------- Thu Jan 06 14:06:39 UTC 2022 - marec@detebe.org - Update to version 4.6.0.1: * Add release notes for v4.6.0-1 * make-release.py: Updated release notes and changelog for 4.6.0-1. * make-release.py: Updated manpages for 4.6.0-1. * make-release.py: Versioning changes for 4.6.0-1. * rpc: Fix regression in getblocktemplate output * test: Fix ZIP 244 implementation * test: check getblocktemplate output before and after NU5 * assert that the return value of submitblock is None ------------------------------------------------------------------- Thu Dec 23 17:25:44 UTC 2021 - marec@detebe.org - Update to version 4.6.0: * str4d suggested changes to release-notes-4.6.0.md * make-release.py: Updated release notes and changelog for 4.6.0. * make-release.py: Updated manpages for 4.6.0. * make-release.py: Versioning changes for 4.6.0. * test: Use result of getblocktemplate to submitblock * test: fix bugs in test framework * Add libtinfo5 to gitian packages list * only librustzcash in config.offline * update hash for librustzcash * make-release.py: Updated release notes and changelog for 4.6.0-rc1. * make-release.py: Updated manpages for 4.6.0-rc1. * make-release.py: Versioning changes for 4.6.0-rc1. * Update release notes * Migrate to latest revisions of Zcash Rust crates * [rpc] mining: Omit uninitialized currentblockweight, currentblocktx * getblocktemplate: add NU5 commitments to new `defaultroots` section * rust: Remove misleading log message * Revert "lint: Fix false positive" * qa: Postpone recent CCache releases * depends Update Rust to 1.57.0 * depends: Update Boost to 1.78.0 * cargo update * Batch-verify Orchard transactions at the block level. * Don't log 'ERROR: spent index not enabled' * cargo update * test: automatically add missing nuparams * ed25519-zebra 3 * cargo update * Rename OrchardMerkleTree -> OrchardMerkleFrontier * fix typo in docker run's volume argument * CI: Add Pyflakes to lints workflow * rust: Move `incremental_sinsemilla_tree_ffi` into crate root * Explain how to get rid of a tiny duplicated function * Explain UINT_MAX error return value * Remove redundant variable * Use correct copyright header * Remove an unused header * Increment the zcash_script API version * Add sigop count functions to zcash_script library * Move `CurrentTxVersionInfo` into a new file * Fix typos * depends: Update Clang / libcxx to LLVM 13 * depends: Update Rust to 1.56.1 * Bump all postponed dependencies * tracing-subscriber 0.3 * cargo update * Update entrypoint.sh * Fix wallet-related wording in doc/reduce-traffic.md * better wallet network info error handling * Update support for FreeBSD * contrib: Add space between URL and period * Remove unused `AddDestData` method. * Disable IBD for all boost tests * Update reduce-traffic.md - add one word * add TestSetIBD(bool) for testing * Add a check to test that wallet load fails if we're on the wrong network. * Persist network id string instead of bip44 coin type. * Add BIP 44 coin type to persisted wallet state. * contrib: Add license information for libc++ and libevent * contrib: Update Debian copyright file to follow the v1 format * Add buster to the list of suites used by gitian ------------------------------------------------------------------- Sun Oct 10 10:05:21 UTC 2021 - marec@detebe.org - Update to version 4.5.1: * Update v4.5.1-1 release notes with bugfix * make-release.py: Updated release notes and changelog for 4.5.1-1. * make-release.py: Updated manpages for 4.5.1-1. * make-release.py: Versioning changes for 4.5.1-1. * depends: Postpone dependency updates * cargo update * Use lowerCamelCase for listaddresses JSON * Consistently group Sapling addresses by IVK for every source. * Add listaddresses check to wallet_addresses.py * Include `ImportedWatchOnly` as a PaymentAddressSource result. * Update release notes for v4.5.1-1 to reflect the addition of `listaddresses` * Group legacy_hdseed Sapling addresses by account ID. * Apply suggestions from code review * Apply suggestions from code review * Correctly handle imported Sapling addresses * Fix comment * Mark v5 transaction format as standard for NU5 * Categorize listaddresses result by source type. * Add `listaddresses` RPC method. ------------------------------------------------------------------- Wed Sep 29 05:46:07 UTC 2021 - marec@detebe.org - Update to version 4.5.1: * make-release.py: Updated release notes and changelog for 4.5.1. * make-release.py: Updated manpages for 4.5.1. * make-release.py: Versioning changes for 4.5.1. * depends: Postpone native_ccache 4.4.2 * Fix bugs in testnet Orchard circuit * wallet: Check spent shielded notes in CWalletTx::IsFromMe ------------------------------------------------------------------- Fri Sep 24 12:10:46 UTC 2021 - marec@detebe.org - Update to version 4.5.0: * Add notable changes to v4.5.0 release notes * Set testnet activation height for NU5 * make-release.py: Updated release notes and changelog for 4.5.0. * make-release.py: Updated manpages for 4.5.0. * make-release.py: Versioning changes for 4.5.0. * Update halo2 and orchard dependencies with BOSL Zcash exception * cargo update * bench: Add Orchard logic to zcbenchmarks * rust: Skip running the Orchard batch validator on an empty batch * wallet: Batch-validate all Orchard signatures in the wallet on load * rust: Move Orchard batch logic into BatchValidator methods * build: Add missing source file to zcash_gtest_SOURCES * build: Ensure that cargo uses vendored dependencies for git repos * build: Add primitives/orchard.h to list of header files * cargo update * contrib: Add script for generating a graph of our Rust dependencies * Migrate to latest revisions of orchard and the zcash_* crates * make-release.py: Updated release notes and changelog for 4.5.0-rc1. * make-release.py: Updated manpages for 4.5.0-rc1. * make-release.py: Versioning changes for 4.5.0-rc1. * net: Reject unknown CInv message types * test: Set up mininodes at the start of feature_zip239 * Migrate to latest revisions of Zcash Rust crates * cargo update * qa: Boost 1.77.0 * Add named constants for legacy tx authDigest placeholder value * test: Fix bug in mininode.SpendDescription.deserialize * depends: Update Rust to 1.54.0 * Postpone dependency updates that require CMake * Update authors of librustzcash to everyone currently and formerly on Core team (in alphabetical order). * Update funding logic * Add usage documentation for manual and faucet driven tests * Update funding logic bug * test: Implement CInv.__eq__() for mininode to simplify RPC test * Use wtxid for peer state management * Add MSG_WTX support to inv messages * ProcessGetData: Respond to MSG_WTX requests * test: Add v5 tx support to mininode * test: Fix bugs in mininode transaction parser * Implement CInv message type MSG_WTX * Add fix and note for timing issue * Remove sprout funding flow logic * Introduce a WTxId struct * Update depends/packages/native_rust.mk * Update depends/packages/native_clang.mk * add missing aarch64 build deps * Sort taddr txns by txindex in addition to height * CI: Add Dependabot config to keep Actions up-to-date * test: Use correct field of getnetworkinfo to read protocol version * Fix typos * Parse consensus branch ID when reading v5 transaction format * Separate the consensus and internal consistency checks for branch ID * Print `nConsensusBranchId` in `CTransaction::ToString` * builder: Generate v5 transactions from NU5 activation * test: Add NU5 test cases to existing RPC tests * Lock the wallet in SetBestChainINTERNAL * Fix clippy complaints. * Use manual serialization for Merkle frontiers rather than bincode. * lint: Add missing include guards * lint: remove duplicate include * CI: Ignore errors from general lints we don't yet have passing * Avoid need to cast away const in the C caller of zip339_free_phrase. * Update unified address test data to take account of HRPs in padding (https://github.com/zcash/librustzcash/pull/419). * Cargo.toml: use librustzcash after the merge of https://github.com/zcash/librustzcash/pull/424 . * test: Fix pyflakes warnings * Update URL for Boost source download (from dl.bintray.com to boostorg.jfrog.io). * ZIP 339 support. * test: Print reject reason if RPC test block rejected instead of accepted * Only use AddInventoryKnown for transactions * [qa] py2: Unfiddle strings into bytes explicitly * test: Add basic test for `reject` code * net: Fix sent reject messages for blocks and transactions * Move mempool rejections to new debug category * Add information to errors in ConnectBlock, CheckBlock * Remove most logging from transaction validation * Add function to convert CValidationState to a human-readable message * Introduce REJECT_INTERNAL codes for local AcceptToMempool errors * Add debug message to CValidationState for optional extra information * Add assertion and cast before sending reject code * Add absurdly high fee message to validation state (for RPC propagation) * [net] split PushInventory() * protocol.h: Make enums in GetDataMsg concrete values * protocol.h: Move MESSAGE_START_SIZE into CMessageHeader * net: Hardcode protocol sizes and use fixed-size types * net: Consistent checksum handling * tidy up CInv::GetCommand * getdata enum issue fix * Removed ppszTypeName from protocol.cpp * Get rid of CTxMempool::lookup() entirely * Optimization: use usec in expiration and reuse nNow * Optimization: don't check the mempool at all if no mempool req ever * Optimize the relay map to use shared_ptr's * Switch CTransaction storage in mempool to std::shared_ptr * Add support for unique_ptr and shared_ptr to memusage * Defer inserting into maprelay until just before relaying. * Do not use mempool for GETDATA for tx accepted after the last mempool req. * ProcessGetData(): Rework IsExpiringSoon check * qa: Bump `sync_mempool` timeout for `prioritisetransaction.py` * Adjust code comments to remove topological-sort references * Remove unused account-related wallet methods. * [wallet] Kill accounts * [wallet] Remove wallet account RPCs * [RPC] [wallet] allow getbalance to use min_conf and watch_only without accounts. * Move bloom and feerate filtering to just prior to tx sending. * Return mempool queries in dependency order * Handle mempool requests in send loop, subject to trickle * Split up and optimize transaction and block inv queues * Eliminate TX trickle bypass, sort TX invs for privacy and priority. * [wallet] GetBalance can take a min_depth argument. * [wallet] factor out GetAvailableWatchOnlyBalance() * [wallet] deduplicate GetAvailableCredit logic * [wallet] Factor out GetWatchOnlyBalance() * [wallet] GetBalance can take an isminefilter filter. * [wallet] Remove unneeded legacy getbalance code * [wallet] Add GetLegacyBalance method to simplify getbalance RPC * Move GetAccountBalance from rpcwallet.cpp into CWallet::GetAccountBalance * [tests] Remove wallet accounts test * Move CWalletDB::ReorderTransactions to CWallet * Optimisation: Store transaction list order in memory rather than compute it every need * Add CWallet::ReorderTransactions and use in accounting_tests.cpp * Add CWallet::ListAccountCreditDebit * Fix insanity of CWalletDB::WriteTx and CWalletTx::WriteToDisk * Add TxPriority class and comparator * Add a score index to the mempool. * Store the total sig op count of a tx. * Print mempool size in KB when adding txn * Add CFeeRate += operator * Track (and define) ::minRelayTxFee in CTxMemPool * Fix calling mempool directly, instead of pool, in ATMP * Reverse the sort on the mempool's feerate index * test: Flush wallet in WriteCryptedSaplingZkeyDirectToDb before reopening * Revert "Remove reference to -reindex-chainstate" * Report reindexing progress in GUI * Add -reindex-chainstate that does not rebuild block index * Optimize ActivateBestChain for long chains * Switch reindexing to AcceptBlock in-loop and ActivateBestChain afterwards * Make ProcessNewBlock dbp const and update comment * test: Fix race condition in p2p_txexpiringsoon * test: Wait for transaction propagation in shorter_block_times RPC test * More precise terminology: "lock free" -> "unlocked" * Change mapRelay to store CTransactions * Use txid as key in mapAlreadyAskedFor * Replace trickle nodes with per-node/message Poisson delays * fix locking issue with new mempool limiting * depends: Greatly simplify the Clang 12 patch * cargo fmt * CI: Use Rust 1.54 for lints * rust: metrics 0.17 * rust: cargo update * depends: Fix issue cross-compiling BDB to Windows with Clang 12 * depends: Update utfcpp to 3.2.1 * depends: Update Clang / libcxx to LLVM 12 * depends: Update Rust to 1.54.0 * Fix error strings to correctly reflect context. * Use DOS level 100 for noncontextual checks. * Postpone dependency updates we aren't doing in this release * Track lengths when copying receiver data from C++ to Rust * Add constants for UA typecodes * Make Sapling Spend and Ouput count, and Orchard Action count checks be noncontextual. * Improve error message when a block would overfill the Orchard commitment tree. * Document why a nested call to ExtractMinerAddress is not recursive * Fix typo in method documentation * CI: Add Rust lints * CI: Check scripted diffs * CI: Add workflow that runs general lints * Pass network type through to UA address handling logic * Add support for decoding and encoding Unified Addresses * Use a visitor for handling -mineraddress config option * Use `libzcash::RawAddress` in `CWallet::GetFilteredNotes` * Introduce libzcash::RawAddress type * Apply suggestions from code review * Update Orchard commitment tree hashes to use total MerkleCRH^Orchard. * Ensure that the Orchard note commitment tree does not exceed its maximum size. * Add check for consistency between nActionsOrchard and Orchard flags. * miner: Set coinbase expiry height to block height from NU5 activation * test: Fix OverwinterExpiryHeight test after ZIP 203 contextual changes * test: Check for updated empty-tx reject messages in transaction tests * ZIP 213: Add checks to support Orchard shielded coinbase outputs. * ZIP 203: Enforce coinbase nExpiryHeight consensus rule from NU5 * Prevent undefined behaviour in `CTransaction::GetValueOut()` * Add check that v5 transactions have empty Sprout joinsplits. * Retract partial Orchard test support. * Account for Orchard balance in GetValueOut and GetShieldedValueIn. * Add Orchard value balance checks. * Make valueBalanceSapling a private non-const member of CTransaction. * Rename tx.valueBalance -> tx.valueBalanceSapling * Check consensus branch ID for V5 transactions. * Add NU5 upper bound check on nSpendsSapling, nOutputsSapling, nActionsOrchard * Make CTransaction::nConsensusBranchId a std::optional * Ensure Sapling versions are valid after NU5 * ZIP 225: v5 transaction check rules * Include Orchard bundle in transaction dynamic usage * test: Update CCoinsViewTest with changes to CCoinsView interface * Apply suggestions from code review * Add Orchard nullifiers to nullifiers cache. * Add consensus check for duplicate Orchard nullifiers within a single transaction. * Apply suggestions from code review * Document source of Orchard merkle tree test data. * Fix implmentation of OrchardMerkleTree.DynamicMemoryUsage * Consistently panic on null commitment tree pointers. * Apply style suggestions. * Fix header guards for incremental_sinsemilla_tree.h * Fix Orchard incremental Merkle tree empty root. * Apply suggestions from code review * Apply suggestions from code review * Update to released version of incrementalmerkletree * Update orchard dependency. * Documentation cleanup. * Add Orchard merkle tree anchor tests. * Add Orchard bundle commitments to merkle tree. * Check nullifiers length against bundle actions length. * Return std::optional for GetAnchor * Orchard changes to coins & consensus. * Implement the Rust side of the incremental merkle tree FFI. * Check Orchard bundle-specific consensus rules, i.e. proofs * rust: Load Orchard circuit parameters at startup * Minor fixes to documentation and formatting * Implement Orchard pool value tracking * test: Add test case for popping from an empty history tree * rust: Document some requirements for history tree FFI methods * rpc: Document getblock RPC finalorchardroot field, omit before NU5 * test: Cleanups to ZIP 221 Python test code * test: Check history trees across Canopy and NU5 activations * Use V2 history trees from NU5 onward * test: Use valid consensus branch IDs in history tree tests * rust: Move history tree FFI declarations into a separate header * rust: Migrate to zcash_history with versioned trees * rust: Move history tree FFI logic into a module * Copy authDigest in CTransaction::operator=(const CTransaction &tx) * ConnectBlock: Check NU activation when deriving block commitments * test: Check hashBlockCommitments before, at, and after NU5 activation * Improve docs about setting CBlockIndex hash fields * Skip hashBlockCommitments check when testing block templates * test: Check for valid hashBlockCommitments construction post-NU5 * ZIP 244 hashBlockCommitments implementation * Rename hashLightClientRoot to hashBlockCommitments in block header * Move OrchardBundle to its own header file. * Fix typo adddrman to addrman as requested in #8070 * Remove non-determinism which is breaking net_tests #8069 * book: Note that cargo patches work with absolute paths * book: Add dev guide page about Rust dependencies * Update transaction auth commitments for pre-v5 transactions. * rust: Fix patched dependencies * Implement Orchard signature validation consensus rules * Implement Orchard authorization batch validator * rust: Explicitly return null hash for pre-v5 auth digests * Improvements to CBlock::BuildAuthDataMerkleTree * Document next_pow2 effects and algorithm source * rust: Documentation improvements to FFI methods * CI: Build book with latest mdbook * CI: Publish correct book directory * Throw an exception instead of asserting if Rust tx parser fails * test: Regenerate sighash.json after generator fixes * test: Small fixes to sighash test vector generation * test: Generate valid Sapling types * Fix tests that assume CTxOuts can be "null" * ZIP 244 hashAuthDataRoot computation * ZIP 244 signature digests * ZIP 244 transaction digests * CTransaction: Make new ZIP 225 fields non-const and private * rust: Document read_callback_t and write_callback_t * Remove early return logic from transaction parsing * wallet: Use CDataStream.data() * dbwrapper: Use new .data() method of CDataStream * streams: Remove special cases for ancient MSVC * streams: Add data() method to CDataStream * contrib: Add BOSL to contrib/debian/copyright * v5 transaction format parser * ZIP 225 tx format constants * rust: Enable C++ streams to be passed into Rust code * Extract SpendDescriptionV5 and OutputDescriptionV5 classes * Implement ZIP 216 consensus rules * metrics 0.16 and metrics-exporter-prometheus 0.5 * Migrate to latest zcash_* crates * cargo update * Re-include reading blocks from disk in block connection benchmark ------------------------------------------------------------------- Thu Jun 10 18:42:31 UTC 2021 - marec@detebe.org - Update to version 4.4.1: * Fix typo in release notes * Add bugfix to v4.4.1 release notes * make-release.py: Updated release notes and changelog for 4.4.1. * make-release.py: Updated manpages for 4.4.1. * make-release.py: Versioning changes for 4.4.1. * make-release.py: Updated release notes and changelog for 4.4.1-rc1. * make-release.py: Updated manpages for 4.4.1-rc1. * make-release.py: Versioning changes for 4.4.1-rc1. * Postpone native_ccache 4.3 * Fix Rust dependency name in postponed-updates.txt * Postpone dependency updates until after 4.4.1 * doc: Add removal of 32-bit Windows binaries to release notes * doc: Add Windows version support change to release notes * build: Link to libbcrypt on Windows * Move Win32 defines to configure.ac to ensure they are globally defined * build: pass _WIN32_WINNT=0x0601 when building libevent for Windows * depends: Patch libevent build to fix IPv6 -rpcbind on Windows * build: enforce minimum required Windows version (7) * build: don't pass -w when building for Windows * build: remove --large-address-aware linker flag * build: remove configure checks for win libraries we don't link against * build: remove WINDOWS_BITS from build system * build: Remove WINVER pre define in Makefile.leveldb.inlcude * Drop defunct Windows compat fixes * windows: Call SetProcessDEPPolicy directly * windows: Set _WIN32_WINNT to 0x0601 (Windows 7) * when rewinding, set pindexBestHeader to the highest-work block index * add tekton build/worker docker, organize legacy buildbot docker * clean up ubuntu 18.04 and 20.04 commands * Add Debian 11 ci-builder * Prevent mutex lock fail even if --enable-debug * [wallet] Make CWallet::ListCoins atomic * Add braces to meet code style on line-after-the-one-changed. * Hold mempool.cs for the duration of ATMP. * http: Remove numThreads and ThreadCounter * http: Remove WaitExit from WorkQueue * http: Join worker threads before deleting work queue * [rpc] Reduce scope of cs_main and cs_wallet locks in listtransactions * wallet: Remove unnecessary mempool lock in ReacceptWalletTransactions * Remove redundant pwallet nullptr check * Add ability to assert a lock is not held in DEBUG_LOCKORDER * Add missing cs_main locks when calling blockToJSON/blockheaderToJSON * addrman: Add missing lock in Clear() (CAddrMan) * rpc: further constrain the libevent workaround * rpc: work-around an upstream libevent bug * Make fUseCrypto atomic * keystore GetKeys(): return result instead of writing to reference * Acquire cs_main lock before cs_wallet during wallet initialization * doc: clarify CRollingBloomFilter size estimate * net: remove is{Empty,Full} flags from CBloomFilter, clarify CVE fix * refactor: Remove unused methods CBloomFilter::reset()/clear() * refactor: Improve CRollingBloomFilter::reset by using std::fill * bench: Add benchmark for CRollingBloomFilter::reset * Removes unsed `CBloomFilter` constructor. * replace modulus with FastMod * param variables made const * Fix msvc compiler error C4146 (unary minus operator applied to unsigned type) * Fix msvc compiler error C4146 (minus operator applied to unsigned type) * Refactor: Remove using namespace <xxx> from src/*.cpp. * unification of Bloom filter representation * trivial: fix bloom filter init to isEmpty = true * Do not shadow variables * More efficient bitsliced rolling Bloom filter * Fix formatting of NOPs for generated script tests * Switch to a more efficient rolling Bloom filter ------------------------------------------------------------------- Thu Apr 15 17:36:52 UTC 2021 - marec@detebe.org - Update to version 4.4.0: * make-release.py: Updated release notes and changelog for 4.4.0. * make-release.py: Updated manpages for 4.4.0. * make-release.py: Versioning changes for 4.4.0. * book: Fix comment in metrics example, and clarify usage * Postpone Clang 12 * clean.sh: Remove secp256k1 test log * python: Use UTF-8 encodings for opened files * Fix include guards * Remove duplicate / unused includes * scripted-diff: Remove direct usages of boost::filesystem * make-release.py: Updated release notes and changelog for 4.4.0-rc1. * make-release.py: Updated manpages for 4.4.0-rc1. * make-release.py: Versioning changes for 4.4.0-rc1. * Cleanup: get the definition of ENABLE_VIRTUAL_TERMINAL_PROCESSING from wincon.h. * configure.ac: tidy up spacing. * configure.ac: Add check for ntdll on Windows. * qa: Postpone Boost 1.75.0 * qa: Postpone updates that require CMake in the build system * qa: Point univalue update checker at correct upstream * CurrentTxVersionInfo should return SPROUT_MIN_CURRENT_VERSION pre-overwinter. * Add CheckQueue Tests * Fix CCheckQueue IsIdle (potential) race condition and remove dangerous constructors. * Address review comments. * Add missing cs_wallet lock that triggers new lock held assertion * Move CNode::addrLocal access behind locked accessors * Move CNode::addrName accesses behind locked accessors * Make nTimeBestReceived atomic * Move [clean|str]SubVer writes/copyStats into a lock * Make nServices atomic * Make nStartingHeight atomic * Access fRelayTxes with cs_filter lock in copyStats * Avoid copying CNodeStats to make helgrind OK with buggy std::string * Make nTimeConnected const in CNode * net: fix a few races. Credit @TheBlueMatt * net: add a lock around hSocket * net: rearrange so that socket accesses can be grouped together * Make nWalletDBUpdated atomic to avoid a potential race. * Access WorkQueue::running only within the cs lock. * Ensure cs_vNodes is held when using the return value from FindNode * Lock mapArgs/mapMultiArgs access in util * Fix race when accessing std::locale::classic() * Fix some locks * Do not shadow LOCK's criticalblock variable for LOCK inside LOCK * Delete spare mainnet Founders' Reward addresses that will never be used. * lint: Fix false positive * Remove usage of local from fetch-params.sh * Ensure that Sapling version range checks are always guarded by SAPLING_VERSION_GROUP_ID * native_rust: don't install Rust docs. This speeds up builds, especially native builds on macOS. fixes #5042 * Update -blocksonly documentation * [doc] mention whitelist is inbound, and applies to blocksonly * doc: Mention blocksonly in reduce-traffic.md, unhide option * removed bashisms from build scripts * metrics: Don't assert that the Sprout tree is accessible * book: Fix typo in metrics documentation * rust: Add license header to metrics_ffi::prometheus * net: Clear CNode::strSendCommand if a message is aborted * metrics: Rework pool metrics in anticipation of transparent pool * metrics: Remove zcash.sync.* metrics * metrics: Rename metrics with consistent naming scheme * metrics: Use labels for pool statistics * metrics: Enable gauges with fully-static labels * metrics: Move documentation into zcashd book * rust: Pin hyper 0.14.2 * metrics: Implement IP access control on Prometheus scrape endpoint * Mention in release notes that metrics names may still change * Add -prometheusmetrics to release notes * rust: Check for invalid UTF-8 in -prometheusmetrics argument * Clean up comment * Add security warnings for -prometheusmetrics option * rust: Use consistent include guards in header files * Add more detailed metrics * metrics: Expose binary metadata * metrics: Add support for labels * rust: Move helper macros into rust/helpers.h * tracing: Merge TracingSpanFields macro into TracingSpan * metrics: Add documentation and example configs * Add some metrics that match existing zebrad metrics * rust: Add a Prometheus metrics exporter * rust: Implement FFI interface to metrics crate * qa: Update BerkeleyDB downloads page URL * depends: Update Rust to 1.51.0 * rust: zcash_{primitives, proofs} 0.5.0 * cargo update * Document UPGRADE_ZFUTURE * Document FeatureSet type. * Add feature flagging tests. * Apply suggestions from code review * Use SPROUT_MAX_CURRENT_VERSION * Add future version group & version checks * Move sapling version group checks back inside of saplingActive check. * Add TxVersionInfo for feature/future-base transaction construction. * Relocate contextual Sapling version checks * Add feature flagging infrastructure to consensus parameters. * Adding base NU5 declarations and logic * Fix regression introduced in e286250ce49309bfa931b622fabfc37100246266 by adding #include <atomic>. fixes #5014 * CI: Correctly build zcashd book * Ignore temporary build artifacts. * Blacklist -whitelistalwaysrelay; replaced by -whitelistrelay. * Add whitelistforcerelay to control forced relaying. * lock cs_main for chainActive * lock cs_main for State/Misbehaving * Notify other serviceQueue thread we are finished to prevent deadlocks. * Fix for incorrect locking in GetPubKey() (keystore.cpp) * Clean up lockorder data of destroyed mutexes * Actually only use filterInventoryKnown with MSG_TX inventory messages. * Only use filterInventoryKnown with MSG_TX inventory messages. * Rename setInventoryKnown filterInventoryKnown * Remove mruset as it is no longer used. * Replace setInventoryKnown with a rolling bloom filter. * Move blocksonly parameter interaction to InitParameterInteraction() * Move -blocksonly parameter interaction to the new ParameterInteraction() function * Improve log messages for blocks only violations. * Add relaytxes status to getpeerinfo * Bail early in processing transactions in blocks only mode. * Fix relay mechanism for whitelisted peers under blocks only mode. * Fix comment for blocksonly parameter interactions * Fix fRelayTxs comment * Display DEFAULT_WHITELISTALWAYSRELAY in help text * Use DEFAULT_BLOCKSONLY and DEFAULT_WHITELISTALWAYSRELAY constants * Add help text for blocksonly and whitelistalwaysrelay * Add whitelistalwaysrelay option * Do not process tx inv's in blocksonly mode * Add blocksonly mode * Squashed 'src/secp256k1/' changes from 3967d96bf1..a4abaab793 * Squashed 'src/secp256k1/' changes from c6b6b8f1bb..3967d96bf1 ------------------------------------------------------------------- Thu Feb 25 12:57:54 UTC 2021 - marec@detebe.org - Update to version 4.3.0: * doc: Minor fixes to v4.3.0 release notes * make-release.py: Updated release notes and changelog for 4.3.0. * make-release.py: Updated manpages for 4.3.0. * make-release.py: Versioning changes for 4.3.0. * add libxml2 * add zstd package * rust: Pin funty =1.1.0 * cargo update * make-release.py: Updated release notes and changelog for 4.3.0-rc1. * make-release.py: Updated manpages for 4.3.0-rc1. * make-release.py: Versioning changes for 4.3.0-rc1. * Fill out the rest of the 4.3.0 release notes * Add IBD download traffic reduction to release notes * [walletdb] Add missing LOCK() in Recover() for dummyWallet * rpc: remove cs_main lock from `createrawtransaction` * Rename responsible_disclosure.md to SECURITY.md * Update URL for Zcash Foundation security policy * Disconnect on mempool requests from peers when over the upload limit. * Move time data log print to 'net' category to reduce log noise * Always allow getheaders from whitelisted peers * doc: add comment explaining initial header request * timedata: Prevent warning overkill * Add limitedmap test * Disallow unlimited limited maps * Make limited map actually respect max size * Re-organize -maxconnections option handling * Postpone dependencies * Cargo update * Remove LOCK(cs_main) from decodescript * Update the maxuploadtarget.py tests to accommodate zcash. * zcash_script: Clarify return values in docs * Add a FastRandomContext::randrange and use it * Switch FastRandomContext to ChaCha20 * Add ChaCha20 * Fix some typos * init: Pass post-Blossom spacing into CNode::SetMaxOutboundTarget() * Pass current PoWTargetSpacing() into CNode::OutboundTargetReached() * test: Migrate maxuploadtarget.py to Python 3 * add (max)uploadtarget infos to getnettotals RPC help * add documentation for exluding whitelistes peer from maxuploadtarget * [docs] rename reducetraffic.md to reduce-traffic.md * don't enforce maxuploadtargets disconnect for whitelisted peers * [doc] Add -maxuploadtarget release notes * [net] Cleanup maxuploadtarget * [doc] Improve lanaguge in reducetraffic.md * [doc] add documentation how to reduce traffic * Add RPC test for -maxuploadtarget * Introduce -maxuploadtarget * Whitespace-only fix in chainparams.cpp * Minimal fix to slow prevector tests as stopgap measure * prevector::swap: fix (unreached) data corruption * test prevector::swap * prevector: destroy elements only via erase() * test: Add more test vectors for siphash * Use C++11 thread-safe static initializers * Use 64-bit SipHash of netgroups in eviction * Make tests pass after 2020 * Support SipHash with arbitrary byte writes * Avoid recalculating vchKeyedNetGroup in eviction logic. * net: Drop CNodeRef for AttemptToEvictConnection * Return early in IsBanned. * net: move CBanDB and CAddrDB out of net.h/cpp * Add extra message to avoid a long 'Loading banlist' * net: No need to export DumpBanlist * net: make Ban/Unban/ClearBan functionality consistent * fix race that could fail to persist a ban * Fix de-serialization bug where AddrMan is corrupted after exception * CAddrDB modified so that when de-serialization code throws an exception Addrman is reset to a clean state * CAddrDB modified to make unit tests possible * Regression test created to ensure bug is fixed * StartNode modifed to clear adrman if CAddrDB::Read returns an error code. * peers.dat, banlist.dat recreated when missing * banlist (bugfix): allow CNode::SweepBanned() to run on interval * banlist: add more banlist infos to log / add GUI signal * banlist: better handling of banlist in StartNode() * banlist: update set dirty to be more fine grained * [QA] fix netbase tests because of new CSubNet::ToString() output * net: Fix CIDR notation in ToString() * net: use CIDR notation in CSubNet::ToString() * [Qt] banlist, UI optimizing and better signal handling * [Qt] add ui signal for banlist changes * Adding CSubNet constructor over a single CNetAddr * use CBanEntry as object container for banned nodes * CAddrDB/CBanDB: change filesize variables from int to uint64_t * banlist.dat: store banlist on disk * zcash_script: Add API to verify scripts with precomputed tx data * Use SipHash-2-4 for address relay selection * Switch CTxMempool::mapTx to use a hash index for txids * Use SipHash-2-4 for CCoinsCache index * Add SipHash-2-4 primitives to hash * Remove bad chain alert partition check * test: Convert Bech32 test vectors into known-answer test vectors * Link to zips.z.cash for protocol spec * Show README as root of zcashd book * Actions: Add a workflow to deploy the zcashd book * Set up an mdbook in which we can document zcashd's architecture design * Fix unlocked access to vNodes.size() * Remove double brackets in addrman * Fix AddrMan locking * Make fImporting an std::atomic * Make fDisconnect an std::atomic * Rename libzcashconsensus.la -> libzcash_script.la * Rename zcashconsensus_* -> zcash_script_* in APIs * Rename src/script/zcashconsensus.* -> src/script/zcash_script.* * Add amount and consensus branch ID to zcashconsensus_verify_script * Remove crypto/equihash from libzcashconsensus * Document the required .updatecheck-token file in the release docs * scripted-diff: Use UniValue.pushKV instead of push_back(Pair()) * Move the github API token out of updatecheck.py into an untracked file. * Squashed 'src/univalue/' changes from 9ef5b78c1..98fadc090 * Define TARGET_OS when host is android * Ensure that `CONFIGURE_FLAGS=--enable-debug` correctly uses -O0 for dependencies and main build. * build: add missing leveldb defines * [build] Add NETBSD leveldb target to configure.ac * build: Updates for OpenBSD * Re-instate TARGET_OS=linux in configure.ac. Removed by 351abf9e035. * cargo update * depends: Postpone updates that require adding CMake * depends: ZeroMQ 4.3.4 * QA: Postpone BDB update again * QA: Remove unused update postponements * qa: Postpone Boost and native_b2 updates * Revert "Update boost to 1.75, postpone other updates." * Added foundation to responsible_disclosure.md * depends: Ensure the native_clang download path is for the builder * depends: Allow per-host package download paths * depends: Fix Boost warnings under Clang 11 * depends: Move to Clang 11 * depends: boost: Specify cflags+compileflags * depends: boost: Remove unnecessary _archiver_ * depends: boost: Cleanup toolset selection * depends: boost: Cleanup architecture/address-model * depends: boost: Disable all compression * depends: boost: Split into non-/native packages * depends: boost: Refer to version in URL * depends: Propagate only specific CLI variables to sub-makes * depends: boost: Use clang toolset if clang in CXX * depends: boost: Split target-os from toolset * depends: boost: Specify toolset to bootstrap.sh * depends: Propagate well-known vars into depends * depends: Consistent use of package variable * depends: fix boost mac cross build with clang 9+ * build: Add variable printing target to Makefiles * Fix pyflakes complaints * Apply suggestions from code review * hide password in -stdin `walletpassphrase` command * #4624 improve IBD sync by eliminating getheaders requests * Use parentheses for defined in windows-unused-variables.diff * Set rust_target for all FreeBSD versions * Skip "tx" messages during initial block download. * depends: cargo update * rust: Use renamed broken_intra_doc_links lint * depends: Update Rust to 1.49.0 * Update of copyright year to 2021 * Update COPYRIGHT_YEAR in clientversion.h to 2021 * Update _COPYRIGHT_YEAR in configure.ac to 2021 * Add support for FreeBSD 12 * split wallet.py tests * Discord invite instead of direct link * Store inputs and outputs by reference in JSDescriptionInfo * Remove init_and_check_sodium from crypto/common.h * prevector: Terminate without logging on failed allocation * Remove JSDescription::h_sig * Add JSDescriptionInfo for constructing JSDescriptions * Default to defining endian-conversion DECLs in compat w/o config * qa/zcash/updatecheck.py: remove dead code; print instructions to run `cargo outdated` and `cargo update`. ------------------------------------------------------------------- Tue Dec 22 11:40:09 UTC 2020 - marec@detebe.org - Update to version 4.2.0: * make-release.py: Updated release notes and changelog for 4.2.0. * make-release.py: Updated manpages for 4.2.0. * make-release.py: Versioning changes for 4.2.0. * Revert changes in #4916 that assumed arguments represent fees, when they are actually number of confirmations. * gtest/test_mempoollimit: the test failed to properly ensure that the "low fee penalty" threshold matches the new ZIP 313 fee. * make-release.py: Updated release notes and changelog for 4.2.0-rc1. * make-release.py: Updated manpages for 4.2.0-rc1. * make-release.py: Versioning changes for 4.2.0-rc1. * Don't log to stdout if a file logger is configured. * Remove workaround affecting old Boost version * 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. * Update boost to 1.75, postpone other updates. * tracing: Simplify init logic using optional layers * tracing: Remove unnecessary tracing_init_inner internal function * cargo update * Reduce the default fee for z_* operations, and the "low fee penalty" threshold for mempool limiting, to 1000 zatoshis. * Fix a typo introduced in #4904. * Partial revert of "Update links". See #4904 * test: Fix test_bitcoin compilation on macOS High Sierra * Remove vestigial OSX_SDK_VERSION from darwin build. * build: set minimum supported macOS to 10.14 * lint: Remove boost::variant and boost::optional from allowed includes * Finish migrating to std::optional * scripted-diff: Migrate from boost::optional to std::optional * Add <optional> header to files that will need it * Migrate from boost::optional::get to boost::optional::value * Finish migrating to std::variant * scripted-diff: Migrate from boost::variant to std::variant * Add <variant> header to files that will need it * mempool: Log all accepted txids at INFO level * rpc: Log the new filter when we set it * rpc: Reload CNode spans after reloading the log filter * net: Rework CNode spans * Prefer explicit passing of CChainParams to the Params() global. * improve getblocktemplate performance for shielded coinbase * Update links * Update minimum chain work and set activation block hashes for testnet * Update minimum chain work and set activation block hashes for mainnet * test: Use ed25519_verify in ConsensusTests * Write down the folklore about nSequence * Fix readelf configuration * Switch to ed25519-zebra for consensus signature checks * Fix Hungarian notation nit from Daira * Include transaction hex in verbose getblock output * add more version information to getinfo rpc * test: Run shielding-heavy RPC tests in serial * test: Silence pyflakes unused import warning * readelf is Linux only * lint: Remove boost/foreach.hpp from allowed includes * refactor: Drop boost::this_thread::interruption_point and boost::thread_interrupted in main thread * gui: get special folder in unicode * util: Replace boost::signals2 with std::function * clang-format: Delete ForEachMacros * scripted-diff: Remove #include <boost/foreach.hpp> * scripted-diff: Remove BOOST_REVERSE_FOREACH * Fix const_reverse_iterator constructor (pass const ptr) * Introduce src/reverse_iterator.hpp and include it... * scripted-diff: Remove PAIRTYPE * scripted-diff: Fully remove BOOST_FOREACH * Small preparations for Q_FOREACH, PAIRTYPE and #include <boost/foreach.hpp> removal * Add autocomplete to bitcoin-qt's console window. * test: Run rpc-tests.py in full_test_suite.py * test: Adjust some Zcash RPC tests to work with parallel runner * qa: Set correct path for binaries in rpc tests * Add exclude option to rpc-tests.py * [qa][doc] Correct rpc test options in readme * [trivial] Add tests_config.ini to .gitignore * Various review markups for rpc-tests.py improvements * Refactor rpc-tests.py * Improve rpc-tests.py arguments * Use argparse in rpc_tests.py * Use configparser in rpc-tests.py * remove obsolete run-bitcoind-for-test.sh * Reorder RPC tests for running time * [qa] rpc-tests: Apply random offset to portseed * [qa] test_framework: Exit when tmpdir exists * [qa] pull-tester: Only print output when failed * [qa] Refactor RPCTestHandler to prevent TimeoutExpired * [qa] create_cache: Delete temp dir when done * [doc] - clarify statement about parallel jobs in rpc-tests.py * [qa] pull-tester: Don't mute zmq ImportError * [qa] Remove unused code * [qa] Use single cache dir for chains * [qa] Adjust timeouts for micro-optimization of run time * [qa]: enable rpcbind_test * [qa]: add parsing for '<host>:<port>' argument form to rpc_url() * [doc] Add OS X ZMQ requirement to QA readme * [qa] pull-tester: Start longest test first * [qa] pull-tester: Fix assertion and check for run_parallel * [qa] test_framework: Use different rpc_auth_pair for each node * build: a few ugly hacks to get the rpc tests working out-of-tree * Tests: add timeout to sync_blocks() and sync_mempools() * [qa] test_framework: Append portseed to tmpdir * [qa] Remove hardcoded "4 nodes" from test_framework * [qa] Add option --portseed to test_framework * [qa] pull-tester: Run rpc test in parallel * [qa] pull-tester: Adjust comment * [qa] Stop other nodes, even when one fails to stop * [qa] Update README.md * [qa] Refactor test_framework and pull tester * [qa] Switch to py3 * [qa] rpc-tests: Fix link in comment and label error msg * [qa] pull-tester: Exit early when no tests are run * [qa] pull-tester: Don't mute zmq ImportError * [qa] mininode: Catch exceptions in got_data * [qa] rpc-tests: Properly use integers, floats * [qa] Use python2/3 syntax * Check if zmq is installed in tests, update docs * test: don't override BITCOIND and BITCOINCLI if they're set * [qa] pull-tester: Cleanup (run keypool, tidy stdout) * [qa] keypool: DRY: Use test framework * [qa] keypool: Fix white space to prepare transition to test framework * [qa] Extend README.md * [qa] Split README.md to /qa and /qa/rpc-tests * Remove unmaintained example test script_test.py * Add basic coverage reporting for RPC tests * build: don't distribute tests_config.py * [rpc-tests] Check return code * [rpc-tests] fundrawtransaction: Update fee after minRelayTxFee increase * Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator * [doc] trivial: fix markdown syntax in qa/rpc-tests/README.md * qa/pull-tester/rpc-tests.py: chmod 0755 * Migrated rpc-tests.sh to all python rpc-tests.py * Add p2p-fullblocktest.py * Fix crash when mining with empty keypool. * configure.ac: Introduce macros to simplify requiring tools. * test: Re-enable regtest difficulty adjustment for unit tests that use it * test: Set hashFinalSaplingRoot default correctly in create_block * test: Fix SignatureHash RPC test helper * test: Remove FindAndDelete from RPC test framework * Revert "remove SignatureHash from python rpc tests" * [doc][trivial] no retargeting in regtest mode * Added fPowNoRetargeting field to Consensus::Params that disables nBits recalculation. * Fix typo * Update expected fails for Sprout txns flows on Canopy * Windows cross-build generates .lib files, which should be ignored by git and removed by clean. * sendmany::find_unspent_notes removing an unneeded recursive lock, GetFilteredNotes is already locking cs_main and cs_wallet. * asyncOp sendmany: moved inputs total amount check inside load_utxo before the dust validation. * 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. * Improving asyncoperation_sendmany, removing another redundant for loop over all of the available utxos. * sendmany operation: Creating TxValues struct to store the transaction values in a more organized manner. * move-only: asyncOp_sendmany, target amount calculation moved before find inputs (utxos and notes). * sendmany: removing now unused SendManyInputUTXO class. * asyncRPCOperation_sendmany:find_utxos, removing a redundant loop over all of the available utxo in the wallet. * COutput: implemented Value() method. * wallet:COutput adding fIsCoinbase member. * sendmany::find_utxo removing an unneeded recursive lock, AvailableCoins is already locking cs_main and cs_wallet. * wallet:AvailableCoins filter by destination/s feature 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 nMinDepth filter implemented + connected to sendmany async operation. * wallet:AvailableCoins fOnlySpendable filtering flag implemented + connected to sendmany async operation. * test: Use default shielded address in RPC tests where the type is irrelevant * add address to z_importviewingkey error ------------------------------------------------------------------- Tue Nov 17 18:50:24 UTC 2020 - marec@detebe.org - Update to version 4.1.1: * Add notable changes to release notes for v4.1.1 * make-release.py: Updated release notes and changelog for 4.1.1. * make-release.py: Updated manpages for 4.1.1. * make-release.py: Versioning changes for 4.1.1. * Update getblocktemplate documentation. * Document how to get block subsidy information in getblocktemplate. * Correctly report founder's reward amount in getblocktemplate prior to Canopy * Set release CFLAGS/CXXFLAGS to use -O3. * Change order of checks to skip IsInitialBlockDownload check if flag is unset. * GetNextWorkRequired: clarify why this computation is equivalent to that in the protocol spec. refs https://github.com/zcash/zips/pull/418 * cargo update * Don't compile ehHashState::* if mining is disabled * Wording improvements to getrawtransaction RPC documentation * doc: Adjust subtree developer notes to refer to Zcash * lint: Fix minor shellcheck lints * lint: s/trim/lenTrim in src/crypto/equihash.[cpp,h] * lint: Apply include guard style to src/rust/include * lint: Re-exclude subtrees from lint-include-guards.sh * lint: Opt out of locale dependence in Zcash shell scripts * lint: Use consistent shebangs * python: Explicitly set encoding to utf8 when opening text files * lint: Fix duplicate includes * lint: Fix missing or inconsistent include guards * doc: improve subtree check instructions * [linter] Strip trailing / in path for git-subtree-check * Revert "Remove unused variable in shell script" * Improve git-subtree-check.sh * Remove unused variables in shell scripts. * uint256: replace sprintf with HexStr and reverse-iterator * test: Explicitly set encoding to utf8 when opening text files * [copyright] add MIT license headers to .sh scripts where missing * lint: Remove some subtrees from exclusion * lint: Allow stoi in src/rpc/blockchain.cpp * test: Fix pyflakes warning in bitcoin-util-test.py * lints: Add a missing copyright header * Small documentation fixes * Improve logging in bctest.py if there is a formatting mismatch * Clean up bctest.py and bitcoin-util-test.py * Add logging to bitcoin-util-test.py * test: Add format-dependent comparison to bctest * add verbose mode to bitcoin-util-test.py * bitcoin-util-test.py should fail if the output file is empty * Add option to run bitcoin-util-test.py manually * Add bitcoin-tx JSON tests * lints: Match `export LC_ALL="C"` in lint-shell-locale * Follow-up to #13454: Fix broken build by exporting LC_ALL=C * lints: Update expected Boost imports * lints: Use Zcash-specific include guards for new files * Make lint-includes.sh work from any directory * Run all lint scripts * Remove no longer needed shellcheck suppressions * Fix warnings introduced in shellcheck v0.6.0 * Remove repeated suppression. Fix indentation. * refactor/lint: Add ignored suggestions to an array * qa: Ignore shellcheck warning SC2236 * Scripts and tools & Docs: Used #!/usr/bin/env bash instead of obsolete #!/bin/bash, added linting for .sh files shebang and updated the Developer Notes. * macOS fix: Add excludes for checks added in the newer shellcheck version installed by brew * macOS fix: Work around empty (sub)expression error when using BSD grep * use export LC_ALL=C.UTF-8 * fix locale for lint-shell * Obsolete #!/bin/bash shebang * Add linter: Make sure we explicitly open all text files using UTF-8 or ASCII encoding in Python * Explicitly specify encoding when opening text files in Python code * Add linter: Make sure all shell scripts opt out of locale dependence using "export LC_ALL=C" * Add "export LC_ALL=C" to all shell scripts * docs: Mention lint-locale-dependence.sh in developer-notes.md * build: Add linter for checking accidental locale dependence * build: Guard against accidental introduction of new Boost dependencies * test: Move linters to test/lint, add readme * [contrib] convert test-security-check to python3 * add lint tool to check python3 shebang * Add shell script linting: Check for shellcheck warnings in shell scripts * Refine travis check for duplicate includes * Add Travis check for duplicate includes * Add lint-include-guards.sh which checks include guard consistency * Fix missing or inconsistent include guards * Document include guard convention * [script] lint-whitespace: improve print linenumber * devtools: Exclude patches from lint-whitespace * [scripts] lint-whitespace: check last N commits or unstaged changes * [scripts] lint-whitespace: use perl instead of grep -P * contrib: Ignore historical release notes for whitespace check * Add tab char lint check and exclude imported dependencies * Add a lint check for trailing whitespace. * Fix header guards using reserved identifiers * [Trivial] ensure minimal header conventions * add myblockhash parameter to getrawtransaction ------------------------------------------------------------------- Tue Nov 03 17:15:05 UTC 2020 - marec@detebe.org - Update to version 4.1.0: * Update approximate release height * Fix a comment about postponement of Clang upgrade * Update doc/release-notes/release-notes-4.1.0.md * Update doc/release-notes/release-notes-4.1.0.md * make-release.py: Updated release notes and changelog for 4.1.0. * make-release.py: Updated manpages for 4.1.0. * make-release.py: Versioning changes for 4.1.0. * Postpone clang and libc++ dependency updates until after the 4.1.0 release. * Gitian builds: Remove manual CFLAGS and CXXFLAGS from descriptor. * Update release-notes-4.1.0-rc1.md * make-release.py: Updated release notes and changelog for 4.1.0-rc1. * make-release.py: Updated manpages for 4.1.0-rc1. * make-release.py: Versioning changes for 4.1.0-rc1. * Use bash instead of POSIX sh. POSIX sh does not support arrays. * Add error handling: exit if cd fails * Rename the FS_ZIP214_ECC funding stream to FS_ZIP214_BP. See also https://github.com/zcash/zips/pull/412 . * scripted-diff: Remove BOOST_STATIC_ASSERT * add z_gettreestate rpc * tests: Update chained_joinsplits test for HaveShieldedRequirements API change * Use HTTPS in script license headers * Update example scripted-diff comit in doc/developer-notes.md * test/lint: Check for working changes before checking scripted diffs * test: Mention commit id in scripted diff error * Enable ShellCheck rules * scripted-diff: Run scripted-diff in subshell * Add "export LC_ALL=C" to all shell scripts * test: Move linters to test/lint, add readme * [docs] document scripted-diff * Fail on commit with VERIFY SCRIPT but no scripted-diff * devtools: add script to verify scriptable changes * Add txid to "shielded requirements not met" messages * Fix an error reporting bug in "Checksum missing or mismatched ..." * utils: Remove unnecessary GetTempPath() * Add logging to CCoinsViewCache::HaveShieldedRequirements * Improve reject reasons for unmet shielded requirements * Fix death gtests on macOS by switching to the threadsafe style. * Replace invalid characters in log message decoding. * Fix invocation of updatecheck.py in make-release.py * depends: fix a logging bug for multi-archive packages. * Remove unused Boost includes * [Trivial] Add BITCOIN_FS_H endif footer in fs.h * Remove `namespace fs=fs` * torcontrol: Use fs::path instead of std::string for private key path * Use fsbridge for fopen and freopen * Replace uses of boost::filesystem with fs * Replace includes of boost/filesystem.h with fs.h * Add fs.cpp/h * Move GetTempPath() to testutil. * Add a source file for unit test utils. * build: Update secp256k1 configure flags * Squashed 'src/secp256k1/' changes from 8ab24e8da..c6b6b8f1b * Postpone native_ccache 4.0 * Switch from std::random_shuffle to std::shuffle * Add new copyright entries for build-aux/m4/ax_cxx_compile_stdcxx.m4 * depends: Build C++ dependencies with C++ 17 * build: Require and build with C++ 17 * build: Update AX_CXX_COMPILE_STDCXX macro * depends: Add untested note to FreeBSD host * allow getaddressutxos if -lightwalletd * Remove void declaration of ScriptPubKeyToJSON() * Comment and error message cleanups for transaction checks. * contrib/devtools/symbol-check.py: add info about Fedora-based distributions. * Update contrib/devtools/symbol-check.py * Rename `time` to `duration` in `DisplayDuration`. * Fix integer types in DisplayDuration. * Only return address instead of CScript * log(x)/log(2.0) can be written as log2(x). * Apply suggestions from code review * Minor cleanups * Handle shielded address case * Fix CScript encoding * Add funding stream addresses to getblocksubsidy RPC output * doc: Add Clang and libc++ migration to release notes * test: Fix various pyflakes warnings * QA: Add native_clang and libcxx to updatecheck.py * qa/zcash/full_test_suite.py: print immediately if a test fails. * qa/zcash/full_test_suite.py: changes needed for macOS. fixes #4785 * Build python for debian9 and ubuntu16.04 * Fixed Centos and Arch python requirements * Added Arch and Centos to script, added libtinfo5 for arch * qa: Disable FORTIFY_SOURCE checks * Added libtinfo5 to ci builder containers * update function comment * simplify TestBlockValidity * performance: auto params = CChainParams::GetConsensus() * build: Add -lpthread to univalue test LDFLAGS * build: Compile secp256k1 with C99 * depends: Fix boost::iostreams usage on Windows with libc++ * depends: Rename Boost libraries to follow MinGW/GCC convention * Use the current time as the timestamp if we override a misc warning. * Fix command-line help for -ibdskiptxverification * depends: Fix "unused variables" warning when compiling zeromq for Windows * build: Add missing LIBUNIVALUE to Makefile.bench.include LDADD * build: Statically link libc++ * depends: Add multilib paths for Linux cross-compile * depends: Don't replace default CXXFLAGS in C++ dependencies * depends: Add libc++ as a dependency * Rename IBDSkipTxVerification back to ShouldCheckTransaction * depends: Vendor LLD and use it for linking * depends: Use vendored Clang for macOS cross-compilation * Fix warnings surfaced by compiling with clang++. * depends: Use vendored Clang for native compilation * depends: Add Clang 8.0.0 * Convert a sed command to a static patch file. * Beef up the CoC to address use of dog-whistles. * Fix a new warning about use of boost::bind placeholders after updating Boost. closes #4774 * Reject incompatible flags in "Step 2" * Ensure conflicting flags are reported as an error. * Apply suggestions from code review * -ibdskiptxverification must imply -checkpoints * MOVEONLY: Move logging code from util.{h,cpp} to new files * Apply style suggestions from code review * depends: Postpone current and scheduled Rust releases until 2021 * Reduce diff complexity. * FFI: Merge librustzcash_init_zksnark_params variants into one function * Add logging when we receive an invalid note plaintext (using the "receiveunsafe" log category). * depends: Update packages documentation for Zcash * Remove redundant CheckBlock calls. * Add a config option to skip transaction verification in IBD mode * depends: ZeroMQ 4.3.3 * build: pass --enable-option-checking to applicable packages * build: only pass --disable-dependency-tracking to packages that understand it * depends: zeromq: disable draft classes and methods * depends: Purge libtool archives * depends: Build secondary deps statically. * [depends, zmq, doc] avoid deprecated zeromq api functions * depends: Disable unused ZeroMQ features * cargo update * depends: ccache 3.7.12 * depends: Boost 1.74.0 * Remove Bitcoin release notes * Remove deprecated init.md * Fix zeromq warning * Fix undefined behavior in the test_bitcoin tests * httpserver: Code style cleanups * QA: Fix backporting bugs in httpbasics.py * depends: Use correct HOST for download-linux target * depends: utfcpp 3.1.2 * depends: googletest 1.8.1 * depends: ccache 3.7.11 * depends: libevent 2.1.12 * build: Use the endomorphism optimization for secp256k1 * Squashed 'src/secp256k1/' changes from 6ad5cdb42..8ab24e8da * build: Remove a stray -lcrypto * Cosmetics in CScriptNum code and tests. * It's unnecessary to pass int64_t by const reference. * Add assertions for CScriptNum[10] +/- int64_t to avoid the possibility of UB. * Avoid undefined behaviour in scriptnum tests. * httpserver: replace boost threads with std * httpserver: use a future rather than relying on boost's try_join_for * http: use std::move to move HTTPRequest into HTTPWorkItem * http: Change boost::scoped_ptr to std::unique_ptr in HTTPRequest * http: Add log message when work queue is full * http: Do a pending c++11 simplification * Minor additional OpenSSL scouring. * QA: Remove OpenSSL from updatecheck.py * Remove remaining OpenSSL references * util: Remove OpenSSL multithreading infrastructure * build: remove libcrypto as internal dependency in libbitcoinconsensus.pc * doc: remove OpenSSL from build instructions and licensing info * depends: remove OpenSSL package * build: remove OpenSSL detection and libs * build: remove SSL lib detection * tests: Remove OldSetKeyFromPassphrase/OldEncrypt/OldDecrypt * Replace scriptnum_test's normative ScriptNum implementation * Move uiInterface.NotifyBlockTip signal above the core/wallet signal * NotifyBlockTip signal: switch from hash (uint256) to CBlockIndex* * http: Restrict maximum size of request line + headers * [RPC] Add transaction size to JSON output * gitian: Switch from x86_64-unknown-linux-gnu to x86_64-linux-gnu * build: Switch to x86_64-pc-linux-gnu for codecov filtering * QA: Switch to x86_64-pc-linux-gnu for hard-coded Linux HOST * depends: Update map of GCC canonical hosts to Rust targets * allocators: Apply Allocator named requirements to secure_allocator::deallocate * LockedPool: Make Arena::free and LockedPool::free noexcept * LockedPool: Fix LockedPool::free(nullptr) to be a no-op * test: Fix LFSR period in comments * LockedPool: Switch to HTTPS URLs in licenses and comments * leveldb: Fix typo * Update license headers * leveldb: Assert that ssize_t is the same size as size_t on Windows * build: out-of-tree fixups * Improve readability by removing redundant casts to same type (on all platforms) * Fix subscript[0] potential bugs in key.cpp * depends: Update to latest config.guess & config.sub * Fix typos * Remove reference to cargo-checksum.sh * build: Remove Rust staticlib naming workaround * tracing: Correctly override tracing::Span move constructors * blake2b: Allow consuming partial BLAKE2b output * Replace libsodium's crypto_generichash_blake2b with blake2b_simd * depends: Remove cargo-checksum.sh * Squashed 'src/leveldb/' changes from 524b7e36a..f545dfabf * Squashed 'src/leveldb/' changes from 64052c76c..524b7e36a * Squashed 'src/leveldb/' changes from c521b3ac6..64052c76c * Squashed 'src/leveldb/' changes from 196962ff0..c521b3ac6 * build: verify that the assembler can handle crc32 functions * Fixed multiple typos * Add extra LevelDB source to Makefile * leveldb: enable runtime-detected crc32 instructions * Squashed 'src/leveldb/' changes from a31c8aa40..196962ff0 * Squashed 'src/leveldb/' changes from 20ca81f08..a31c8aa40 * Do not include env_win.cc on non-Windows systems * Add MIT license to Makefiles * build: out-of-tree fixups * build: No need to check for leveldb atomics * leveldb: integrate leveldb into our buildsystem * Update to latest zcash_* and zkcrypto crates. * cargo update * Update Rust to 1.44.1. * rpc: Fix comma spacing in example z_sendmany commands * wallet: Ignore coinbase UTXOs with z_sendmany ANY_TADDR * Line-wrap addition to README.md * Link the README.md to the specific readthedocs.io page for building on Debian/Ubuntu. * depends: Ensure that SOURCES_PATH exists before vendoring crates * QA: Comment out Rust crate checks in updatecheck.py * depends: Switch to `cargo vendor` for Rust dependencies * Postponed dependency updates, refer to core team sync meeting. * Flush witness data when consistent (part 2) * Allow multiple nuparams options in config file * Ensure that the absolute path used in the test definitely does not exist. * Fix grammar in error messages. * Apply suggestions from code review * allow wallet file to be outside datadir * Fix forward declaration. * Rename z_*_balance fields of getwalletinfo output to shielded_*_balance * Revert the move of the `getBalanceZaddr` block for ease of review. * Prevent creation of shielded transactions in initial block download. * wallet: Add ANY_TADDR special string to z_sendmany * Make some conversions explicit to reduce sanitizer warnings. * Add a missing % to a string interpolation in rpc test framework * Fix buffer overflows in P2PKH tests * CBufferedFile: use eof() method rather than feof(src) in error message. * CBufferedFile: assert that Fill() is only called when nReadPos == nSrcPos, and simplify based on that assumption. * Add null check to feof. * add shielded balance to getwalletinfo * Limit scope of all global std::once_flag * Assorted small changes to the locked pool manager * lockedpool: avoid sensitive data in core files (FreeBSD) * lockedpool: When possible, use madvise to avoid including sensitive information in core dumps * Fix segfault in allocator_tests/arena_tests * Fix compilation errors in support/lockedpool.cpp * Fix out-of-bounds write in case of failing mmap(...) in PosixLockedPageAllocator::AllocateLocked * fix nits: variable naming, typos * Use best-fit strategy in Arena, now O(log(n)) instead O(n) * Remove some unused functions and methods * LockedPool: avoid quadratic-time allocation * LockedPool: fix explosion for illegal-sized alloc * LockedPool: test handling of invalid allocations * Do not shadow variable, use deprecated MAP_ANON if MAP_ANONYMOUS is not defined. * bench: Add benchmark for lockedpool allocation/deallocation * rpc: Add `getmemoryinfo` call * support: Add LockedPool * wallet: Get rid of LockObject and UnlockObject calls in key.h * wallet: Change CCrypter to use vectors with secure allocator * [trivial] Switched constants to sizeof() * revert result key change, fix calls to getime * change order of returned pair, fix compatibility issue * add timestamp to warnings * Add assert_raises_message to the python test framework. ------------------------------------------------------------------- Wed Sep 02 08:30:06 UTC 2020 - marec@detebe.org - Update to version 4.0.0: * minor: Add backticks to avoid formatting in 4.0.0 release notes. * make-release.py: Updated release notes and changelog for 4.0.0. * make-release.py: Updated manpages for 4.0.0. * make-release.py: Versioning changes for 4.0.0. * Postpone updates for dependencies until after 4.0.0 release. * Set activation height for Canopy on mainnet. * Clarify a comment about the ZF and MG addresses * Add dev fund addresses for mainnet. * Specify 4.0.0 in release notes * Update names of contributors in release notes. * Add release notes to describe the Canopy network upgrade. * make-release.py: Updated release notes and changelog for 4.0.0-rc1. * make-release.py: Updated manpages for 4.0.0-rc1. * make-release.py: Versioning changes for 4.0.0-rc1. * Postpone rust updates * Postpone boost 1.74.0 update * Add comment in lieu of redundant overwinter version check & fix tests. * wallet: lock cs_main while accessing chainActive * FFI: Rename r to rcm * FFI: Rename to librustzcash_sapling_compute_cmu * qa: Update list of postponed crate versions * depends: cargo update * FFI: Migrate to bls12_381 and jubjub crates * FFI: Remove circuit parameter hashes from librustzcash_init_zksnark_params * depends: Migrate to zcash_* 0.3.0 Rust crates * make deprecation.h include consensus/params.h * consensus: Remove redundant contextual consensus rules * consensus: Reorder Overwinter+!Sapling rules * consensus: Move Sapling-disabled Overwinter rules above Sapling rules * consensus: Combine saplingActive conditionals * consensus: Move overwinterActive rules ahead of saplingActive rules * consensus: Add a placeholder for !canopyActive * consensus: Combine heartwoodActive conditionals * consensus: Remove canopyActive gate around GetActiveFundingStreamElements * consensus: Refactor Sprout contextual rules to match the rest * consensus: Clean up some whitespace and variable names * test: Update ZIP 215 test cases from ed25519-zebra * Adjust GetActiveFundingStream* comments * ed25519: Panic (triggering abort) if nullptr passed into APIs * Replace libsodium's crypto_sign with ed25519-zebra * consensus: Clearly gate active funding stream elements on Canopy * Add link to ZIP212 in coinbase comment * consensus: Statically check funding stream numerators and denominators * consensus: Document the empty conditional branch in ContextualCheckBlock * consensus: Add assertions for Params::HalvingHeight parameters * Rename PRV_DIVERSIFIER to PRF_TAG * assert(leadbyte == 0x02) after every if(leadbyte != 0x01) * Define PRF diversifiers in prf.h * Move esk derivation check to beginning of plaintext_checks_without_height() * Add documentation specific to ZIP 212 * Replace libsodium's randombytes_buf with rand_core::OsRng::fill_bytes * Remove 'jessie' (debian 8) from suites list in linux gitian descriptors * debian: Rename X11 to Expat-with-advertising-clause in copyright * Repair full_test_suite.py for new checksec.sh. * Newer version of checksec.sh from https://github.com/slimm609/checksec.sh/commit/a6df608ac077689b2160e521db6601abc7b9e26e * Make sure garbage bytes are different * Add test for garbage memory in history nodes * Add missing curly braces after if statement * Added libfuzzer support. * Added support for afl-clang-fast. * init: Add spans for initialization and shutdown * init: Rework tracing_init call * tracing: Rework tracing_init into a single function * tracing: Parse log_path into an Option<Path> * util: Use DEBUG level for LogPrint(), leaving INFO for LogPrintf() * Add fields to logging in CNode and UpdateTip * tracing: Format field values with Display * tracing: Add support for span fields * tracing: Add support for event fields * tracing: Add MAP macro * FFI: Fix tracing log path handling on Windows * depends: Split check-packages and check-sources across categories * depends: Add platform-specific overrides for download files * depends: Rework Rust integration * Remove deprecated contrib utilities * contrib: Update macdeploy README * Throw error if -paramsdir not a valid directory * Add paramsdir option for manpage * Allow configure params directory * Revert "Add check-depends step to STAGE_COMMANDS list" * depends: tracing-core 0.1.13 * qa: Add tracing dependencies to updatecheck.py * doc: Update release notes for tracing backend * tracing: Document macro arguments that MUST be static constant UTF-8 strings * tracing: Log field values that aren't valid UTF-8 * rpc: Throw error in setlogfilter if filter reloading fails * init: Place additional constraints on pathDebug * FFI: Add missing <stddef.h> includes * wallet: Fix logging to satisfy constexpr requirements * tracing: Use 'static constexpr' hack in macros * FFI: Extract common codeunit types into a rust/types.h header * Add some spans to the Zcash codebase * Add support for tracing spans * Add an RPC method for setting the tracing filter directives * Add support for reloading the tracing filter * Use a tracing EnvFilter directive for -debug flags * Replace C++ logging with tracing logging * FFI wrapper around tracing crate * Add tracing to librustzcash dependencies * test: Remove obsolete TransactionBuilder test * Update Makefile.am * depends: Use FALLBACK_DOWNLOAD_PATH if the primary's hash doesn't match * Revert "Try downloading from our mirror first to avoid headaches." * Revert "Rename FALLBACK_DOWNLOAD_PATH to PRIORITY_DOWNLOAD_PATH" * Fix a comment typo in pow.cpp * Add new dependencies to updatecheck.py, add a flag we can use to have our CI test it. * Extend deadline for postponing dependency updates * Remove Proton license from contrib/debian/copyright * Remove amqp code and Proton library depenencies & flags. * Debian: Add copyright entries for ctaes and secp256k1 * depends: bump native_cctools for fixed lto with external clang * depends: enable lto support for Apple's ld64 * depends: Add justifications for macOS clang flags * depends: specify libc++ header location for darwin * depends: Specify path to native binaries as clang argument * depends: Decouple toolchain + binutils * doc: explain why passing -mlinker-version is required * darwin: pass mlinker-version so that clang enables new features * macos: Bump to xcode 11.3.1 and 10.15 SDK * depends: bump MacOS toolchain * contrib: macdeploy: Remove historical extraction notes * contrib: macdeploy: Use apple-sdk-tools instead of xar+pbzx * native_cctools: Don't use libc++ from pinned clang * Adapt rest of tooling to new SDK naming scheme * contrib: macdeploy: Correctly generate macOS SDK * Fix naming of macOS SDK and clarify version * build: use macOS 10.14 SDK * depends: native_cctools 921, ld64 409.12, libtapi 1000.10.8 * depends: clang 6.0.1 * build: set minimum supported macOS to 10.12 * scripted-diff: prefer MAC_OSX over __APPLE__ * doc: mention that macOS 10.10 is now required * depends: set OSX_MIN_VERSION to 10.10 * Fix a return status issue. * Update .gitignore. * zcutil/distclean.sh: remove BDB utility programs. * add more allowed duplicates * Update doc/release-notes/release-notes-3.1.0.md * Add Debian8 deprecation to release notes * flush wallet db (SetBestChain()) on clean shutdown * metrics: Collect general stats before clearing screen * build: shuffle gtest Makefile so that crypto can be used by the wallet * build: Enumerate ctaes rather than globbing * crypter: add tests for crypter * crypter: add a BytesToKey clone to replace the use of openssl * crypter: hook up the new aes cbc classes * crypter: constify encrypt/decrypt * crypter: fix the stored initialization vector size * crypto: add aes cbc tests * crypto: add AES 128/256 CBC classes * Add ctaes-based constant time AES implementation * Squashed 'src/crypto/ctaes/' content from commit 003a4acfc * Send alert to put pre-Heartwood nodes into safe mode. * Skip Sprout proof verification for ProofVerifier::Disabled * Move JSDescription::Verify to ProofVerifier::VerifySprout * Move ProofVerifier out of the libzcash namespace * Make ZCJoinSplit::prove static and remove ZCJoinSplit globals * Remove unused declarations left over from libsnark verification * Move GrothProof and SproutProof definitions into zcash/Proof.hpp * Update to Python 3 * Updating to Python 3 * install bdb binaries * Enforce pre-release dependency update check in make-release.py * Change release instructions to block the release when dependencies are not updated and not postponed. * Implement system for postponing dependency updates. * only allow duplicates for certain options of the config * explain expiry error * fix bug of bdb.mk * Be consistent with how to #include test data headers * Be consistent about what path to include bitcoin-config.h with * Include header files within the source tree using "" instead of <> * Don't clobber cwd in rpc_wallet_tests.cpp * Add missing libsnark initialization call * libsnark: Don't (implicitly) rely on other tests initializing the public params * Remove Checkpoints_tests.cpp * Fix linkage issue with consts in primitives/block.h * Add actual header file for utilities in gtest/utils.cpp * Add missing #includes to test_block.cpp * Get rid of implicit hidden dependencies between test .cpp files ------------------------------------------------------------------- Tue Jul 28 17:44:23 UTC 2020 - marec@detebe.org - Update to version 3.1.0: * Set APPROX_RELEASE_HEIGHT to 917000 and update release-notes-3.1.0.md * make-release.py: Updated release notes and changelog for 3.1.0. * make-release.py: Updated manpages for 3.1.0. * make-release.py: Versioning changes for 3.1.0. * Allow Equihash validation tests to be compiled with --disable-mining. * Fix --disable-mining build regression. closes #4634 * Use 51 Testnet Dev Fund addresses, and adjust the end heights. * Delay testnet activation height by one week * Zero-initialize HistoryNode values. * Pass HistoryNode struct to librustzcash FFI * Set PROTOCOL_VERSION to 170012 * Set Canopy testnet activation height to 1020500 * Fix the formatting of the 3.0.0 release notes. * Add unit tests for DisplayDuration, DisplaySize, and DisplayHashRate. * Metrics screen: display hash rates using SI prefixes rather than as powers of 2. * src/metrics.cpp: cosmetic whitespace changes. * Add dev fund addresses for testnet NU4 activation. * More iterator cleanups. * Edit release notes to specify that rc2 does not enable Canopy support on the testnet * make-release.py: Updated release notes and changelog for 3.1.0-rc2. * make-release.py: Updated manpages for 3.1.0-rc2. * make-release.py: Versioning changes for 3.1.0-rc2. * Revert "Pass the block height through to CheckEquihashSolution()" * Remove C++ Equihash validator * Use Rust Equihash validator unconditionally * Fix an unintended consensus change in decryption of coinbase outputs. * Add key_constants.h to src/Makefile.am. * Undo manual DEPRECATION_HEIGHT * make-release.py: Updated release notes and changelog for 3.1.0-rc1. * make-release.py: Updated manpages for 3.1.0-rc1. * make-release.py: Versioning changes for 3.1.0-rc1. * Apply suggestions from code review * Another cleanup. * Remove an unnecessary iterator increment. * Fix bug in CScheduler * Clean up some iterator usage. * Update release notes for v3.1.0 * Trivial whitespace fix. * Apply suggestions from code review * Fix assertion check in GetBlockSubsidy * Change the format of `getblocksubsidy` output to use an array of funding stream objects. * Apply suggestions from code review * Cosmetic spacing changes. * Use ValueFromAmount instead of double arithmetic, and improve variable names. * Fix typo in constant. * Rename KeyInfo -> KeyConstants and move out of Consensus namespace. * Make evident the relationship between chainparams and key IO. * Change getblocksubsidy RPC to take into account funding streams. * Tests for changes to getblocksubsidy. * Use for..in rather than an indexed loop. * Add GetActiveFundingStreams function. * sync before stopping nodes * Remove assertion that was breaking regtest in the case that blossom activates after the halving. * Use ed25519-zebra from crates.io. * Fix ordering of transparent outputs such that miner reward is vout[0] * undo flushing witness data on shutdown * Directly call RegtestActivate* in gtests * Pass nHeight instead of pindex to AddToWalletIfInvolvingMe() * Remove old SaplingNote() constructor * Minor changes * Fix incorrect subtraction of Halving(blossomActivationHeight) from halvingIndex * Use uint32_t for vFundingStreams indexing. * Pass by const reference where possible. * Minor help message correction. * Trivial comment correction. * Move test-only code into test sources. * Add `RegtestDeactivateCanopy` calls to restore shared regtest params. * Fix funding stream end-height-exclusion bugs * Remove outdated comment. * Hash "Zcash" to align tests with ZIP 215 test vectors. * Change LIBSODIUM_ERROR to -1. * Migrate ZIP 215 test vectors to gtest suite. * Refactor bool is_zip_212 to enum Zip212Enabled * Remove plaintext check from GetFilteredNotes * Remove plaintext check from AddSaplingSpend * Fix pyflakes. * fix pyflakes CI errors * Update HalvingHeight documentation. * Record-constructor syntax for funding stream initialization. * Minor naming change FundingStreamShare -> FundingStreamElement * Remove unused imports from remove_sprout_shielding RPC test. * add log aporximation to metrics solution rates * Capitalization fixes from code review * Pass pindex to AddToWalletIfInvolvingMe() * Throw error in plaintext deserialization * Replace leadByte in SaplingNote with is_zip_212 * Qualified imports of std:: types * Replace BOOST_FOREACH with for..: * self.sync_all(), not time.sleep(4) * Trivial copyright fix. * Add RPC tests * Add checks to z_ methods in rpcwallet * Add gtests * Add contextual check to main.cpp * Add joinSplitPubKey and joinSplitSig to RPC * Minor fixes for ZIP-207 review comments. * Trivial error message fix. * Use for..: rather than BOOST_FOREACH * Identify `-fundingstream` parameter as being regtest-only * Cargo fmt * Add more exhaustive tests for ZIP 215 compatibility. * Turn return values for libsodium-like API into constants for clarity. * Implement zip-207 and zip-214. * review, cleanup: eliminate uninitialized variable * Add gtests for v2 plaintexts * Refactor SaplingNotePlaintext::decrypt * Check epk vs esk whenever caller has esk * Reject v1 plaintexts after grace period * Make transaction builder take the next block height into account for use of v2 note plaintexts. * Require that shielded coinbase output note plaintexts are version 2 if Canopy is active. * flush witness cache correctly * Redirect git checkouts of ebfull/ed25519-zebra through our vendored sources in offline mode. * add python test to reproduce bug 4301 * Minor adjustments to librustzcash and tests. * Remove unused curve25519-dalek dev-dependency. * Remove bincode crate. * Add test that a weird signature successfully validates. * Enforce ZIP 215 rules upon activation of Canopy. * Change to version of ed25519-zebra crate which is compliant with ZIP 215. * Remove an unused CCriticalSection. * Make ed25519-zebra available via librustzcash. * Change transaction builder and miner to use v2 Sapling note plaintexts after Canopy activates. * Add support for receiving v2 Sapling note plaintexts. * Add a getter method to obtain rcm from a Sapling note plaintext. * Remove bare SaplingNote constructor. * Add implementations of PRF_expand calls that obtain esk and rcm. * Add ZF and gtank's DNS seeders * Remove unused import in qa/rpc-tests/listtransactions.py * fix/improve docs * metrics: Only print IBD progress bar on TTY * metrics: Switch to ANSI colour codes for progress bar * initialize size_t * add new parameters to rpc client and fix some bugs * update docs * remove not needed comments from wallet.py * Missing NU4->Canopy renames. * Rename golden/nu4.tar.gz to canopy.tar.gz. * fix sort of options * fix test cases * test: Add tests for `-debuglogfile` with subdirs * doc: Update release notes for `-debuglogfile` * test: Add test for `-debuglogfile` * Add `-debuglogfile` option * Rename NU4 to Canopy in constant and function names. * qa: Add --automate flag to smoke tests * qa: Remove unused timeout configuration from wait_for_balance * qa: Add --use-faucet flag to smoke tests * metrics: Don't show "not mining" text for mainnet * metrics: Draw IBD progress bar showing headers and blocks * metrics: Fix indents * During initial blocks download, also report the number of headers * Fix typos in ProcessMessage() "headers" * Add helpers for tapping and donating to the testnet faucet * Various improvements * Resolve decimal vs float issues * qa: Improve reliability of smoke test cleanup * qa: Improve reliability of smoke tests * qa: Don't allow smoke tests with mainnet wallet.dat * qa: Use slick-bitcoinrpc for smoke tests * qa: Transaction chain smoke test * qa: Simple smoke tests * qa: Run Zcash node for smoke tests * qa: Smoke test driver * Add RPC tests for post-Heartwood rollback * Use the cached consensusBranchId in DisconnectBlock * Add missing <stdexcept> header for std::invalid_argument * change name of harden option * remove additional not needed casts from py tests * add MINOR_CURRENCY_UNIT * Fix casting in listtransactions.py * simplify inzat balances logic * Fix casting in wallet.py * replace with AssertionError assert_equal in receivedby.py * add amountZat field to z_listreceivedbyaddress * add amountZat field to listunspent * add amountZat field to listtransactions, gettransaction and listsinceblock * add amountZat field to listreceivedbyaddress and listreceivedbyaccount * add boolean inZat to z_getbalance * add boolean inZat to getbalance * add boolean inZat to getreceivedbyaccount * change argument name * add documentation to flag * add bool argument to get balance in satoshis to rpc getreceivedbyaddress * Use preprocessor for ENTRY_SERIALIZED_LENGTH * Use assert.h instead of define manually static_assert * librustzcash: make the header C compatible * get fuzzing options from directory * add documentation and command line parsing to afl scripts * Fix undefined behavior in gtest tests * add estimatedheight to getblockchaininfo ------------------------------------------------------------------- Wed May 27 17:47:19 UTC 2020 - marec@detebe.org - Update to version 3.0.0: * make-release.py: Updated release notes and changelog for 3.0.0. * make-release.py: Updated manpages for 3.0.0. * make-release.py: Versioning changes for 3.0.0. * Set deprecation of 3.0.0 to target EOS halt mid-September. * make-release.py: Updated release notes and changelog for 3.0.0-rc1. * make-release.py: Updated manpages for 3.0.0-rc1. * make-release.py: Versioning changes for 3.0.0-rc1. * Bump the protocol version, as this node supports Heartwood on mainnet. * Set the Heartwood activation height to 903000. * Explicitly assert that chainActive[upgrade.nActivationHeight] is non-null at this point. * Pass DO_NOT_UPDATE_CONFIG_SCRIPTS=1 to autogen.sh in libsodium dependency, to avoid updating config scripts over the network. * Remove unused imports. * Update minimum chain work on testnet to reflect Heartwood activation. * Fix a null pointer dereference that occurs when formatting an error message, if we haven't activated an upgrade as expected. * Avoid names starting with __. * Add univalue to updatecheck.py and update univalue, removing calls to deprecated methods * Add NU4 activation to golden test. * Fix off-by-one error in CreateNewBlock() * Fully remove the regtest tree from restored nodes. * remove not needed help parameters to dump and import impl * Update golden test for heartwood network upgrade. * Add baseline for golden testing across network upgrade boundaries. * Remove unused imports. * Revert "Update qa/rpc-tests/sapling_rewind_check.py" * Update test description and clarify internal comments. * Add Zcash copyright to sapling_rewind_check.py * Update qa/rpc-tests/sapling_rewind_check.py * Update qa/rpc-tests/test_framework/mininode.py * Use `%x` formatter for branch id hex string in test_framework/util.py * Clean up imports in sapling_rewind_check.py * Dockerfiles for zcashd CI builds * Update URLs for prior network upgrades * Add NU4 test helpers * Add NU4 to upgrade list * Improve memory_cleanse documentation * Use BOOST_SCOPE_EXIT_TPL to clean and free datValue in CDB::Read * Update to the Cargo V2 lockfile format. * Update all crates. * Improve documentation of memory_cleanse() * Clean up logic in memory_cleanse() for MSVC * Minimal code changes to allow msvc compilation. * Switch memory_cleanse implementation to BoringSSL's to ensure memory clearing even with link-time optimization. * [wallet] Securely erase potentially sensitive keys/values * implement z_getnotescount api call * Ensure that we don't pass a null block pointer to ConnectTip. * Make condition closer to original, Fix incorrect comment. * Remove option to load new blocks from ConnectTip * add a test case * Fix typos * Fixed Docker README grammar * Trivial comment. * Restart node in a chain split state to allow the test to complete. * The last valid height condition reads better flipped. * Fix #4119. * Make the test reproduce the actual off-by-one error in rewind length. * Fix typo * Fixed README grammar, reuse Dockerfile vars * Added Dockerfile to contrib with README * Narrow down the test case. * fix wallet nullifiers test * Check network reunification. * Add a test reproducing the off-by-one error. * Add a new safe chars rule for node version string * minor cleanup style, var names * minor fix * add status to transactions * change time to blocktime in help * add blockheight, blockindex and blocktime to z_listreceivedbyaddress * fix rpc testcase * Add confirmations to z_listreceivedbyaddress ------------------------------------------------------------------- Sat May 09 12:25:16 UTC 2020 - marec@detebe.org - Update to version 2.1.2.3: * Set the deprecation height manually to roughly July 14th. * Update release notes for v2.1.2-3. * make-release.py: Updated release notes and changelog for 2.1.2-3. * make-release.py: Updated manpages for 2.1.2-3. * make-release.py: Versioning changes for 2.1.2-3. ------------------------------------------------------------------- Sat May 09 12:24:47 UTC 2020 - marec@detebe.org - Update to version 2.1.2.2: * Modify release notes for v2.1.2-1 and v2.1.2-2 to reflect the changes more accurately. * make-release.py: Updated release notes and changelog for 2.1.2-2. * make-release.py: Updated manpages for 2.1.2-2. * make-release.py: Versioning changes for 2.1.2-2. * txdb: log additional debug information. * txdb: More complete fix for the Heartwood chain consistency check issue. ------------------------------------------------------------------- Thu May 07 10:23:37 UTC 2020 - marec@detebe.org - Update to version 2.1.2.1: * Add release details about v2.1.2-1 hotfix. * make-release.py: Updated release notes and changelog for 2.1.2-1. * make-release.py: Updated manpages for 2.1.2-1. * make-release.py: Versioning changes for 2.1.2-1. * Don't throw exception in PopHistoryNode when popping from empty tree. * txdb/chain: Restrict Heartwood chain consistency check to block index objects that were created by Heartwood-unaware clients. * Add the intended testnet activation block of Heartwood to our intended rewind logic. ------------------------------------------------------------------- Thu Apr 23 14:21:26 UTC 2020 - marec@detebe.org - Update to version 2.1.2: * make-release.py: Updated release notes and changelog for 2.1.2. * make-release.py: Updated manpages for 2.1.2. * make-release.py: Versioning changes for 2.1.2. * Clarify definition of NETWORK_UPGRADE_PEER_PREFERENCE_BLOCK_PERIOD. * Set Heartwood activation height for testnet to 903800. * Add test_random.h to distribution tarball. * Add Rust resources to distribution tarball. * Set hashFinalSaplingRoot and hashChainHistoryRoot in AddToBlockIndex * make-release.py: Updated release notes and changelog for 2.1.2-rc1. * make-release.py: Updated manpages for 2.1.2-rc1. * make-release.py: Versioning changes for 2.1.2-rc1. * Fix undefined behavior in CScriptNum * Address review comments: `target` and `depends/work` should be cleaned by clean.sh. * zcutil/release-notes.py: Add Python 3 execution header * Update release notes for v2.1.2 * Fix typos * zcutil/make-release.py: Check for release dependencies * zcutil/make-release.py: Fix to run with Python 3 * consensus: From Heartwood activation, use Rust Equihash validator * Pass the block height through to CheckEquihashSolution() * test: Run Equihash test vectors on both C++ and Rust validators * compute more structures in mempool DynamicMemoryUsage * test: Add a second Sapling note to WalletTests.ClearNoteWitnessCache * test: Ignore timestamps in addressindex checks * Update documentation info * Make peak_pos zero-indexed in CCoinsViewCache::PreloadHistoryTree * Comment clarifications and fixes * Truncate HistoryCache.appends correctly for zero-indexed entries * Improve documentation of CCoinsViewCache::PreloadHistoryTree * Remove unnecessary else case in CCoinsViewCache::PreloadHistoryTree * test: Add an extra assertion to feature_zip221.py * Refer to altitude instead of height for history tree peaks * Point at support community on Discord * Comment tweaks and cleanups * add -lightwalletd experimental option * Remove stale comment * test: Assert that GetValidTransaction supports the given branch ID * Lock with cs_main inside gtests that call chainActive.Height() * build: Connect cargo verbosity to make verbosity * test: Build Rust tests as part of qa/zcash/full_test_suite.py * build: Correctly remove generated files from .cargo * build: Move cargo arguments into RUST_BUILD_OPTS * test: Verify ZIP 221 logic against reference implementation * Use a C array for HistoryEntry instead of std::array * Return the correct root from librustzcash_mmr_{append, delete} * Implement ZIP 221 consensus rules * Add ZIP 221 support to miner and getblocktemplate * Add ZIP 221 logic to block index * use iterative platform-independent log2i * update chain history in ConnectBlock and DisconnectBlock * push/pop history with tests * change unclear wording in z_import calls address returned * add expected address check to tests * return address info in z_importviewingkey * multiple debug categories documentation * fix dead openssl download path * Remove a redundant `rm -f` command. * Use `SA_RESTART` in `sa_flags` when setting up signal handlers. * Address review comments. * Avoid spurious error messages when cleaning up directories. * Executables end with .exe on Windows. * Minor refactoring. * [qa] assert_start_raises_init_error * test_framework: detect failure of bitcoind startup * Add basic coverage reporting for RPC tests * Enable python tests for Native Windows * Split into clean.sh and distclean.sh. * Add a `zcutil/clean.sh` script that works (unlike `make clean`). * remove unused import * preserve test semantics * minor comment fix * Update updatecheck.py with the new Rust dependencies and improve the error message in case the untracked dependency list becomes out of date. * Make the memo a mandatory argument for SendManyRecipient * Avoid a theoretical possibility of division-by-zero introduced in #4368. * Simplification for MacOS in rust-test. * Minor typo fixes. * Add release profile optimizations and turn off panic unwinding in librustzcash. * Add librustzcash tests to the full test suite. * depends: Hard-code Rust target for all Darwin hosts * depends: Define Rust target in a single location * Bring in updates to librustzcash crate * depends: Use Rust 1.42.0 toolchain * Update RPCs to support cross platform paths and libs * change constructors * consensus: Check JoinSplit signatures against the previous network upgrade * test: Add Overwinter and Sapling support to GetValidTransaction() helper * mempool: Remove duplicate consensusBranchId from AcceptToMemoryPool * mempool: Check transparent signatures against the previous network upgrade * test: Add missing parameter selection to Validation.ReceivedBlockTransactions * test: Modify ValidationFakeCoinsViewDB to optionally contain a coin * test: Rename FakeCoinsViewDB -> ValidationFakeCoinsViewDB * Fix typos/minor errors in comments, and wrap some lines. * Fix typo in updatecheck.py * Fix bug in updatecheck.py and add utfcpp to its dependency list * Fix Rust static library linking for Windows builds * Exit init early if we request shutdown before having loaded the genesis block. * Add comment to `MilliSleep` documenting that it is an interruption point. * Setting a std::atomic variable in a signal handler only has defined behaviour if it is lock-free. * Resolve a race condition on `chainActive.Tip()` in initialization (introduced in #4379). * Acquire lock to check for genesis block. * add stop_node argument to check_node_log, use it in shieldingcoinbase * use check_node_log in turnstile.py * move check_node_log framework test to a new file * Move reindex progress globals to metrics.h/cpp * Byte sizes format * Use processed file size as progress in metrics during reindex * Show reindex state in metrics * remove space after new line * Consistent parameter names in txdb.h * Make fReindex atomic to avoid race * Fix race for mapBlockIndex in AppInitMain * add check_node_log utility function * make fInsightExplorer a local * refactor experimental features * add getexperimentalfeatures rpc call * depends: Remove unused vendored crates * Move root of Rust crate into repo root * Replace librustzcash from depends system with src/rust * Update .gitignore for Rust code * rust: Adjust Cargo.toml so that it compiles * rust: Pin toolchain to 1.36.0, matching depends system * Bring in Cargo.lock from librustzcash repo * Bring in librustzcash crate * depends: Remove comments from libsodium signature validation patch * Add GitHub issue templates for feature requests and UX reports * Migrate GitHub issue template to new format * test: Explicitly check Sapling consensus rules apply to shielded coinbase * init: Inform on error that -mineraddress must be Sapling or transparent * test: Check that shielded coinbase can be spent to a t-address * Use DoS level constants and parameters for ZIP 213 rejections * Adjust comments on ZIP 213 logic * test: RPC test for shielded coinbase * Add release notes for removal of -maxtimeadjustment. * test: Minor tweaks to comments in LibsodiumPubkeyValidation * util: CBufferedFile fixes * Add regtest-only -nurejectoldversions option * wallet: Include coinbase txs in Sapling note selection * Add support for Sapling addresses in -mineraddress * ZIP 213 consensus rules * Clarify comment * OutputDescriptionInfo::Build() * Handle case of fresh wallets in ThreadNotifyWallets. * change maybe_cm to maybe_cmu * change the cm member of OutputDescription to cmu * change cm() to cmu() in SaplingNote class * Initialize ThreadNotifyWallets before additional blocks are imported. * Have make clean delete AFL output directories. * Add AFL build directory to .gitignore * Have make clean delete temporary AFL build directory * Sort entries in zcash_gtest_SOURCES (other than test_tautology which is deliberately first). * Update GetAdjustedTime() to GetTime(). * Replace time adjustment with warning only. * Remove uses of GetTimeOffset(). * Revert "Add -maxtimeadjustment with default of 0 instead of the 4200 seconds used in Bitcoin Core." * Store imported Sapling ExtFVKs in wallet database * Move GetWarnings() into its own file. * Eliminate data races for strMiscWarning and fLargeWork*Found. * Add in-memory Sapling ExtFVK support to z_importviewingkey * Move GetWarnings and related globals to util. * util: Don't set strMiscWarning on every exception * Add Sapling ExtFVK support to z_exportviewingkey * Add encoding and decoding for Sapling extended full viewing keys * test: Add test for CBasicKeyStore::AddSaplingFullViewingKey * Remove default address parameter from Sapling keystore methods * SaplingFullViewingKey -> SaplingExtendedFullViewingKey in keystore maps * Move ZIP 32 classes inside zcash/Address.hpp * Move Sprout and Sapling address logic into separate files * Deduplicate some wallet keystore logic * Add release notes for z_viewtransaction * change tuples to classes * add destination wrappers * Patch libsodium 1.0.15 signature validation onto 1.0.18 * Patch libsodium 1.0.15 pubkey validation onto 1.0.18 * update libsodium to v1.0.18 * Add test vectors for small-order Ed25519 pubkeys * add missing calls to DecodeAny * make type and size a pair in DecodeAny arguments * remove debug noise from 2 gtests * fix rpx_wallet_tests * End diff with LF character * Add missing cases for Blossom in ContextualCheckBlock tests. * bench: "Use" result of crypto_sign_verify_detached * add txexpirynotify * test: Fix pyflakes warnings * test: Hard-code hex memo in wallet_listreceived for Python3 compatibility * Fix typo * Remove libsnark preprocessor flags * remove unused imports * Update #! env for python3 * Updating remaining python3 conventions * Update remaining Python3 conventions * Fix remaining python3 conventions * update comment regarding prior py2 exception * fix string pattern issue on byte object * clean up conventions and whitespace * fix pyflakes errors * Update py3 division * Update json to simplejson to remove unicode and str issue from py2 to py3 * cleanups and fixing odd casting * fix url and port issue * clean up * clean up * clean up * Clean up import calls * Fix decimal 0 issues * remove u encoding * clean up to minimize diff * remove debug lines from prior commits * update type for decimal 0 * clean up initiliaze statements from imports * fix initialize statements for imports * fix type issue * Use upstream encoding for encodeDecimal * clean up * clean-up imports, keep string notation consistent, remove spacing * Update qa/rpc-tests/addressindex.py * correct update to python3 * make import urlparse module consistent,httplib update to py3 * Remove semi colons * fix except bug for undefined url * Clean up code from upstream we dont use * Use more meaningful assert_equal from our original codebase * update remaining encoding issues, add pyblake2 * update io module, fix py3 division, and string encoding * Clean up code not needed from upstream * Update to py3, ISSUE with encoding in create_block * Update to py3, ISSUE with encoding in create_block * Update to py3, ISSUE with encoding * Update to py3, ISSUE with encoding * Update io modules for py3, ISSUE with create_transaction function * update to py3 conventions, BUG with last assert_equal * Update type to be decimal * update encoding, decoding, serialize funcs for py3 * update to py3 encodings * update to py3 conventions, clean up code to be upstream consistent * update to py3 conventions, update functions to be upstream consistent * update to py3 env path * Add keyerror execption * clean up binascii call * update str cast to prevent address assert issues * update to py3 conventions, preserve ipv6 patch * update to py3 conventions, update cmp to be py3 compatible, update map to return list for py3 * update to py3 convention, update execfile to py3 call * update to py3 conventions, update range to return list for py3 * Update to py3 conventions, update filter to return list * Update to py3 conventions, update decimal calls to be consistent * Update py2 modules to py3, update encoding to be py3 compatible * Standard py2 to py3 updates * Update cmp to py3 functions, update map return to list for py3 * Update py2 env path, remove py2 assert, update http module and assert encoding * Update py2 env path, remove py2 assert, update filter to return list for py3 * Update py2 env path, remove py2 assert * Update py2 env path, remove py2 assert * Update py2 conventions to py3, update Decimal calls * Update py2 conventions to py3, remove py2 env and assert * Update py3 env path, remove py2 assert * Update hexlify for encoding, update to py3 io module * Update python3 env path, remove python 2.7 assert * Update ignored testScriptsExt to Python3 * Update rpc-test/test_framework to Py3 convention,modules,encoding * update test_framework modules * update /usr/bin/env; fix print conventions * Fix Boost compilation on macOS * dedup decode keys and addresses * Remove remaining instances of boost::function * Replace boost::function with std::function (C++11) * replace "virtual" with "override" in subclasses * Add build system changes to release notes * Move default -g flag into configure.ac behind --enable-debug=no * Make -fwrapv conditional on --enable-debug=no * zcutil/build.sh: Turn off verbosity by default * configure: Change default Proton to match build.sh * zcutil/build.sh: Remove lcov and mining flags * Simulate worst-case block verification * Benchmark Zcash verification operations * Make updatecheck.py compatible with python2 * test: Check z_viewtransaction output in wallet_listreceived RPC test * RPC: Use OutgoingViewingKeys to recover non-wallet Sapling outputs * RPC: Display valid UTF-8 memos in z_viewtransaction * depends: Add utfcpp to dependencies * RPC: z_viewtransaction * Delete travis file * Cache releases to reduce network usage and improve performance * Wrap long lines * Fix issue #3772 * update comment, to correctly specify number of methods injected * build: Split hardening/fPIE options out * Initialize recently introduced non-static class member lastCycles to zero in constructor * Require a steady clock for bench with at least micro precision * bench: prefer a steady clock if the resolution is no worse * bench: switch to std::chrono for time measurements * Remove countMaskInv caching in bench framework * Restore default format state of cout after printing with std::fixed/setprecision * Avoid static analyzer warnings regarding uninitialized arguments * Replace boost::function with std::function (C++11) * Prevent warning: variable 'x' is uninitialized * FastRandom benchmark * Introduce FastRandomContext::randbool() * Add prevector destructor benchmark * Assert that what might look like a possible division by zero is actually unreachable * bench: Fix initialization order in registration * Address ryanofsky feedback on CCheckQueue benchmarks. Eliminated magic numbers, fixed scoping of vectors (and memory movement component of benchmark). * Add Basic CheckQueue Benchmark * Refactoring: Removed using namespace <xxx> from bench/ and test/ source files. * bench: Add support for measuring CPU cycles * bench: Fix subtle counting issue when rescaling iteration count * Kill insecure_random and associated global state * Avoid integer division in the benchmark inner-most loop. * bench: Added base58 encoding/decoding benchmarks * bench: Add crypto hash benchmarks * Benchmark rolling bloom filter * [Trivial] ensure minimal header conventions * Ignore bench_bitcoin binary. * Support very-fast-running benchmarks * Simple benchmarking framework * Return address and type of imported key in z_importkey * change regex * change convention * add additional tests to rpc_wallet_z_getnewaddress * Improve z_getnewaddress tests * update docs * allow negative index to getblockhash * add negative height to getblock * Update list of dependencies to check * Add GitHub API credential * Add Python script for checking if dependencies have updates. * remove SignatureHash from python rpc tests * Account for malloc overhead * configure: Re-introduce additional sanitizer flags * autoconf: Sane --enable-debug defaults. * Add -ftrapv to DEBUG_CXXFLAGS when --enable-debug is used * Reset default -g -O2 flags when enable debug * Make --enable-debug to pick better options * build: Show enabled sanitizers in configure output * Add --with-sanitizers option to configure * Add build support for 'gprof' profiling. * Rewrite help texts for features enabled by default. * Revert "Add configure flags for enabling ASan/UBSan and TSan" * Include shielded transaction data when calculating RecursiveDynamicUsage of transactions * Add test for unused bits in the Equihash solution encoding. * Make the equihash validator macro set its output to false when throwing an exception. * requested changes are rectified * zcutil/fetch-params.sh unneeded --testnet arg should warn user * changed wallet_zkeys_test to WalletZkeysTest * changed txid_tests to TxidTests * changed seven_eq_seven to SevenEqSeven * changed test to CamelCase * changed test to CamelCase * changed test to CamelCase * changed libzcash_utils to LibzcashUtils * chnged keystore_tests to KeystoreTests * changes tests to camelcase * changed founders_reward_test to FoundersRewardTest * changed "equihash_tests" to EquihashTests * changed header_size_is_expected to HeaderSizeIsExpected * changed test names from _ to CamelCase * changed block_test to BlockTests ------------------------------------------------------------------- Mon Feb 17 14:40:31 UTC 2020 - marec@detebe.org - Update to version 2.1.1.1: * Mark release v2.1.1-1 as critical. * Changes to release notes. * make-release.py: Updated release notes and changelog for 2.1.1-1. * make-release.py: Updated manpages for 2.1.1-1. * make-release.py: Versioning changes for 2.1.1-1. * Add string argument to static_asserts to satisfy C++11. * Fix ContextualCheckBlock test (the ban score should be 100 since these are mined transactions). * Apply a consistent ban policy within ContextualCheckTransaction * Release notes for vulnerability and -maxtimeadjustment option. * Add -maxtimeadjustment with default of 0 instead of the 4200 seconds used in Bitcoin Core. * Cosmetic: brace style in ContextualCheckBlockHeader. * Enable future timestamp soft fork at varying heights according to network. * test: Update RPC test cache generation to handle new consensus rule * Adjust the miner to satisfy consensus regarding future timestamps relative to median-time-past. * Soft fork: restrict block timestamps to be no more than 90 minutes after the MTP of the previous block. * Add constant for how far a block timestamp can be ahead of adjusted time. Loosely based on https://github.com/bitcoin/bitcoin/commit/e57a1fd8999800b3fc744d45bb96354cae294032 * Improve messages for timestamp rules. * Move check for block times that are too far ahead of adjusted time, to ContextualCheckBlock. ------------------------------------------------------------------- Fri Jan 24 18:14:25 UTC 2020 - marec@detebe.org - Update to version 2.1.1: * make-release.py: Updated release notes and changelog for 2.1.1. * make-release.py: Updated manpages for 2.1.1. * make-release.py: Versioning changes for 2.1.1. * make-release.py: Updated release notes and changelog for 2.1.1-rc2. * make-release.py: Updated manpages for 2.1.1-rc2. * make-release.py: Versioning changes for 2.1.1-rc2. * Update libsodium download-path * Fix broken proton build * Remove temporary workaround for deprecation height. * make-release.py: Updated release notes and changelog for 2.1.1-rc1. * make-release.py: Updated manpages for 2.1.1-rc1. * make-release.py: Versioning changes for 2.1.1-rc1. * Update proton from 0.26.0 to 0.30.0 * fix tests for enable-debug build * insightexplorer: LOCK(cs_main) during rpcs * Update _COPYRIGHT_YEAR in configure.ac to 2020 * Update COPYRIGHT_YEAR in clientversion.h to 2020 * Update of copyright year to 2020 * Use anonymous namespace instead of static functions * Mention removal of bare multisig IsMine in release notes * Do not treat bare multisig as IsMine * Track difference between scriptPubKey and P2SH execution in IsMine * Switch to a private version of SigVersion inside IsMine * Do not expose SigVersion argument to IsMine * Make CScript -> CScriptID conversion explicit * [script] Unit tests for IsMine * [script] Unit tests for script/standard functions * Stop treating importaddress'ed scripts as change * test: Rename wallet.dat to wallet_test.dat * wallet_ismine.h → script/ismine.h * test: Create test fixture for wallet * test: move accounting_tests and rpc_wallet_tests to wallet/test * [Wallet] refactor wallet/init interaction * [wallet] Move hardcoded file name out of log messages * [Wallet] optimize return value of InitLoadWallet() * [Wallet] move "load wallet phase" to CWallet * [Wallet] move wallet help string creation to CWallet * test: Update wallet RPC test with change to "absurdly high fee" limit * test: Add missing sync_all point * test: Reverse hashtx and hashblock ordering at start of ZMQ RPC test * test: Remove genesis-block Sapling activation from shorter_block_times * test: Add sync_all points after block generation to RPC tests * Extend comment with reason for taking care with locks * Tie sync_blocks in RPC tests to notifier thread * Move block-notifying logic into ThreadNotifyWallets * Merge tree and boolean fields in ChainTip API * Move mempool tx notifying logic out of CTxMemPool * ThreadNotifyRecentlyAdded -> ThreadNotifyWallets * Correct importaddress help reference to importpubkey * Make sure LogPrintf strings are line-terminated * [doc] Fix markdown * Fix doxygen comment for payTxFee * Common argument defaults for NODE_BLOOM stuff and -wallet * [doxygen] Actually display comment * mempool: Replace maxFeeRate of 10000*minRelayTxFee with maxTxFee * HelpMessage: Don't hide -mintxfee behind showDebug * rpcwallet: Clarify what settxfee does * contrib: Del. gitian downloader config and update gitian README * [trivial] init: Use defaults MIN_RELAY_TX_FEE & TRANSACTION_MAXFEE * transaction_tests: Be more strict checking dust * translations: Don't translate markdown or force English grammar * Clarify what minrelaytxfee does * [qt] Properly display required fee instead of minTxFee * Init: Use DEFAULT_TRANSACTION_MINFEE in help message * [wallet] Add comments for doxygen * [wallet] Refactor to use new MIN_CHANGE * [trivial] init cleanup * Update RPC generate help for numblocks to include required * Apply suggestions from code review * Add z_mergetoaddress to release notes * depends macOS: hide linker visibility warnings * Revert "depends: Explicitly set Boost toolchain during configuration" * depends: Manually apply build_env to second half of googletest build * configure: Don't require RELRO and BIND_NOW when cross-compiling darwin * depends: Add Rust targets for cross-compiling darwin * depends: Compile bdb with --disable-atomics when cross-compiling darwin * depends: switch to secure download of all dependencies * depends: tar: Always extract as yourself * depends: make osx output deterministic * depends: bump OSX toolchain * depends: qt/cctools: fix checksum checksum tests * Revert "Remove insecurely-downloaded dependencies that we don't currently use." * readd create_directories * Change "protect" terminology to "shield" * Remove template matching and pseudo opcodes * Assert CPubKey::ValidLength to the pubkey's header-relevent size * Comments: More comments on functions/globals in standard.h. * Accept any sequence of PUSHDATAs in OP_RETURN outputs * Add IsPushOnly(const_iterator pc) * Make TX_SCRIPTHASH clear vSolutionsRet first * Policy: MOVEONLY: 3 functions to policy.o: * Policy: MOVEONLY: Create policy/policy.h with some constants * pyflakes fixes * Match alerts both with and without comments * Wrap long line * cleanup: Comments * Parameterize zcash.conf in init error message * Add tests covering the current interaction of alerts with subver comments * Handle Equihash and optional miner code in TestChain100Setup * Fix benchmarks after removal of SelectParamsFromCommandLine() * Make connect=0 disable automatic outbound connections. * Globals: Decouple GetConfigFile and ReadConfigFile from global mapArgs * Added additional config option for multiple RPC users. * [qt] Move GUI related HelpMessage() part downstream * [trivial] Reuse translation and cleanup DEFAULT_* values * Bugfix: Omit wallet-related options from -help when wallet is not supported * Constrain constant values to a single location in code * Initialize experimental mode in a separate function * Initialize logging before we do parameter interaction * Refactor parameter interaction, call it before AppInit2() * Bugfix: Omit wallet-related options from -help when wallet is disabled * Bugfix: If genproclimit is omitted to RPC setgenerate, don't change it; also show correct default in getmininginfo * Bugfix: Describe dblogsize option correctly (it refers to the wallet database, not memory pool) * Bugfix: RPC: blockchain: Display correct defaults in help for verifychain method * Chainparams: Translations: DRY: options and error strings * Chainparams: Replace CBaseChainParams::Network enum with string constants (suggested by Wladimir) * Give a better error message if system clock is bad * doc: mention change to option parsing behavior in release notes * Fix argument parsing oddity with -noX * Unit test doublespends in new blocks * Update to stop random race error from assert * Update z_sendmany calls passing int 0, instead of Decimal('0') * Apply suggestions from code review * Update `import *` to unblock pyflakes from failing * Remove stale comment * remove dead code in init * Add check-depends step to STAGE_COMMANDS list * make proxy_test work on servers without ipv6 * Add Heartwood to upgrade list * Remove option mempooltxinputlimit * SQUASH "Implement watchonly support in fundrawtransaction" * SQUASH "Add have-pubkey distinction to ISMINE flags" * Implement watchonly support in fundrawtransaction * Add logic to track pubkeys as watch-only, not just scripts * Add have-pubkey distinction to ISMINE flags * Update importaddress help to push its use to script-only * Add importpubkey method to import a watch-only pubkey * Add p2sh option to importaddress to import redeemScripts * Split up importaddress into helper functions * Also remove pay-2-pubkey from watch when adding a priv key * [squashme] improve/corrects prune mode detection test for required wallet rescans * [RPC] disable import functions in pruned mode * [autoprune] allow wallet in pruned mode * Fix typo * Cast uint8* in InterruptibleRecv to char* for recv * get UPGRADE_TESTDUMMY back to default at the end of the test * Add fuzzing stub for CheckBlock * Add fuzzing stub for ReadFeeEstimates * Add fuzzing stub for AddrMan deserialization * remove zmergetoaddress from experimental state in rpc-tests * Remove invalid address comparison from gtest * Update team email * Cosmetic update to README.md . * remove redundant line from test * reverse conditional, replace get_value_or(0) calls * revert CCryptoKeyStore::SetCrypted() return value * eliminate races: hold cs_KeyStore lock while reading fUseCrypto * simplify locking, merge cs_SpendingKeyStore into cs_KeyStore * change var and function names for clarity, refactor function * add after blossom test * fix spacing * add NextUpgrade test case * create and use SecondsLeftToHeight to display next upgrade info * change target spacing to up to upgrade height * add next upgrade info to metrics console * add version to thank you string * Pass AFL input file path to zcashd * Have make clean delete fuzz.cpp * Separate AFL build, run fuzz stages, and add afl argument pass-through * remove z_mergetoaddress from experimental * limit blockchain progress to a max of 1.000000 * Show time elapsed when running RPC tests * Add all-in-one script for starting AFL fuzzing * change some wallet functions from bool to void * Add configure option to replace main with a stub for fuzzing * Add AFL instrumentation scripts to zcutil. * Consensus: Decouple pow.cpp from util.h * remove duplicated prefix in errors and warnings * Migrate to librustzcash 0.2.0 API * Upgrade librustzcash to 0.2.0 * Added basic fuzzing to the monolith, see ticket #4155 * Closes #3911. Fix help message of RPC getwalletinfo. ------------------------------------------------------------------- Sat Nov 09 13:24:55 UTC 2019 - marec@detebe.org - Update to version 2.1.0_1: * make-release.py: Updated release notes and changelog for 2.1.0-1. * make-release.py: Updated manpages for 2.1.0-1. * make-release.py: Versioning changes for 2.1.0-1. * Fix of CVE-2017-18350 ------------------------------------------------------------------- Tue Nov 05 19:34:05 UTC 2019 - marec@detebe.org - Update to version 2.1.0: * make-release.py: Updated release notes and changelog for 2.1.0. * make-release.py: Updated manpages for 2.1.0. * make-release.py: Versioning changes for 2.1.0. * fix comment * Fix getblocksubsidy tests * Fix wording * Set mainnet activation of Blossom * Better wording in release notes * Release notes for bug fix * #4175 z_sendmany coinbase to zaddr with change: report error status * make-release.py: Updated release notes and changelog for 2.1.0-rc1. * make-release.py: Updated manpages for 2.1.0-rc1. * make-release.py: Versioning changes for 2.1.0-rc1. * Use same type when calling max * Remove dots and underscores from parameter names * Fix test cases: default mempool limiters * Clarify the difference between cost and evictionWeight * Update parameter names to match ZIP * Wording and grammatical fixes * Add explanatory comments * minor rpc test clean up * Add test * Update release notes * depends macOS: point --sysroot to SDK * access array element using at() * update unit tests to compute empty roots * precompute empty merkle roots * Rename files * Represent recently evicted list as a deque * Log rather than return error if a transaction is recently evicted * Use tx cost rather than evictionWeight when checking mempool capacity * Rename variables for consistency * Fix comments * Represent tx costs as signed integers * mempool_limit rpc test cleanup * Move duplicate macro to reusable location * Prevent adding duplicate transactions * Put size increment and decrement on their own lines * Fix recently evicted list size * No need to activate Overwinter/Sapling in rpc test * Fix naming conventions * Performance: Store weighted transactions in a tree * Help message cleanup and add lock * Remove transactions when ensuring size limit * Grammatical fixes * Rebuild weighted list on removal and fix size calculation * DoS protection: Weighted random drop of txs if mempool full * Removed stale seeder, fixing #4153 * Fix setting an expiry height of 0. fixes #4132 * Test setting an expiry height of 0. * Update release notes with node abort behaviour * Add block hashes for Overwinter, Sapling, and testnet Blossom * Abort node if NU activations have unexpected hashes * Move AbortNode to the top of main.cpp * Wrap metrics message in strprintf * Display which network the node is running on. * doc: Move text prior to "This package provides..." * Add libsnark removal to notable changes * Stop fetching old Sprout parameters * Remove makeGrothProof argument from JoinSplit::prove * tests: Clean up use of repr() in mininode * Updating IPFS link for chunking * doc: Change Debian package description * depends: Add flag for building with a local librustzcash repo * depends: Helper for vendoring new crates * depends: Fix crate vendoring path * Remove copyright entry for libsnark. * Remove copyright entries for Autoconf macros that have been deleted. * rpc: Use Sapling transactions in zc_raw_joinsplit * test: Update RPC tests to use a minimum of Sapling * test: Add hashFinalSaplingProxy to create_block * test: Add Sapling v4 transactions to mininode framework * test: Require minimum of Sapling for all RPC tests * Remove libsnark unit tests from full test suite * Remove libgmp * Remove libsnark * Remove libsnark from build system * Revert "Check if OpenMP is available before using it" * Revert "configure: Guess -march for libsnark OPTFLAGS instead of hard-coding" * Remove pre-Sapling Sprout circuit * Remove libsnark code for pre-Sapling Sprout proofs * Revert "Allow user to ask server to save the Sprout R1CS out during startup." * Use Sapling JSDescriptions in gtests * Migrate test utilities to generate Sapling-type Sprout proofs * Remove non-Groth16 Sprout proofs from joinsplit gtests * Use Sapling JSDescriptions in Boost tests * Remove ability to create non-Groth16 Sprout JSDescriptions * Always skip verification for old Sprout proofs * insightexplorer: formatting, pyflakes cleanups * depends: Set PIC flags for FreeBSD * depends: Use project-config.jam to configure Boost instead of user-config.jam * depends: Explicitly call Rust install script using bash * depends: Add FreeBSD Rust binaries * depends: Patch libevent to detect arch4random_addrandom * depends: Add FreeBSD support to OpenSSL * depends: Explicitly set Boost toolchain during configuration * depends: Add FreeBSD to hosts and builders ------------------------------------------------------------------- Wed Sep 25 16:57:08 UTC 2019 - marec@detebe.org - Update to version 2.0.73: * Set Debian changelog urgency to critical. * make-release.py: Updated release notes and changelog for 2.0.7-3. * make-release.py: Updated manpages for 2.0.7-3. * make-release.py: Versioning changes for 2.0.7-3. * Make a note of the shorter service period in the release notes. * Add hotfix release notes. * Enable RPC tests to wait on mempool notifications * Move mempool SyncWithWallets call into its own thread * Ignore exceptions when deserializing note plaintexts * Remove cs_main lock requirement from CWallet::SyncTransaction * SetMerkleBranch: remove unused code, remove cs_main lock requirement * Disable -shrinkdebugfile command ------------------------------------------------------------------- Mon Sep 02 18:27:34 UTC 2019 - marec@detebe.org - Update to version 2.0.72: * make-release.py: Updated release notes and changelog for 2.0.7-2. * make-release.py: Updated manpages for 2.0.7-2. * make-release.py: Versioning changes for 2.0.7-2. * Notable changes for v2.0.7-2 ------------------------------------------------------------------- Fri Aug 30 18:43:20 UTC 2019 - marec@detebe.org - Update to version 2.0.71: * make-release.py: Updated release notes and changelog for 2.0.7-1. * make-release.py: Updated manpages for 2.0.7-1. * make-release.py: Versioning changes for 2.0.7-1. * Better wording in release notes * Add note about logging fix * fix typo * Notable changes for v2.0.7-1 * better fix: make GetSpentIndex() consistent with others... * Add intended rewind for Blossom on testnet. * #4114 don't call error() from GetSpentIndex() * Typo Fix * Update INSTALL ------------------------------------------------------------------- Thu Aug 22 17:51:37 UTC 2019 - marec@detebe.org - Update to version 2.0.7: * Update nMinimumChainWork * make-release.py: Updated release notes and changelog for 2.0.7. * make-release.py: Updated manpages for 2.0.7. * make-release.py: Versioning changes for 2.0.7. * Remove constant * Updated location to new download server, fixing #4100 * Grammatical fixes and improvements * Enable shorter block times rpc test * Notable changes for v2.0.7 * Set testnet Blossom activation height * Update download path * Add RPC test and test framework constants for Sapling->Blossom activation. * test: Fix AuthServiceProxy closed conn detection * Fixes 4097, improves caching on parameter downloads * Updated location to new download server * make-release.py: Updated release notes and changelog for 2.0.7-rc1. * make-release.py: Updated manpages for 2.0.7-rc1. * make-release.py: Versioning changes for 2.0.7-rc1. * insightexplorer fix LogPrintf * insightexplorer minor bug fixes * fix getblockdeltas documentation formatting * add timestampindex related RPC getblockhashes * add spentindex RPC for bitcore block explorer * Rename method and use int64_t * Do not estimate height if there is no best header * NPE defense in metrics screen * Add copyright info * Test clean up and fixes * Distinguish between height and current header height on metrics screen * Algebraic improvements related to halving * Remove DefaultExpiryDelta method * Update PoW related assertions * Clarify documentation * Make sure that expiry height is not less than height * Fix/update comments * Do not add expiring soon threshold to expiry height of txs near NU activation * Fix parsing txexpirydelta argument * Make sure to deactivate blossom in test case * Fix check transaction tests * Improve EstimateNetHeight calculation * Add comments and fix typos * Extract Halvings method and add tests * Make founders reward tests pass before and after Blossom activation height is set * Use pre-Blossom max FR height when calculating address change interval * Update main_tests for shorter block times * Fix integer truncation in Blossom halving calculation * Do not send migration transactions that would expire after a network upgrade * Do not create transactions that will expire after the next epoch * test: Fix pyflakes warnings * test: Fix permissions on wallet_changeaddresses RPC test * Update metrics block height estimation for shorter block times * Add test for Blossom default tx expiry delta * PartitionCheck tests for shorter block times * add addressindex related RPCs * Release process doc: mention the commit message. * Release process doc: add step to set the gpg key id. * Use reserve key for transparent change when sending to Sprout * test: Check for change t-addr reuse in z_sendmany * Fix zip208 founders reward calculation and update test * Update expiry height for shorter block times * Add message to static_assert * pow test cleanup * Add missing new line at end of file * Use static_assert * Simplify PartitionCheck * Temporarily disable test * Make NetworkUpgradeAvailable a method of Params * Update block subsidy halving for zip208 * Update test_pow for shorter block times * Update pow_tests for shorter block times * Shorter block times rpc test * Apply suggestions from code review * Clean up and fix typo * Link to ticket #2827 using URL * Fix RPC undefined behavior. * Fix nondeterministic failure in sapling migration test * Make nextHeight required in CalculateNextWorkRequired * qa/zcash/checksec.sh is under a BSD license, with a specialized non-endorsement clause. * Replace http with https: in links to the MIT license. Also change MIT/X11 to just MIT, since no distinction was intended. * Update contrib/debian/copyright for ax_boost_thread.m4 * Add license information for Autoconf macros. refs #2827 * Update copyright information for Zcash, leveldb, and libsnark. * Trivial: build-aux/m4/l_atomic: Fix typo * Add MIT license to build-aux/m4/bitcoin_* scripts, and a permissive license to build-aux/m4/l_atomic.m4 . * Add MIT license to autogen.sh and share/genbuild.sh * Add MIT license to Makefiles * Modify PartitionCheck to be aware of pre & post Blossom target spacing. * Replace nPoWTargetSpacing -> PoWTargetSpacing() in tests * Replace nPoWTargetSpacing -> PoWTargetSpacing() in ProcessMessage() * Update GetBlockTimeout() to take height parameter. * Update PoW function calls to pass in height. * Replace nPoWTargetSpacing -> PoWTargetSpacing() * Remove use of redundant member nPowTargetSpacing. * Redefine PoW functions to accept height parameter. * Rename FindWalletTx to FindWalletTxToZap * Rename joinsplit to shielded * Fix naming inconsistency * Rename vjoinsplit to vJoinSplit * Fix comment in mergetoaddress RPC test * Link to development guidelines in CONTRIBUTING.md * Use reserve key for transparent change when sending to Sapling * Allow passing optional reserve key as a parameter to SendTransaction * Inline sign_send_raw_transaction * Do not shadow the return value when testmode is true * Move reused sign and send logic * Move reused async rpc send logic to separate file * Use CommitTransaction() rather than sendrawtransaction() * Update README.md * Handful of copyedits to README.md ------------------------------------------------------------------- Mon Jul 01 19:30:58 UTC 2019 - marec@detebe.org - Update to version 2.0.6: * make-release.py: Updated release notes and changelog for 2.0.6. * make-release.py: Updated manpages for 2.0.6. * make-release.py: Versioning changes for 2.0.6. * Add coding declaration to zcutil/release-notes.py * Tweak author aliases. * Notable changes for 2.0.6 * ld --version doesn't work on macOS. * Fixes issue #3504: Changes to --version and adds a couple other useful commands. * Add stretch to list of suites in gitian linux descriptors * make-release.py: Updated release notes and changelog for 2.0.6-rc1. * make-release.py: Updated manpages for 2.0.6-rc1. * make-release.py: Versioning changes for 2.0.6-rc1. * add spentindex to getrawtransaction RPC results * Closes #3992. Remove obsolete warning message. * Clarify what combinations of from addresses can be used in z_mergetoaddress * Fix z_mergetoaddress sending from ANY_SPROUT/ANY_SAPLING when the wallet contains both note types * z_getmigrationstatus help message wording change * Globals: Explicitly pass const CChainParams& to ReceivedBlockTransactions() * Globals: Explicitly pass const CChainParams& to IsInitialBlockDownload() * Consistently use chainparams and consensusParams * Globals: Explicitly pass const CChainParams& to DisconnectBlock() * Globals: Explicit const CChainParams& arg for main: * Globals: Explicitly pass const CChainParams& to ContextualCheckTransaction() * Globals: Explicit const CChainParams& arg for main: * Globals: Explicitly pass const CChainParams& to IsStandardTx() * Globals: Remove Zcash-specific Params() calls from main.cpp * Break circular dependency main ↔ txdb * Explicitly pass CChainParams to ConnectBlock * Pass CChainParams to DisconnectTip() * Globals: Explicitly pass const CChainParams& to UpdateTip() * [doc] Fix doxygen comments for members * Improve block validity/ConnectBlock() comments * Globals: Remove a bunch of Params() calls from main.cpp: * Chainparams: Explicit CChainParams arg for miner: * Chainparams: Explicit CChainParams arg for main (pre miner): * Globals: Make AcceptBlockHeader static (Fix #6163) * Globals: Explicit Consensus::Params arg for main: * Move Equihash parameters into consensus params * Add some const declarations where they are appropriate. * Replace CSproutNotePlaintextEntry with SproutNoteEntry to match Sapling * Remove old mergetoaddress RPC test * Update author aliases * Fix typo and clean up help message for RPC z_getmigrationstatus. * Fixes #4013, added BitcoinABC as a disclosure partner * Fix tree depth in comment ------------------------------------------------------------------- Thu May 16 14:50:11 UTC 2019 - marec@detebe.org - Update to version 2.0.52: * Update ZIP reference * make-release.py: Updated release notes and changelog for 2.0.5-2. * make-release.py: Updated manpages for 2.0.5-2. * make-release.py: Versioning changes for 2.0.5-2. * Release notes wording and punctuation * Notable changes for v2.0.5-2 * Fix LogPrint statements * Add logging for Sprout to Sapling migration transaction generation * Do not automatically remove async migration operations and return txids * Fix cosmetic spacing issue in z_setmigration help. * Test the expiry height of migration transactions. * Change expiry delta for migration transactions to 450 blocks. * Repair calls to TransactionBuilder from tests. * Generalize TransactionBuilder and CreateNewContextualCMutableTransaction to allow choosing the expiry delta. * Don't allow migration when node is syncing at launch or after waking up. * Remove unused specifier from format string. ------------------------------------------------------------------- Wed May 08 19:38:05 UTC 2019 - marec@detebe.org - Update to version 2.0.51: * make-release.py: Updated release notes and changelog for 2.0.5-1. * make-release.py: Updated manpages for 2.0.5-1. * make-release.py: Versioning changes for 2.0.5-1. * coinsView is required when using TransactionBuilder if there may be Sprout change * Add the amount migrated to the operation's result * Fix summing available funds * Notable changes for v2.0.5-1 * Rename variable and add comment * Store the migration operation id rather than the operation iteslf * Correctly account for migration transactions in the mempool ------------------------------------------------------------------- Sat May 04 17:49:29 UTC 2019 - marec@detebe.org - Update to version 2.0.5: * make-release.py: Updated release notes and changelog for 2.0.5. * make-release.py: Updated manpages for 2.0.5. * make-release.py: Versioning changes for 2.0.5. * Add missing word to release notes * Notable changes for v2.0.5 * Update chain work and checkpoint using block 525000. * add curl to package list for gitian lxc container * make-release.py: Updated release notes and changelog for 2.0.5-rc1. * make-release.py: Updated manpages for 2.0.5-rc1. * make-release.py: Versioning changes for 2.0.5-rc1. * 3873 z_setmigration cli bool enable arg conversion * Do not throw an exception if HD Seed is not found when exporting wallet * Calculate the number of confimations in the canonical way * Do not look at vin/vout when determining migration txs and other cleanup * use -valueBalance rather than vpub_new to calculate migrated amount * Fix typos and update documentation * Test migration using both the parameter and the default Sapling address * Fix help message * Add rpc to get Sprout to Sapling migration status * Create method for getting HD seed in RPCs * remove extra hyphen * Add migration options to conf file * Check for full failure message in test case * add -timestampindex for bitcore insight block explorer * Set min depth when selecting notes to migrate * Refactor wait_and_assert_operationid_status to allow returning the result * Additional locking and race condition prevention * Documentation cleanup * Move migration logic to ChainTip * Add rpc to enable and disable Sprout to Sapling migration * Enable experimental feature -developersetpoolsizezero on mainnet. * Enable ZIP209 on mainnet and set fallback Sprout pool balance. * Add qa test for experimental feature: -developersetpoolsizezero * Update boost from v1.69.0 to v1.70.0. #3947 * add -spentindex changes for bitcore insight block explorer * Add testnet and regtest experimental feature: -developersetpoolsizezero * Adding addressindex.h to Makefile.am * Creates checklist template for new PRs being opened and addresses Str4d's suggestion for using GitHub handles * init: Fix new HD seed generation for previously-encrypted wallets * Add Blossom to upgrade list * tests: adds unit test for IsPayToPublicKeyHash method * add -addressindex changes for bitcore insight block explorer * fix enable-debug build DB_COINS undefined * Update _COPYRIGHT_YEAR in configure.ac to 2019 * Minor speling changes * Electric Coin Company * Rename and update comment * configure: Guess -march for libsnark OPTFLAGS instead of hard-coding * depends: Update .gitignore * depends: Compile bdb with --disable-atomics on aarch64 * depends: Add rust-std hash for aarch64-unknown-linux-gnu * depends: Generalise the rust package cross-compilation functions * depends: Use full path to cargo binary * Use a custom error type if creating joinsplit descriptions fails * Split test in to multiple parts * Add Sprout support to TransactionBuilder ------------------------------------------------------------------- Wed Mar 27 10:12:15 UTC 2019 - marec@detebe.org - Update to version 2.0.4: * Update company name. * make-release.py: Updated release notes and changelog for 2.0.4. * make-release.py: Updated manpages for 2.0.4. * make-release.py: Versioning changes for 2.0.4. * Patch out proton::url deprecation as workaround for build warnings * Fix OpenSSL reproducible build regression * Fix proton patch regression. #3916 * Fix typo in release notes. * make-release.py: Updated release notes and changelog for 2.0.4-rc1. * make-release.py: Updated manpages for 2.0.4-rc1. * make-release.py: Versioning changes for 2.0.4-rc1. * Update release notes for 2.0.4 * (wallet) Check that the commitment matches the note plaintext provided by the sender. * (minor) Remove added newline. * Do not enable ZIP209 on regtest right now. * Update COPYRIGHT_YEAR in clientversion.h to 2019 * Only enforce Sapling turnstile if balance values have been populated. * Change SproutValuePoolCheckpointEnabled to ZIP209Activated * Added responsible disclosure statement for issue #3869 * Added documentation warnings about DNS rebinding attacks, issue #3841 * Check blockhash of fallback block for Sprout value pool balance * Add newlines to turntile log messages for miner * Use existing chainparams variable * Consolidate logic to enable turnstile auditing for testnet/regtest/mainnet. * Fix tallying for Sprout/Sapling value pools. * Add checkpoint for block 497000. * Update nMinimumChainWork using block 497000. * (testnet/regtest) Avoid mining transactions that would violate the turnstile. * (testnet) Reject blocks that result in turnstile violations * (testnet) Fall back to hardcoded shielded pool balance to avoid reorgs. * Move payment disclosure code and tests into wallet * Move utiltest.cpp from wallet to common * Add comments * test: Make expected_utxos optional in get_coinbase_address() * test: Fetch coinbase address from coinbase UTXOs * miner: rename UpdateRequestCount signal to ResetRequestCount * add CReserveScript to allow modular script keeping/returning * fix GetScriptForMining() CReserveKey::keepKey() issue * detach wallet from miner * Simplify DisconnectBlock arguments/return value * Correcting logo on README * Add missing author aliases * Add Sapling benchmarks to benchmark runner * Update of copyright year to 2019 * Patch Proton for a minimal build. #3786 * Update Proton from 0.17.0 to 0.26.0. #3816, #3786 * Update Rust from v1.28.0 to v1.32.0. #3786 * Update boost from v1.66.0 to v1.69.0. #3786 * Update OpenSSL from 1.1.0h to 1.1.1a. #3786 * redirect and update source documentation * Improve some error messages when building a transaction fails * Renaming and other minor cleanup * Change to t->z transaction and create separate benchmark for sapling * Add a method for generating a test CKey * FakeCoinsViewDB can inherit directly from CCoinsView * benchmarks do not require updating network parameters * Prevent header from being included multiple times * Include Sapling transactions in increment note witness benchmark * Add test method for generating master Sapling extended spending keys * Move test SaplingNote creation to utiltest * Move reusable Sapling test setup to utiltest * Add benchmark for decrypting sapling notes * Rename methods to include Sprout * Add size_on_disk test * Backport size_on_disk to RPC call getblockchaininfo. ------------------------------------------------------------------- Tue Feb 12 19:07:10 UTC 2019 - marec@detebe.org - Update to version 2.0.3: * make-release.py: Updated release notes and changelog for 2.0.3. * make-release.py: Updated manpages for 2.0.3. * make-release.py: Versioning changes for 2.0.3. * Update nMinimumChainWork with information from the getblockchaininfo RPC * make-release.py: Updated release notes and changelog for 2.0.3-rc1. * make-release.py: Updated manpages for 2.0.3-rc1. * make-release.py: Versioning changes for 2.0.3-rc1. * throw an exception rather than returning false when building invalid transactions * Return more information when building a transaction fails * Update zmq to 4.3.1 * zmq: remove extraneous space from zmq_sub.py * zmq: add flag to publish all checked blocks ------------------------------------------------------------------- Sun Dec 2 17:13:51 UTC 2018 - marec@detebe.org - Update to version 2.0.2: * Add Charlie and Ariel alias to author_aliases * Update nnMinimumChainWork per 2.0.2 getblockchaininfo * make-release.py: Updated release notes and changelog for 2.0.2. * make-release.py: Updated manpages for 2.0.2. * make-release.py: Versioning changes for 2.0.2. * remove non-ascii characters from help text * make-release.py: Updated release notes and changelog for 2.0.2-rc1. * make-release.py: Updated manpages for 2.0.2-rc1. * make-release.py: Versioning changes for 2.0.2-rc1. ------------------------------------------------------------------- Mon Oct 15 07:39:17 UTC 2018 - marec@detebe.org - Update to version 2.0.1: * make-release.py: Updated release notes and changelog for 2.0.1. * make-release.py: Updated manpages for 2.0.1. * make-release.py: Versioning changes for 2.0.1. * Update release-notes.md for clarity. * Update release notes for v2.0.1 * Update mainnet checkpoint for block 410100. * For #3359. Return error if Sapling addresses passed to RPC z_mergetoaddress. * For #3359. RPCs transferring funds return error if Sapling addresses are used before Sapling activation. ------------------------------------------------------------------- Mon Aug 27 12:52:28 UTC 2018 - marec@detebe.org - Update to version 2.0.0: * make-release.py: Updated release notes and changelog for 2.0.0. * make-release.py: Updated manpages for 2.0.0. * make-release.py: Versioning changes for 2.0.0. * Sapling mainnet activation height * Always write the empty root down as the best root, since we may roll back. * Disable Sapling features on mainnet * test: Use regtest in key_tests/zs_address_test * test: gtest for Sapling encoding and decoding * make-release.py: Updated release notes and changelog for 2.0.0-rc1. * make-release.py: Updated manpages for 2.0.0-rc1. ------------------------------------------------------------------- Mon Jul 2 18:07:11 UTC 2018 - marec@detebe.org - Update to version 1.1.2: * make-release.py: Updated release notes and changelog for 1.1.2. * make-release.py: Updated manpages for 1.1.2. * make-release.py: Versioning changes for 1.1.2. * make-release.py: Updated release notes and changelog for 1.1.2-rc1. * make-release.py: Updated manpages for 1.1.2-rc1. * make-release.py: Versioning changes for 1.1.2-rc1. * Fix pyflakes error in test zkey_import_export. * Closes #3328. Send alert to put non-Overwinter nodes into safe mode. * (rpc-test) accurately account for fee without rounding error ------------------------------------------------------------------- Fri May 25 17:10:19 UTC 2018 - marec@detebe.org - Update to version 1.1.1: * Update release height to block 332000. * Sapling testnet activation height * make-release.py: Updated release notes and changelog for 1.1.1. * make-release.py: Updated manpages for 1.1.1. * make-release.py: Versioning changes for 1.1.1. * Closes #3301. Non-void function should not have empty definition. * make-release.py: Updated release notes and changelog for 1.1.1-rc2. * make-release.py: Updated manpages for 1.1.1-rc2. * make-release.py: Versioning changes for 1.1.1-rc2. * Comment out Gitian library handling while we don't build any libraries ------------------------------------------------------------------- Fri Apr 13 10:54:01 UTC 2018 - marec@detebe.org - Update to version 1.1.0: * When rewinding, reset pindexBestInvalid if it is pointing to a removed block * Overwinter mainnet activation height * make-release.py: Updated release notes and changelog for 1.1.0. * make-release.py: Updated manpages for 1.1.0. * make-release.py: Versioning changes for 1.1.0. * Set Overwinter protocol version to 170005 * Fix test to check for sanitized string from alertnotify. * make-release.py: Updated release notes and changelog for 1.1.0-rc1. ------------------------------------------------------------------- Thu Mar 1 19:44:29 UTC 2018 - marec@detebe.org - Update to version 1.0.15: * make-release.py: Updated release notes and changelog for 1.0.15. * make-release.py: Updated manpages for 1.0.15. * make-release.py: Versioning changes for 1.0.15. * Overwinter release notes and testnet activation height * Use block hash comparison for consistency check when loading block index * make-release.py: Updated release notes and changelog for 1.0.15-rc1. * make-release.py: Updated manpages for 1.0.15-rc1. * make-release.py: Versioning changes for 1.0.15-rc1. * Change rpc_tests to 21 * Add python qa test overwinter_peer_management. * Overwinter peer management and network handshaking. * Add field nProtocolVersion to struct NetworkUpgrade. ------------------------------------------------------------------- Sat Jan 6 15:14:13 UTC 2018 - marec@detebe.org - Update to version 1.0.14: * make-release.py: Updated release notes and changelog for 1.0.14. * make-release.py: Updated manpages for 1.0.14. * make-release.py: Versioning changes for 1.0.14. * Update release process * make-release.py: Updated release notes and changelog for 1.0.14-rc1. * make-release.py: Updated manpages for 1.0.14-rc1. * make-release.py: Versioning changes for 1.0.14-rc1. * Fix pyflakes warnings in zkey_import_export RPC test * Exclude beta and RC release notes from author tallies * Regenerate previous release notes to conform to new format ------------------------------------------------------------------- Tue Nov 21 18:33:56 UTC 2017 - marec@detebe.org - Update to version 1.0.13: * make-release.py: Updated release notes and changelog for 1.0.13. * make-release.py: Updated manpages for 1.0.13. * make-release.py: Versioning changes for 1.0.13. * make-release.py: Updated release notes and changelog for 1.0.13-rc2. * make-release.py: Updated manpages for 1.0.13-rc2. * make-release.py: Versioning changes for 1.0.13-rc2. * Add the tar-pax option to automake * Mark libsnark includes as library includes * Pass correct dependencies path to libsnark from both Gitian and build.sh * Move libsnark from DIST_SUBDIRS into EXTRA_DIST ------------------------------------------------------------------- Thu Sep 28 16:14:24 UTC 2017 - marec@detebe.org - Update to version 1.0.12: * make-release.py: Updated release notes and changelog for 1.0.12. * make-release.py: Updated manpages for 1.0.12. * make-release.py: Versioning changes for 1.0.12. * Fix incorrect failure in memory benchmark * Individualise performance-measurements.sh errors for debugging * Closes #2637. Make z_shieldcoinbase an experimental feature where it can be enabled with: zcashd -experimentalfeatures -zshieldcoinbase. * Fix pyflakes warnings in RPC tests * Update which lock to synchronize on when calling GetBestAnchor(). * make-release.py: Updated release notes and changelog for 1.0.12-rc1. ------------------------------------------------------------------- Thu Aug 24 19:01:06 UTC 2017 - marec@detebe.org - Update to version 1.0.11: * make-release.py: Updated release notes and changelog for 1.0.11. * make-release.py: Updated manpages for 1.0.11. * make-release.py: Versioning changes for 1.0.11. * make-release.py: Updated release notes and changelog for 1.0.11-rc1. * make-release.py: Updated manpages for 1.0.11-rc1. * make-release.py: Versioning changes for 1.0.11-rc1. * Improve network height estimation * Correct and extend EstimateNetHeightInner tests * Document our criteria for adding CI workers. closes #2499 * Add pyflakes to required Python modules * Add a separate Buildbot host info template for EC2 * Remove Buildbot version from host file * Add pyblake2 to required Python modules * Add steps for setting up a latent worker on Amazon EC2 * Add Buildbot worker setup to Ansible playbook * Fixes #2480. Null entry in map was dereferenced leading to a segfault. * Change wording in Security Warnings section of README.md. * rpc: Add WWW-Authenticate header to 401 response * Add test for issue #2444 * Fixes #2519. When sending from a zaddr, minconf cannot be zero. * Closes #2446 by adding generated field to listunspent. * Simplify Python installation, inform user if they need to manually configure * Variable overrides for FreeBSD * Variable overrides for Debian, Ubuntu and Fedora * Ansible playbook for installing Zcash dependencies and Buildbot worker * Remove UPnP support. fixes #2500 * Pull in temporary release notes during the release process * Alert 1004 (version 1.0.10 only) * Net: Fix resource leak in ReadBinaryFile(...) * Cosmetics (trailing whitespace, comment conventions, etc.) * For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450 * Clean up imports to be pyflakes-checkable. fixes #2450 ------------------------------------------------------------------- Sat Jun 24 11:34:26 UTC 2017 - marec@detebe.org - Update to version 1.0.101: * make-release.py: Updated release notes and changelog for 1.0.10-1. * make-release.py: Updated manpages for 1.0.10-1. * make-release.py: Versioning changes for 1.0.10-1. * Revert "Delete old protocol version constants and simplify code that used them." * Revert "Remove an unneeded version workaround as per @str4d's review comment." * Disable building Proton in Gitian * Move temporary release notes to final ones * make-release.py: Updated release notes and changelog for 1.0.10. * make-release.py: Updated manpages for 1.0.10. ------------------------------------------------------------------- Thu Jun 22 16:04:56 UTC 2017 - marec@detebe.org - Update to version 1.0.10: * make-release.py: Updated release notes and changelog for 1.0.10-1. * make-release.py: Updated manpages for 1.0.10-1. * make-release.py: Versioning changes for 1.0.10-1. * Revert "Delete old protocol version constants and simplify code that used them." * Revert "Remove an unneeded version workaround as per @str4d's review comment." * Disable building Proton in Gitian * Move temporary release notes to final ones * make-release.py: Updated release notes and changelog for 1.0.10. * make-release.py: Updated manpages for 1.0.10. ------------------------------------------------------------------- Thu May 25 06:03:02 UTC 2017 - marec@detebe.org - Update to version 1.0.9: * make-release.py: Updated release notes and changelog for 1.0.9. * make-release.py: Updated manpages for 1.0.9. * make-release.py: Versioning changes for 1.0.9. * Clarify that the feature is automated *shutdown*. * Define the deprecation policy for 1.0.9. * Check that pairings work properly when the G1 point is at infinity. * Add a few more version strings to positive parser test. * Do not use `-rpcwait` on all `zcash_rpc` invocations, only block when starting zcashd. * Reuse zcash_rpc. * Fix a variable name typo. * Enable set -u mode. * Remove additional sources of determinism from benchmark archive * Replace bitcoind with zcashd * Patch to build Proton with minimal dependencies. ------------------------------------------------------------------- Fri Apr 14 08:29:47 UTC 2017 - marec@detebe.org - Update to version 1.0.81: * [Direct master commit] Fix a release snafu in debian version string. * Fix the previous incorrect fix to the manpage. * Undo a documentation error due to an automated tool. * Fix a release-process.md bug; commit results changelog + debian updates. * Commit the changes from gen-manpages.sh, except manually tweak the version strings. * Bump version numbers for v1.0.8-1. * Add check for JoinSplit priority as calculated by CCoinsViewCache::GetPriority. * Simplify JoinSplit priority calculation. refs 1896 * Add unit test for security issue 2017-04-11.a * Use a larger -rpcclienttimeout for slow performance measurements ------------------------------------------------------------------- Tue Mar 28 18:39:48 UTC 2017 - marec@detebe.org - Update to version 1.0.8: * [Direct master commit] Fix a release snafu in debian version string. * Fix the previous incorrect fix to the manpage. * Undo a documentation error due to an automated tool. * Fix a release-process.md bug; commit results changelog + debian updates. * Commit the changes from gen-manpages.sh, except manually tweak the version strings. * Bump version numbers for v1.0.8-1. * Add check for JoinSplit priority as calculated by CCoinsViewCache::GetPriority. * Simplify JoinSplit priority calculation. refs 1896 * Add unit test for security issue 2017-04-11.a * Use a larger -rpcclienttimeout for slow performance measurements ------------------------------------------------------------------- Thu Mar 9 20:39:16 UTC 2017 - marec@detebe.org - Update to version 1.0.71: * Update debian package changelog for 1.0.7+1 (use + instead of - for debian versioning) * Add updated release notes for v1.0.7-1 * Update auto-generated manpages to 1.0.7-1 * Update version to 1.0.7-1 * Add -t to git fetch for release-notes.py * Update README for 1.0.7 release * Update debian changelog for 1.0.7 release process * Add 1.0.7 release notes and update authors.md * Update release to 1.0.7, generate manpages * Fix typo in listbanned RPC keys * Update default RPC port in help strings * BTC -> ZEC in paytxfee RPC docs * Re-encode t-addrs in disablewallet.py with Zcash prefixes * Adjust fundrawtransaction RPC test for Zcash * Fix crash in validateaddress with -disablewallet * [QA] add testcases for parsing strings as values * rpc: Accept strings in AmountFromValue * univalue: Avoid unnecessary roundtrip through double for numbers * Exempt unspendable transaction outputs from dust checks * rpc: Remove chain-specific RequireRPCPassword * [QA] remove rawtransactions.py from the extended test list * [QA] fix possible reorg issue in rawtransaction.py/fundrawtransaction.py RPC test * [REST] add JSON support for /rest/headers/ * When processing RPC commands during warmup phase, parse the request object before returning an error so that id value can be used in the response. * Adjust blockheaderToJSON() for Zcash block header * Add getblockheader RPC call * add tests for the decodescript rpc. add mention of the rpc regression tests to the testing seciton of the main readme. * test: Move reindex test to standard tests * UniValue: don't escape solidus, keep espacing of reverse solidus * fundrawtransaction tests * Add fundrawtransaction RPC method * Add FundTransaction method to wallet * Small tweaks to CCoinControl for fundrawtransaction * Add DummySignatureCreator which just creates zeroed sigs * Return all available information via validateaddress * rpc: make `gettxoutsettinfo` run lock-free * fix lock issue for QT node diconnect and RPC disconnectnode * setban: add IPv6 tests * fix missing lock in CNode::ClearBanned() * add RPC tests for setban & disconnectnode * setban: add RPCErrorCode * fix CSubNet comparison operator * setban: rewrite to UniValue, allow absolute bantime * rename json field "bannedtill" to "banned_until" * [RPC] extend setban to allow subnets * [net] remove unused return type bool from CNode::Ban() * [QA] add setban/listbanned/clearbanned tests * [RPC] add setban/listbanned/clearbanned RPC commands * [net] extend core functionallity for ban/unban/listban * New RPC command disconnectnode * Add paytxfee to getwalletinfo, warnings to getnetworkinfo * Fix univalue handling of \u0000 characters. ------------------------------------------------------------------- Sat Mar 4 11:00:00 UTC 2017 - marec@detebe.org - Update to version 1.0.7: * Update debian package changelog for 1.0.7+1 (use + instead of - for debian versioning) * Add updated release notes for v1.0.7-1 * Update auto-generated manpages to 1.0.7-1 * Update version to 1.0.7-1 * Add -t to git fetch for release-notes.py * Update README for 1.0.7 release * Update debian changelog for 1.0.7 release process * Add 1.0.7 release notes and update authors.md * Update release to 1.0.7, generate manpages * Fix typo in listbanned RPC keys * Update default RPC port in help strings * BTC -> ZEC in paytxfee RPC docs * Re-encode t-addrs in disablewallet.py with Zcash prefixes * Adjust fundrawtransaction RPC test for Zcash * Fix crash in validateaddress with -disablewallet * [QA] add testcases for parsing strings as values * rpc: Accept strings in AmountFromValue * univalue: Avoid unnecessary roundtrip through double for numbers * Exempt unspendable transaction outputs from dust checks * rpc: Remove chain-specific RequireRPCPassword * [QA] remove rawtransactions.py from the extended test list * [QA] fix possible reorg issue in rawtransaction.py/fundrawtransaction.py RPC test * [REST] add JSON support for /rest/headers/ * When processing RPC commands during warmup phase, parse the request object before returning an error so that id value can be used in the response. * Adjust blockheaderToJSON() for Zcash block header * Add getblockheader RPC call * add tests for the decodescript rpc. add mention of the rpc regression tests to the testing seciton of the main readme. * test: Move reindex test to standard tests * UniValue: don't escape solidus, keep espacing of reverse solidus * fundrawtransaction tests * Add fundrawtransaction RPC method * Add FundTransaction method to wallet * Small tweaks to CCoinControl for fundrawtransaction * Add DummySignatureCreator which just creates zeroed sigs * Return all available information via validateaddress * rpc: make `gettxoutsettinfo` run lock-free * fix lock issue for QT node diconnect and RPC disconnectnode * setban: add IPv6 tests * fix missing lock in CNode::ClearBanned() * add RPC tests for setban & disconnectnode * setban: add RPCErrorCode * fix CSubNet comparison operator * setban: rewrite to UniValue, allow absolute bantime * rename json field "bannedtill" to "banned_until" * [RPC] extend setban to allow subnets * [net] remove unused return type bool from CNode::Ban() * [QA] add setban/listbanned/clearbanned tests * [RPC] add setban/listbanned/clearbanned RPC commands * [net] extend core functionallity for ban/unban/listban * New RPC command disconnectnode * Add paytxfee to getwalletinfo, warnings to getnetworkinfo * Fix univalue handling of \u0000 characters. ------------------------------------------------------------------- Sun Feb 12 18:15:14 UTC 2017 - marec@detebe.org - Update to version 1.0.6: * Add release notes generated by script as part of release process * Fix debian manpage manually as part of release process * Fix manpage as part of release process. * Update authors.md using fixed release-notes.py, as part of release process. * Fix bug in release process tool: bad regex in zcutil/release-notes.py. * Update debian changelog as part of release process * Update release notes as part of release process * Debian man pages updated as part of release process * Bump version to 1.0.6 as part of release process * Address @str4d's comment about the case where -gen is not set. Also avoid shadowing mineToLocalWallet variable. ------------------------------------------------------------------- Fri Jan 20 16:35:21 UTC 2017 - marec@detebe.org - Update to version 1.0.5: * Update release notes and Debian package. * Bump version to 1.0.5. * Add test for z_importkey rescanning from beginning of chain. * Increase timeout for z_sendmany transaction in wallet.py qa test * Add missing header required by std::accumulate * Coverage build system tweaks * Create empty zcash.conf during coverage checks * Create empty zcash.conf during performance measurements * Generate Debian control file to fix shlibs lint * Debian package lint * Fixes #1960: z_getoperationstatus/result now includes operation details. * Fix gtest ordering broken by #1949 * Closes #1957 by adding tx serialization size to listtransactions output. * Closes #1097 so zcash-cli now displays license info like zcashd. * Remove UTF-8 BOM efbbbf from zcash.conf to avoid problems with command line tools * move template to subdirectory, fix typo, include prompt under describing issue section, include uploading file directly to github ticket as option for sharing logs * Create ISSUE_TEMPLATE.md * Closes #1780. Result of z_getoperationstatus now sorted by creation time of operation * Show a friendly message explaining why zcashd needs a zcash.conf * Throw an error if zcash.conf is missing * Bump COPYRIGHT_YEAR from 2016 to 2017. * Rename build-aux/m4/bitcoin_find_bdb48.m4 to remove version * rpc: Implement random-cookie based authentication * CreateJoinSplit: add start_profiling() call * Update debug categories * Suggest ./zcutil/fetch-params.sh as well * Handle newlines in UI messages * Add 'CreateJoinSplit' standalone utility to gitignore. * Strip out the SECURE flag in metrics UI so message style is detected * Trigger metrics UI refresh on new messages * Fixes a bug where the unsigned transaction was logged by z_sendmany after a successful sign and send, meaning that the logged hash fragment would be different from the txid logged by "AddToWallet". This issue occured when sending from transparent addresses, as utxo inputs must be signed. It did not occur when sending from shielded addresses. * Instruct users to run zcash-fetch-params if network params aren't available * Scan the whole chain whenever a z-key is imported * Fixes #1967 by adding age of note to z_sendmany logging. * Fixes #1964 to catch general exception in z_sendmany and catch exceptions as reference-to-const. * Exclude test binaries from make install * Only run wallet tests when wallet is enabled * Only enable getblocktemplate when wallet is enabled * Extend createjoinsplit to benchmark parallel JoinSplits * Update release process to check in with users who opened resolved issues ------------------------------------------------------------------- Fri Dec 16 14:55:56 UTC 2016 - marec@detebe.org - Update to version 1.0.4: * Release notes, authors, changelog * Update man pages * Update version to 1.0.4 * Update payment API docs to recommend -rescan for fixing witness errors * Fix bug in IncrementNoteWitness() * Rewrite reindex test to check beyond the max witness cache size * Extract block-generation wallet test code into a function * Check that E' points are actually in G2 by ensuring they are of order r. * Skip JoinSplit verification before the last checkpoint ------------------------------------------------------------------- Thu Oct 27 18:53:22 UTC 2016 - marec@detebe.org - initial package build
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor