In the next commit we will implement a new checksum, codex32, which uses
the same encoding and HRP rules as bech32 and bech32m, but has a
substantially different checksum verification procedure. To minimize
duplicated code, we expose the character conversion in a new
bech32::internals module.
Github-Pull: #27351
Rebased-From: 7a57cda8e4461b1ac075251c945eaeb18f1edfd4
fee_histogram contains both dynamic-named group objects as well as a numeric total_fees, which the check cannot handle
Long-term, the result is expected to change to avoid this, so just skip it for now
I found sqlite tracing was useful for debugging a test in #27790, and thought
it might be helpful in other contexts too, so this PR adds an option to enable
it. Tracing is still disabled by default and only shown with `-debug=walletdb
-loglevel=walletdb:trace` options.
Instead of hardcoding the `pruneblockchain(<height>)` heights,
use 'getblockfileinfo' to obtain the highest block number of
each of the block files.
Making the test more robust and readable by stating which file
is being pruned at every point of time (the goal is to mimic
how the automatic pruning process work).
Github-Pull: #27770
Rebased-From: 5110139d397486bca7be0cf4c2ec31e304c22d45
This allows node operators that have the -logips option enabled
to better identify potentially misbehaving peers and maybe
ban them.
Github-Pull: #27761
Rebased-From: fb02a3cd1a
This change makes the `bitcoin-wallet` binary path customizable in the
same way how it can be done now with other ones, including `bitcoind`,
`bitcoin-cli` and `bitcoin-util`.
Github-Pull: #27554
Rebased-From: f6d7636be4
It's unnecessary to keep the data around, as it doesn't do anything. If
prioritisetransaction is called again, we'll make a new entry in
mapDeltas.
These entries are only deleted when the transaction is mined or conflicted
from a block (i.e. not in replacement or eviction), are persisted in
mempool.dat, and never expire. If node operators use the RPC to
regularly prioritise/de-prioritise transactions, these (meaningless)
map entries may hang around forever and take up valuable mempool memory.
Github-Pull: #27501
Rebased-From: 67b7fecacd
This new method returns true if the given CScript key is derived
from the SPKM. For Legacy that means checking the hd_seed_id in the
key's metadata.
Also patches PKDescriptor to return associated public keys in
MakeScripts()
Github-Pull: #27216
Rebased-From: f39957f5deec87d141e995a3bc90cc54e2d0ccbf
This RPC allows the client to retrieve the file system locations
of the confirmed blocks and their undo data, to allow building
efficient indexes outside of Bitcoin Core.
An example usage is described here:
https://github.com/romanz/electrs/issues/308
By using the new RPC, it is possible to build an address-based
index taking ~24GB and a txindex taking ~6GB (as of Dec. 2020).