Commit Graph

218 Commits

Author SHA1 Message Date
Daira Hopwood fae6cd175c Change the time that the wallet will wait for the block index to load from 5 minutes to 2 hours.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2023-01-13 00:02:03 +00:00
Jack Grigg 6affc287f7 Remove CentOS 8 as a supported platform
CentOS 8 reached EoL on December 31st 2021, and no longer satisfies our
Tier 2 platform requirements.

Part of zcash/zcash#6340.
2023-01-12 00:08:31 +00:00
Jack Grigg 0ff86213ce Deprecate old hash fields of `getblocktemplate` 2023-01-05 22:32:19 +00:00
Jack Grigg 09cd65327b Disable previously-deprecated features by default
These features were deprecated at least 3 minor releases ago. I found
one mistake which was that `z_validateaddress` had not been placed
behind the `addrtype` deprecated feature; this has been fixed.
2023-01-05 22:32:19 +00:00
Jack Grigg 37921677e9 Remove `zcraw*` RPC methods 2023-01-03 12:35:53 +00:00
Jack Grigg 2651451454 Remove `dumpwallet` RPC method
The RPC method handler is left in as a tombstone, to redirect callers to
the replacement method (as this is an upstream Bitcoin Core RPC method
that users may expect to be present).
2023-01-03 12:35:52 +00:00
Greg Pfeil 747a6b6acc Add release notes 2022-12-07 12:31:07 -07:00
Daira Hopwood 0972ffd785 make-release.py: Updated release notes and changelog for 5.3.1. 2022-12-02 02:46:42 +00:00
Daira Hopwood 1ef5372859 Update release notes: z_getnotescount already had the minconf parameter
Co-authored-by: Greg Pfeil <greg@technomadic.org>
2022-11-28 14:08:55 -07:00
Daira Hopwood 1dd4be5474 Add release notes for #6122 (`asOfHeight` RPC parameters).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-11-28 14:08:47 -07:00
Daira Hopwood aee8d5c0ec Avoid storing the Equihash solution in a CBlockIndex object once it has been written
to the leveldb database.

Co-authored-by: Jack Grigg <thestr4d@gmail.com>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-11-21 18:24:45 +00:00
Daira Hopwood e85dae7f12
Fix a Markdown syntax error
Co-authored-by: Greg Pfeil <greg@technomadic.org>
2022-11-10 03:05:16 +00:00
Daira Hopwood 6da5742edd Add release notes for the fix to #5958.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-11-09 15:00:24 +00:00
Greg Pfeil d557b6e5c5 make-release.py: Updated release notes and changelog for 5.3.0. 2022-10-20 10:52:37 -06:00
Jack Grigg 39401964d2 metrics: Add gauge for the height to which the wallet is synced 2022-09-25 22:14:22 +00:00
Greg Pfeil bdde47fb5d Fix finalorchardroot serialization
Previously, `finalorchardroot` and `orchard.anchor` were serialized differently
in the RPC API, which made it difficult to correlate them. This changes the
serialization for `finalorchardroot` to match `orchard.anchor`.
2022-09-22 18:20:42 -06:00
Jack Grigg f7f6c2070d wallet: Only store successful trial decryptions in batch scanner
Previously we were sending an `Option<DecryptedNote>` from each `Batch`
back to its parent `BatchRunner`. However, this requires allocating
sufficient space in the channel to handle the case where every output
can be decrypted. In general this will not be the case, and we can
instead signal "nothing decrypted" by just dropping the channel sender.
This reduces the post-batch-scanning memory usage of `BatchRunner` from
being linear in the number of on-chain outputs, to being linear in the
number of outputs for the wallet.
2022-09-21 01:27:42 +00:00
Jack Grigg 0072ea2447 wallet: Set a memory limit of 100 MiB for batch scanning 2022-09-21 01:27:42 +00:00
Jack Grigg 7bb6ff38d9 wallet: Collect metrics on the number of scanned outputs 2022-09-21 01:27:42 +00:00
Jack Grigg e88ea11055 wallet: Add dynamic memory usage tracking to `BatchScanner` 2022-09-21 01:27:42 +00:00
Sean Bowe b63dc026c7
make-release.py: Updated release notes and changelog for 5.2.0. 2022-07-25 12:42:25 -06:00
Kris Nuttycombe 9186131098 Fix incomplete release notes for witness pruning. 2022-07-22 17:14:28 -06:00
Kris Nuttycombe c6da56c216 Update release notes for v5.2.0.
This also updates the v5.1.0 release notes with a change that had
been previously missed.
2022-07-22 15:40:52 -06:00
Pieter Wuille 204d0c37ab Do not store Merkle branches in the wallet.
Assume that when a wallet transaction has a valid block hash and transaction position
in it, the transaction is actually there. We're already trusting wallet data in a
much more fundamental way anyway.

