Commit Graph

16358 Commits

Author SHA1 Message Date
Jack Grigg b3b5429956 wallet: Add assertions during Orchard wallet bundle appends
`Wallet::append_bundle_commitments` should never be called twice on the
same bundle, as that breaks sequentiality requirements (which we already
check for), so it is safe to assert that the inserted values do not
overwrite any existing data.
2022-04-05 18:19:20 +00:00
Jack Grigg 838f1cccec Add trace-level logging to the Orchard wallet
This can be enabled with `zcash-cli setlogfilter trace` (or a more
specific filter to target just the Orchard wallet trace lines).
2022-04-05 18:18:49 +00:00
str4d 33c813c7a1
Merge pull request #5773 from daira/gitignore-tempfiles
.gitignore: add files temporarily created by autoconf
2022-04-05 14:57:35 +01:00
str4d 9e80e4aff6
Merge pull request #5819 from ebfull/fix-rescans
Fix logic for deciding whether to perform Orchard updates during rescan
2022-04-05 14:53:17 +01:00
Kris Nuttycombe 53a302cf3f
Merge pull request #5789 from nuttycom/bug/wallet_init_post_nu5
Fix a bug in initialization of the Orchard wallet after NU5 activation.
2022-04-04 20:06:34 -06:00
Kris Nuttycombe 98c848fd20
Merge pull request #5809 from str4d/5805-fix-thread-notify-wallets-init
wallet: Initialise ThreadNotifyWallets with wallets best block
2022-04-04 20:04:53 -06:00
Kris Nuttycombe ac0c24cfa0
Merge pull request #5820 from zcash/release-v4.6.0-2
Release v4.6.0-2
2022-04-04 17:42:09 -06:00
Jack Grigg ebe6f8b26d Update release notes for v4.6.0-2 2022-04-04 22:08:39 +00:00
Sean Bowe 979d0b5ee3
Fix logic for deciding whether to perform Orchard updates during rescan
In `ScanForWalletTransactions` we skip forward from `pindexStart` to a block
near our wallet birthday. But we use this as the basis for deciding the value
of `performOrchardWalletUpdates` later, which is wrong because our wallet
birthday might be beyond the NU5 activation height. The result is that we
won't actually perform the required scanning (mainly witnessing and so forth)
needed to spend notes in our wallet.
2022-04-04 16:06:11 -06:00
Jack Grigg f1b6e49998 make-release.py: Updated release notes and changelog for 4.6.0-2. 2022-04-04 21:53:34 +00:00
Jack Grigg 8a2c2d16b6 make-release.py: Updated manpages for 4.6.0-2. 2022-04-04 21:53:34 +00:00
Jack Grigg 4475210f87 make-release.py: Versioning changes for 4.6.0-2. 2022-04-04 21:50:30 +00:00
str4d 86e36b941b
Merge pull request #5814 from daira/backports-v4.6.0-2
Backports for hotfix v4.6.0-2
2022-04-04 22:34:58 +01:00
Kris Nuttycombe 8e4dd1e964 Only check nWitnessCacheSize on rewind if we've ever witnessed a Sprout or Sapling note.
This allows "rollback" for empty Sapling wallets injected into nonempty
chain state that is then rolled back.
2022-04-04 15:31:19 -06:00
ebfull fbddebc63f
Merge pull request #5804 from str4d/consensus-check-coinbase-shielded-spends
Apply HaveShieldedRequirements to coinbase transactions
2022-04-04 14:28:52 -06:00
Daira Hopwood 91c3bf7619 Merge branch 'swap_stretch_for_bullseye' (#5698) into backports-v4.6.0-2
(corresponds to merge commit 11bd9463c1)
2022-04-04 20:56:38 +01:00
Charlie O'Keefe adb73b33fa Remove stretch (debian 9), add bullseye (debian 11) in gitian descriptor
(cherry picked from commit 8c0e76e12b)
2022-04-04 20:56:26 +01:00
Daira Hopwood f25941bd43 Merge branch 'postpone-deps' (#5767) into backports-v4.6.0-2
(corresponds to merge commit 9befdb2c45)
2022-04-04 20:55:00 +01:00
Daira Hopwood 24c20d07e4 Postpone native_clang and libcxx 14.0.0.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
(cherry picked from commit 5abe1b82b4)
2022-04-04 20:54:42 +01:00
Daira Hopwood 57d347c5fe qa/zcash/updatecheck.py: print status code and response of failed http requests.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
(cherry picked from commit c28b004256)
2022-04-04 20:54:31 +01:00
Jack Grigg 8f4e853aba qa: Exclude `native_libtinfo` from dependency update checks
We are pinning a specific version to get Arch builds working.

(cherry picked from commit 479b10364b)
2022-04-04 20:53:45 +01:00
Daira Hopwood e631ca4d6b Merge branch 'bump-deps-4.7.0-rc1' (#5609) into backports-v4.6.0-2
This excludes 7b7dddba0c65062476ac00e1188e0e0a43f357f9: we do not update Rust crates.

(corresponds to merge commit 13351ff31d)
2022-04-04 20:51:21 +01:00
Jack Grigg 751c90879e depends: Revert to `libc++ 13.0.0-3` for Windows cross-compile
The 13.0.1-1 MSYS2 binaries cause linker errors due to missing `new` and
`delete` symbols. This commit partially reverts the LLVM 13.0.1 upgrade:
Windows cross-compilation still uses `clang 13.0.1`, but is compiled
against `libc++ 13.0.0`.

(cherry picked from commit fdb5709e7e)
2022-04-04 20:51:03 +01:00
Jack Grigg 0e7b5c35d9 rust: Fix clippy lint
(cherry picked from commit b5ce94d16c)
2022-04-04 20:50:54 +01:00
Jack Grigg 663308ae9d depends: Update Clang / libcxx to LLVM 13.0.1
(cherry picked from commit 2f1fbcc81f)
2022-04-04 20:50:32 +01:00
Jack Grigg 33f0a088fa depends: Update Rust to 1.59.0
(cherry picked from commit 21430b13ac)
2022-04-04 20:50:21 +01:00
Jack Grigg 31244d7a57 qa: Postpone recent CCache release
(cherry picked from commit adb7d074d5)
2022-04-04 20:50:12 +01:00
Jack Grigg e24deba8a7 qa: Bump all postponed dependencies
We have a pending PR to address the `native_ccache` and `googletest`
dependencies, and we aren't going to touch `bdb`.

(cherry picked from commit 4c49af7750)
2022-04-04 20:49:57 +01:00
Daira Hopwood 10bf089b76 Merge branch 'use-debian-libtinfo' (#5600) into backports-v4.6.0-2
(corresponds to merge commit f37d186e7e)
2022-04-04 20:48:27 +01:00
sasha 9c59279802 remove superfluous space at end of native_packages line
(cherry picked from commit 077f5550d4)
2022-04-04 20:48:16 +01:00
Daira Hopwood 14b05d8b34 Merge branch 'use-debian-libtinfo' (#5576) into backports-v4.6.0-2
(corresponds to merge commit 7d9dda4b7e)
2022-04-04 20:46:54 +01:00
sasha c79ee78a28 on Arch only, use Debian's libtinfo5_6.0 to satisfy clang
(cherry picked from commit 2d6dcd4750)
2022-04-04 20:46:00 +01:00
Taylor Hornby ca63d98169 Untested, not working yet, use libtinfo from the debian packages
(cherry picked from commit a2c647d4bf)
2022-04-04 20:45:48 +01:00
Daira Hopwood 6f2285b035 Merge branch '2022-02-getblocktemplate-locking' (#5594) into backports-v4.6.0-2
(corresponds to merge commit 5141c2971c)
2022-04-04 20:44:19 +01:00
Larry Ruane 5869659e2e document global variables
(cherry picked from commit e170c3abd6)
2022-04-04 20:43:43 +01:00
Pieter Wuille f4e92165f0 Modernize best block mutex/cv/hash variable naming
(cherry picked from commit bitcoin/bitcoin@4a6c0e3dcf)
(cherry picked from commit c079a518c0)
2022-04-04 20:43:33 +01:00
Pieter Wuille 82b98164a5 Fix csBestBlock/cvBlockChange waiting in rpc/mining
(cherry picked from commit bitcoin/bitcoin@45dd135039)
(cherry picked from commit 4693f8165f)
2022-04-04 20:43:23 +01:00
Daira Hopwood 3898c8cccb Merge branch 'update_dockerfile_to_debian_11' (#5323) into backports-v4.6.0-2
(corresponds to merge commit 30c20c0046)
2022-04-04 20:41:16 +01:00
Charlie O'Keefe 6b0067c1e0 Update base image used by Dockerfile from debian 10 to debian 11
I built a docker image with this change and verified that it successfully started zcashd

(cherry picked from commit 21d6835efa)
2022-04-04 20:40:52 +01:00
Daira Hopwood 4bfb8a3828 Merge branch 'fix-drop-warning' (#5459) into backports-v4.6.0-2
(corresponds to merge commit ed93cf5aff)
2022-04-04 20:39:09 +01:00
Daira Hopwood 619a9a1d47 Replace call to drop with zeroization.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
(cherry picked from commit 0e073a53ee)
2022-04-04 20:35:18 +01:00
Daira Hopwood cfa4590c75 Avoid a warning by explicitly calling drop.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
(cherry picked from commit 4f7d15508f)
2022-04-04 20:35:14 +01:00
Kris Nuttycombe afb503503d Omit check of Orchard commitment root after rewind past first checkpoint.
If we no longer have any checkpoints in the Orchard wallet, we must
skip the check against the prior note commitment tree root because
we know that the Orchard wallet's state may be for a chain that is
being reorg'ed away. This is safe because we know that we will have
removed all information from the wallet that we need to perform spends
from that state, and we also know that when we start rolling forward
along the new chain that we will overwrite the initial state of the
Orchard note commitment tree.
2022-04-04 13:05:46 -06:00
Kris Nuttycombe 5b7370c55e Update test to verify rewind behavior. 2022-04-04 13:05:42 -06:00
Kris Nuttycombe 344aef435d Improve error output from OrchardWallet::get_spend_info 2022-04-04 13:05:42 -06:00
Kris Nuttycombe 6fbcba641d Fix a bug in initialization of the Orchard wallet after NU5 activation.
When initializing a new Orchard wallet after NU5 activation, it is
not valid to start from the empty note commitment tree; instead,
the note commitment tree needs to be initialized from the state of
the global Orchard Merkle frontier.

In addition, this change necessitates a change to how rewinds work,
such that in a rollback scenario with a newly initialized wallet
that does not have sufficient checkpoints to fully satisfy a requested
rewind, the rewind is allowed to proceed so long as it does not
invalidate any persisted witness data.
2022-04-04 13:05:42 -06:00
Kris Nuttycombe 4afc6a37c9 Refactor ChainTip to take a struct of Merkle trees instead of a pair.
This makes addition of the Orchard Merkle frontier easier in the future.
2022-04-04 12:04:34 -06:00
Kris Nuttycombe d9de6b64fc Adds a test demonstrating an Orchard wallet initialization bug.
If a new Orchard wallet is created after the first Orchard spend
post NU5 activation, it causes an assertion failure because the root
of the wallet's empty note commitment tree does not match the global
note commitment tree root.
2022-04-04 12:04:32 -06:00
Jack Grigg 098a70ed89 wallet: Rename `CWallet::GetBestBlock` to `GetPersistedBestBlock`
This more accurately reflects its meaning, as it corresponds to the most
recently persisted best chain (i.e. the chain tip that the wallet will
return to on restart), rather than the chain tip to which the in-memory
wallet state has been synced.
2022-04-04 17:43:17 +00:00
Jack Grigg bb072f06c9 AcceptToMemoryPool: Re-add missing code comment
The comment on `view.SetBackend(dummy)` was removed when we backported
upstream locking PRs in zcash/zcash#5017. The upstream commit in
question removed a locking scope but did not remove the reference to
that scope in the comment. Our backport removed the outdated comment,
but should have modified it instead, because otherwise the existence of
`view.SetBackend(dummy)` is very confusing (as it disconnects the cache
from `pcoinsTip`, on the assumption that everything we need from it has
been cached via calls to `CCoinsViewCache::HaveCoins` and
`CCoinsViewCache::HaveShieldedRequirements`).
2022-04-04 16:57:55 +00:00