To prevent backward compatibility issues, a new record is used for storing the
block locator in the wallet. Old wallets will see a wallet file synchronized up
to the genesis block, and rescan automatically.

(cherry picked from commit bitcoin/bitcoin@391dff16fe)
2022-07-08 21:03:40 +00:00
Jack Grigg 4d7ce75ef1 make-release.py: Updated release notes and changelog for 5.1.0. 2022-07-08 03:01:54 +00:00
Jack Grigg c1b40ec2a8 Add missing release note entries for 5.1.0 2022-07-08 02:47:34 +00:00
Jack Grigg 5230c9f2f4 miner: Disable proof and signature checks in CreateNewBlock
The only source of transactions for `CreateNewBlock` is the mempool, and
every transaction added to the mempool goes through `AcceptToMemoryPool`
which checks proofs and signatures.

We maintain the ability to enable these checks in `TestBlockValidity`
because it is also used in an (undocumented) `getblocktemplate` mode to
check a proposed block (minus PoW), where we cannot assume the
transactions are valid.

Co-authored-by: Kris Nuttycombe <kris@nutty.land>
2022-07-06 19:38:15 +00:00
Jack Grigg cb5a4acca9 Update release notes 2022-07-05 21:36:45 +00:00
Kris Nuttycombe 59cabff22d Deprecate the `vjoinsplit` field of `gettransaction` results.
Author: Kris Nuttycombe <kris@nutty.land>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-07-01 15:47:16 +01:00
Kris Nuttycombe f3a9dcc0cf Mark the `dumpwallet` RPC method as disabled.
Fixes #5513
2022-05-26 14:31:26 -06:00
Kris Nuttycombe 9691d86047 Add a CLI flag to preferentially send V4 tx.
Since the wallet ecosystem may not be fully updated to handle
v5 transaction parsing at the point of NU5 activation, some
nodes may prefer to construct V4 transactions when not including
Orchard transaction components.

This change adds a CLI flag that allows node users to specify
that preference.
2022-05-26 07:26:38 -06:00
Kris Nuttycombe 10fb705f45 make-release.py: Updated release notes and changelog for 5.0.0. 2022-05-10 19:52:28 -06:00
Kris Nuttycombe 721e5d85ab Deprecate `getrawchangeaddress` and `z_listaddresses` 2022-05-10 16:23:15 -06:00
Kris Nuttycombe c6ceeb1646
Merge pull request #5934 from nuttycom/fix/release-notes-typos
Fix typos in release notes & Orchard wallet internal API doc.
2022-05-09 12:52:35 -06:00
Kris Nuttycombe 7defcb8341
Merge pull request #5926 from nuttycom/deprecation/z_getbalance
Add z_get(total)balance to deprecation flags.
2022-05-09 12:52:16 -06:00
Kris Nuttycombe f41ccaf244 Fix typos in release notes & Orchard wallet internal API doc. 2022-05-09 09:30:02 -06:00
Kris Nuttycombe 8ca33e06f7
Merge pull request #5919 from nuttycom/feature/z_sendmany_tx_limit
Add -orchardactionlimit parameter to guard against memory exhaustion.
2022-05-09 08:39:09 -06:00
Kris Nuttycombe 5c1a99a288
Merge pull request #5917 from nuttycom/feature/wallet_orchard-checkpoint_depth
Select anchors at `-anchorconfirmations` depth.
2022-05-09 08:29:55 -06:00
Kris Nuttycombe a71db41d38 Add -orchardactionlimit parameter to guard against memory exhaustion.
Orchard proving can require large amounts of memory, so by default
`z_sendmany` will not attempt to create transactions containing more
than 50 Orchard inputs or outputs to reduce the risk of memory
exhaustion.  The `-orchardactionlimit` parameter allows users with
larger amounts of memory at their disposal to override this limit.

Fixes #5889
2022-05-06 22:16:13 -06:00
Kris Nuttycombe 295f7d9f7b Change default anchor depth from 10 confirmations to 3 2022-05-06 18:05:39 -06:00
Kris Nuttycombe 7f29c53c33 Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-05-05 12:29:40 -06:00
Kris Nuttycombe 0c59fd9a20 Add z_get(total)balance to deprecation flags. 2022-05-05 07:53:29 -06:00
Kris Nuttycombe f285a39063
Merge pull request #5410 from LarryRuane/2021-12-06-test-python-standalone
Allow rpc python tests to be run standalone
2022-05-04 17:41:42 -06:00
Kris Nuttycombe af18ee1aba Add -anchorconfirmations to the release notes 2022-05-04 16:07:40 -06:00
Kris Nuttycombe 63e4addd9a Select Orchard anchors at `-orchardanchorconfirmations` depth.
This changes anchor selection and Orchard authentication path generation
to default to select anchors at a the depth specified by the
`-orchardanchorconfirmations` CLI argument, with a default anchor
selection depth of 10 blocks.

If the value of `minconf` used for a particular call to `z_sendmany` is
less than the the set number of Orchard anchor confirmations, `minconf`
will be used instead for the Orchard anchor confirmations depth,
so that the selected anchor will be certain to contain any notes
selected to be spent.

Fixes #5644
2022-05-04 14:16:43 -06:00
Kris Nuttycombe 37bbb9f239 Clarify documentation of the deprecation process.
Co-authored-by: str4d <thestr4d@gmail.com>
2022-05-04 11:53:54 -06:00
Kris Nuttycombe 717b253a01 Remove `-allowdeprecated=all`
We've decided to remove the option to allow all deprecated features,
because this has the effect that, if a user enables this flag, they
won't get the warning (and hence may forget to take action) at the time
that a feature is moved from the default-allowed set to the
default-denied set.

Co-authored-by: str4d <thestr4d@gmail.com>
2022-05-03 20:32:10 -06:00
Kris Nuttycombe 4ea9de5ff6 Remove zcrawreceive, zcrawjoinsplit, zcrawkeygen from default-allowed deprecated methods. 2022-04-28 15:21:13 -06:00
Kris Nuttycombe d6d3be9bf2 Allow deprecated wallet features to be preemptively disabled.
This adds an `-allowdeprecated` CLI parameter whose value is a flag
indicating a deprecated feature that should be explicitly enabled.
Multiple instances of this argument may be provided. In the case that
this parameter is not provided, all currently deprecated RPC methods
that are not slated for removal in the next release remain available.
A user may disable all deprecated features entirely by providing the
string "none" as the argument to this parameter, or enable all
deprecated features, including those slated for removal, by providing
the string "all" as the argument to this parameter. In the case that
"all" or "none" is specified, multiple invocations of `-allowdeprecated`
are not permitted.

To explicitly enable only a specific set of deprecated features, use
`-allowdeprecated=<flag1> -allowdeprecated=<flagN> ...` when starting
zcashd. The following flags are recognized:

- "all" - enables all deprecated features.
- "none" - disables all deprecated features.
- "legacy_privacy" - enables the use of the deprecated "legacy" privacy
  policy for z_sendmany. This causes the default behavior to conform to
  the `FullPrivacy` directive in all cases instead of just for
  transactions involving unified addresses.
- "getnewaddress" - enables the `getnewaddress` RPC method.
- "z_getnewaddress" - enables the `z_getnewaddress` RPC method.
- "zcrawreceive" - enables the `zcrawreceive` RPC method.
- "zcrawjoinsplit" - enables the `zcrawjoinsplit` RPC method.
- "zcrawkeygen" - enables the `zcrawkeygen` RPC method.
- "addrtype" - when this option is set, the deprecated `type` attribute
  is returned in addition to `pool` or `address_type` (which contain the
  same information) in the results of RPC methods that return address metadata.
2022-04-28 15:20:05 -06:00
Larry Ruane c5752c7ea2 Allow rpc python tests to be run standalone
That is, without having to launch with test_runner.py. There are
several places where the BITCOIND environment variable determines the
executable, but the default is "bitcoind"; change the default to
"src/zcashd". This does require running the test from the top-level
directory.

Also change the environment variable from BITCOIND to ZCASHD. This could
conceivable break someone, but it just makes too much sense not to do.
2022-04-26 15:06:31 -06:00