From 9401bcd5021b49cd6f8e8e2d59b0d3a01789ac19 Mon Sep 17 00:00:00 2001 From: fkolakovic Date: Sat, 4 May 2024 11:32:28 +0200 Subject: [PATCH 1/5] Delete release notes for bitcoin --- doc/release-notes/release-notes-0.10.0.md | 762 ----------- doc/release-notes/release-notes-0.10.1.md | 143 -- doc/release-notes/release-notes-0.10.2.md | 86 -- doc/release-notes/release-notes-0.10.3.md | 165 --- doc/release-notes/release-notes-0.10.4.md | 172 --- doc/release-notes/release-notes-0.11.0.md | 505 ------- doc/release-notes/release-notes-0.11.1.md | 172 --- doc/release-notes/release-notes-0.11.2.md | 217 --- doc/release-notes/release-notes-0.12.0.md | 894 ------------- doc/release-notes/release-notes-0.12.1.md | 198 --- doc/release-notes/release-notes-0.13.0.md | 868 ------------ doc/release-notes/release-notes-0.13.1.md | 410 ------ doc/release-notes/release-notes-0.13.2.md | 178 --- doc/release-notes/release-notes-0.14.0.md | 873 ------------ doc/release-notes/release-notes-0.14.1.md | 143 -- doc/release-notes/release-notes-0.14.2.md | 102 -- doc/release-notes/release-notes-0.14.3.md | 118 -- doc/release-notes/release-notes-0.15.0.1.md | 87 -- doc/release-notes/release-notes-0.15.0.md | 878 ------------ doc/release-notes/release-notes-0.15.1.md | 277 ---- doc/release-notes/release-notes-0.15.2.md | 118 -- doc/release-notes/release-notes-0.16.0.md | 720 ---------- doc/release-notes/release-notes-0.16.1.md | 145 -- doc/release-notes/release-notes-0.16.2.md | 116 -- doc/release-notes/release-notes-0.16.3.md | 88 -- doc/release-notes/release-notes-0.17.0.1.md | 41 - doc/release-notes/release-notes-0.17.0.md | 1105 --------------- doc/release-notes/release-notes-0.17.1.md | 168 --- doc/release-notes/release-notes-0.18.0.md | 1224 ----------------- doc/release-notes/release-notes-0.18.1.md | 136 -- doc/release-notes/release-notes-0.19.0.1.md | 1089 --------------- doc/release-notes/release-notes-0.19.0.md | 6 - doc/release-notes/release-notes-0.19.1.md | 115 -- doc/release-notes/release-notes-0.20.0.md | 987 -------------- doc/release-notes/release-notes-0.20.1.md | 158 --- doc/release-notes/release-notes-0.20.2.md | 165 --- doc/release-notes/release-notes-0.21.0.md | 1336 ------------------- doc/release-notes/release-notes-0.21.1.md | 203 --- doc/release-notes/release-notes-0.21.2.md | 109 -- doc/release-notes/release-notes-0.3.12.md | 13 - doc/release-notes/release-notes-0.3.13.md | 26 - doc/release-notes/release-notes-0.3.14.md | 11 - doc/release-notes/release-notes-0.3.15.md | 6 - doc/release-notes/release-notes-0.3.16.md | 1 - doc/release-notes/release-notes-0.3.17.md | 12 - doc/release-notes/release-notes-0.3.18.md | 11 - doc/release-notes/release-notes-0.3.19.md | 9 - doc/release-notes/release-notes-0.3.20.1.md | 1 - doc/release-notes/release-notes-0.3.20.2.md | 17 - doc/release-notes/release-notes-0.3.20.md | 22 - doc/release-notes/release-notes-0.3.21.md | 20 - doc/release-notes/release-notes-0.3.22.md | 16 - doc/release-notes/release-notes-0.3.23.md | 10 - doc/release-notes/release-notes-0.3.24.md | 20 - doc/release-notes/release-notes-0.4.0.md | 70 - doc/release-notes/release-notes-0.4.1.md | 38 - doc/release-notes/release-notes-0.4.2.md | 1 - doc/release-notes/release-notes-0.4.3.md | 21 - doc/release-notes/release-notes-0.4.4.md | 30 - doc/release-notes/release-notes-0.4.5.md | 1 - doc/release-notes/release-notes-0.4.6.md | 37 - doc/release-notes/release-notes-0.5.0.md | 70 - doc/release-notes/release-notes-0.5.1.md | 43 - doc/release-notes/release-notes-0.5.2.md | 22 - doc/release-notes/release-notes-0.5.3.md | 42 - doc/release-notes/release-notes-0.5.4.md | 39 - doc/release-notes/release-notes-0.5.5.md | 37 - doc/release-notes/release-notes-0.6.0.md | 138 -- doc/release-notes/release-notes-0.6.1.md | 2 - doc/release-notes/release-notes-0.6.2.md | 50 - doc/release-notes/release-notes-0.6.3.md | 29 - doc/release-notes/release-notes-0.7.0.md | 169 --- doc/release-notes/release-notes-0.7.1.md | 110 -- doc/release-notes/release-notes-0.7.2.md | 68 - doc/release-notes/release-notes-0.8.0.md | 139 -- doc/release-notes/release-notes-0.8.1.md | 22 - doc/release-notes/release-notes-0.8.2.md | 137 -- doc/release-notes/release-notes-0.8.3.md | 18 - doc/release-notes/release-notes-0.8.4.md | 83 -- doc/release-notes/release-notes-0.8.5.md | 44 - doc/release-notes/release-notes-0.8.6.md | 66 - doc/release-notes/release-notes-0.9.0.md | 411 ------ doc/release-notes/release-notes-0.9.1.md | 53 - doc/release-notes/release-notes-0.9.2.1.md | 207 --- doc/release-notes/release-notes-0.9.2.md | 207 --- doc/release-notes/release-notes-0.9.3.md | 101 -- doc/release-notes/release-notes-0.9.4.md | 95 -- doc/release-notes/release-notes-0.9.5.md | 60 - doc/release-notes/release-notes-22.0.md | 1163 ---------------- doc/release-notes/release-notes-22.1.md | 128 -- doc/release-notes/release-notes-23.0.md | 373 ------ doc/release-notes/release-notes-23.1.md | 90 -- doc/release-notes/release-notes-23.2.md | 72 - doc/release-notes/release-notes-24.0.1.md | 391 ------ doc/release-notes/release-notes-24.0.md | 4 - doc/release-notes/release-notes-24.1.md | 99 -- doc/release-notes/release-notes-24.2.md | 76 -- doc/release-notes/release-notes-25.0.md | 340 ----- doc/release-notes/release-notes-25.1.md | 108 -- doc/release-notes/release-notes-26.0.md | 357 ----- 100 files changed, 21333 deletions(-) delete mode 100644 doc/release-notes/release-notes-0.10.0.md delete mode 100644 doc/release-notes/release-notes-0.10.1.md delete mode 100644 doc/release-notes/release-notes-0.10.2.md delete mode 100644 doc/release-notes/release-notes-0.10.3.md delete mode 100644 doc/release-notes/release-notes-0.10.4.md delete mode 100644 doc/release-notes/release-notes-0.11.0.md delete mode 100644 doc/release-notes/release-notes-0.11.1.md delete mode 100644 doc/release-notes/release-notes-0.11.2.md delete mode 100644 doc/release-notes/release-notes-0.12.0.md delete mode 100644 doc/release-notes/release-notes-0.12.1.md delete mode 100644 doc/release-notes/release-notes-0.13.0.md delete mode 100644 doc/release-notes/release-notes-0.13.1.md delete mode 100644 doc/release-notes/release-notes-0.13.2.md delete mode 100644 doc/release-notes/release-notes-0.14.0.md delete mode 100644 doc/release-notes/release-notes-0.14.1.md delete mode 100644 doc/release-notes/release-notes-0.14.2.md delete mode 100644 doc/release-notes/release-notes-0.14.3.md delete mode 100644 doc/release-notes/release-notes-0.15.0.1.md delete mode 100644 doc/release-notes/release-notes-0.15.0.md delete mode 100644 doc/release-notes/release-notes-0.15.1.md delete mode 100644 doc/release-notes/release-notes-0.15.2.md delete mode 100644 doc/release-notes/release-notes-0.16.0.md delete mode 100644 doc/release-notes/release-notes-0.16.1.md delete mode 100644 doc/release-notes/release-notes-0.16.2.md delete mode 100644 doc/release-notes/release-notes-0.16.3.md delete mode 100644 doc/release-notes/release-notes-0.17.0.1.md delete mode 100644 doc/release-notes/release-notes-0.17.0.md delete mode 100644 doc/release-notes/release-notes-0.17.1.md delete mode 100644 doc/release-notes/release-notes-0.18.0.md delete mode 100644 doc/release-notes/release-notes-0.18.1.md delete mode 100644 doc/release-notes/release-notes-0.19.0.1.md delete mode 100644 doc/release-notes/release-notes-0.19.0.md delete mode 100644 doc/release-notes/release-notes-0.19.1.md delete mode 100644 doc/release-notes/release-notes-0.20.0.md delete mode 100644 doc/release-notes/release-notes-0.20.1.md delete mode 100644 doc/release-notes/release-notes-0.20.2.md delete mode 100644 doc/release-notes/release-notes-0.21.0.md delete mode 100644 doc/release-notes/release-notes-0.21.1.md delete mode 100644 doc/release-notes/release-notes-0.21.2.md delete mode 100644 doc/release-notes/release-notes-0.3.12.md delete mode 100644 doc/release-notes/release-notes-0.3.13.md delete mode 100644 doc/release-notes/release-notes-0.3.14.md delete mode 100644 doc/release-notes/release-notes-0.3.15.md delete mode 100644 doc/release-notes/release-notes-0.3.16.md delete mode 100644 doc/release-notes/release-notes-0.3.17.md delete mode 100644 doc/release-notes/release-notes-0.3.18.md delete mode 100644 doc/release-notes/release-notes-0.3.19.md delete mode 100644 doc/release-notes/release-notes-0.3.20.1.md delete mode 100644 doc/release-notes/release-notes-0.3.20.2.md delete mode 100644 doc/release-notes/release-notes-0.3.20.md delete mode 100644 doc/release-notes/release-notes-0.3.21.md delete mode 100644 doc/release-notes/release-notes-0.3.22.md delete mode 100644 doc/release-notes/release-notes-0.3.23.md delete mode 100644 doc/release-notes/release-notes-0.3.24.md delete mode 100644 doc/release-notes/release-notes-0.4.0.md delete mode 100644 doc/release-notes/release-notes-0.4.1.md delete mode 100644 doc/release-notes/release-notes-0.4.2.md delete mode 100644 doc/release-notes/release-notes-0.4.3.md delete mode 100644 doc/release-notes/release-notes-0.4.4.md delete mode 100644 doc/release-notes/release-notes-0.4.5.md delete mode 100644 doc/release-notes/release-notes-0.4.6.md delete mode 100644 doc/release-notes/release-notes-0.5.0.md delete mode 100644 doc/release-notes/release-notes-0.5.1.md delete mode 100644 doc/release-notes/release-notes-0.5.2.md delete mode 100644 doc/release-notes/release-notes-0.5.3.md delete mode 100644 doc/release-notes/release-notes-0.5.4.md delete mode 100644 doc/release-notes/release-notes-0.5.5.md delete mode 100644 doc/release-notes/release-notes-0.6.0.md delete mode 100644 doc/release-notes/release-notes-0.6.1.md delete mode 100644 doc/release-notes/release-notes-0.6.2.md delete mode 100644 doc/release-notes/release-notes-0.6.3.md delete mode 100644 doc/release-notes/release-notes-0.7.0.md delete mode 100644 doc/release-notes/release-notes-0.7.1.md delete mode 100644 doc/release-notes/release-notes-0.7.2.md delete mode 100644 doc/release-notes/release-notes-0.8.0.md delete mode 100644 doc/release-notes/release-notes-0.8.1.md delete mode 100644 doc/release-notes/release-notes-0.8.2.md delete mode 100644 doc/release-notes/release-notes-0.8.3.md delete mode 100644 doc/release-notes/release-notes-0.8.4.md delete mode 100644 doc/release-notes/release-notes-0.8.5.md delete mode 100644 doc/release-notes/release-notes-0.8.6.md delete mode 100644 doc/release-notes/release-notes-0.9.0.md delete mode 100644 doc/release-notes/release-notes-0.9.1.md delete mode 100644 doc/release-notes/release-notes-0.9.2.1.md delete mode 100644 doc/release-notes/release-notes-0.9.2.md delete mode 100644 doc/release-notes/release-notes-0.9.3.md delete mode 100644 doc/release-notes/release-notes-0.9.4.md delete mode 100644 doc/release-notes/release-notes-0.9.5.md delete mode 100644 doc/release-notes/release-notes-22.0.md delete mode 100644 doc/release-notes/release-notes-22.1.md delete mode 100644 doc/release-notes/release-notes-23.0.md delete mode 100644 doc/release-notes/release-notes-23.1.md delete mode 100644 doc/release-notes/release-notes-23.2.md delete mode 100644 doc/release-notes/release-notes-24.0.1.md delete mode 100644 doc/release-notes/release-notes-24.0.md delete mode 100644 doc/release-notes/release-notes-24.1.md delete mode 100644 doc/release-notes/release-notes-24.2.md delete mode 100644 doc/release-notes/release-notes-25.0.md delete mode 100644 doc/release-notes/release-notes-25.1.md delete mode 100644 doc/release-notes/release-notes-26.0.md diff --git a/doc/release-notes/release-notes-0.10.0.md b/doc/release-notes/release-notes-0.10.0.md deleted file mode 100644 index 986b8832ec189..0000000000000 --- a/doc/release-notes/release-notes-0.10.0.md +++ /dev/null @@ -1,762 +0,0 @@ -Bitcoin Core version 0.10.0 is now available from: - - https://bitcoin.org/bin/0.10.0/ - -This is a new major version release, bringing both new features and -bug fixes. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrading warning ---------------------- - -Because release 0.10.0 makes use of headers-first synchronization and parallel -block download (see further), the block files and databases are not -backwards-compatible with older versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - - -Notable changes -=============== - -Faster synchronization ----------------------- - -Bitcoin Core now uses 'headers-first synchronization'. This means that we first -ask peers for block headers (a total of 27 megabytes, as of December 2014) and -validate those. In a second stage, when the headers have been discovered, we -download the blocks. However, as we already know about the whole chain in -advance, the blocks can be downloaded in parallel from all available peers. - -In practice, this means a much faster and more robust synchronization. On -recent hardware with a decent network link, it can be as little as 3 hours -for an initial full synchronization. You may notice a slower progress in the -very first few minutes, when headers are still being fetched and verified, but -it should gain speed afterwards. - -A few RPCs were added/updated as a result of this: -- `getblockchaininfo` now returns the number of validated headers in addition to -the number of validated blocks. -- `getpeerinfo` lists both the number of blocks and headers we know we have in -common with each peer. While synchronizing, the heights of the blocks that we -have requested from peers (but haven't received yet) are also listed as -'inflight'. -- A new RPC `getchaintips` lists all known branches of the block chain, -including those we only have headers for. - -Transaction fee changes ------------------------ - -This release automatically estimates how high a transaction fee (or how -high a priority) transactions require to be confirmed quickly. The default -settings will create transactions that confirm quickly; see the new -'txconfirmtarget' setting to control the tradeoff between fees and -confirmation times. Fees are added by default unless the 'sendfreetransactions' -setting is enabled. - -Prior releases used hard-coded fees (and priorities), and would -sometimes create transactions that took a very long time to confirm. - -Statistics used to estimate fees and priorities are saved in the -data directory in the `fee_estimates.dat` file just before -program shutdown, and are read in at startup. - -New command line options for transaction fee changes: -- `-txconfirmtarget=n` : create transactions that have enough fees (or priority) -so they are likely to begin confirmation within n blocks (default: 1). This setting -is over-ridden by the -paytxfee option. -- `-sendfreetransactions` : Send transactions as zero-fee transactions if possible -(default: 0) - -New RPC commands for fee estimation: -- `estimatefee nblocks` : Returns approximate fee-per-1,000-bytes needed for -a transaction to begin confirmation within nblocks. Returns -1 if not enough -transactions have been observed to compute a good estimate. -- `estimatepriority nblocks` : Returns approximate priority needed for -a zero-fee transaction to begin confirmation within nblocks. Returns -1 if not -enough free transactions have been observed to compute a good -estimate. - -RPC access control changes --------------------------- - -Subnet matching for the purpose of access control is now done -by matching the binary network address, instead of with string wildcard matching. -For the user this means that `-rpcallowip` takes a subnet specification, which can be - -- a single IP address (e.g. `1.2.3.4` or `fe80::0012:3456:789a:bcde`) -- a network/CIDR (e.g. `1.2.3.0/24` or `fe80::0000/64`) -- a network/netmask (e.g. `1.2.3.4/255.255.255.0` or `fe80::0012:3456:789a:bcde/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff`) - -An arbitrary number of `-rpcallow` arguments can be given. An incoming connection will be accepted if its origin address -matches one of them. - -For example: - -| 0.9.x and before | 0.10.x | -|--------------------------------------------|---------------------------------------| -| `-rpcallowip=192.168.1.1` | `-rpcallowip=192.168.1.1` (unchanged) | -| `-rpcallowip=192.168.1.*` | `-rpcallowip=192.168.1.0/24` | -| `-rpcallowip=192.168.*` | `-rpcallowip=192.168.0.0/16` | -| `-rpcallowip=*` (dangerous!) | `-rpcallowip=::/0` (still dangerous!) | - -Using wildcards will result in the rule being rejected with the following error in debug.log: - - Error: Invalid -rpcallowip subnet specification: *. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). - - -REST interface --------------- - -A new HTTP API is exposed when running with the `-rest` flag, which allows -unauthenticated access to public node data. - -It is served on the same port as RPC, but does not need a password, and uses -plain HTTP instead of JSON-RPC. - -Assuming a local RPC server running on port 8332, it is possible to request: -- Blocks: http://localhost:8332/rest/block/*HASH*.*EXT* -- Blocks without transactions: http://localhost:8332/rest/block/notxdetails/*HASH*.*EXT* -- Transactions (requires `-txindex`): http://localhost:8332/rest/tx/*HASH*.*EXT* - -In every case, *EXT* can be `bin` (for raw binary data), `hex` (for hex-encoded -binary) or `json`. - -For more details, see the `doc/REST-interface.md` document in the repository. - -RPC Server "Warm-Up" Mode -------------------------- - -The RPC server is started earlier now, before most of the expensive -intialisations like loading the block index. It is available now almost -immediately after starting the process. However, until all initialisations -are done, it always returns an immediate error with code -28 to all calls. - -This new behaviour can be useful for clients to know that a server is already -started and will be available soon (for instance, so that they do not -have to start it themselves). - -Improved signing security -------------------------- - -For 0.10 the security of signing against unusual attacks has been -improved by making the signatures constant time and deterministic. - -This change is a result of switching signing to use libsecp256k1 -instead of OpenSSL. Libsecp256k1 is a cryptographic library -optimized for the curve Bitcoin uses which was created by Bitcoin -Core developer Pieter Wuille. - -There exist attacks[1] against most ECC implementations where an -attacker on shared virtual machine hardware could extract a private -key if they could cause a target to sign using the same key hundreds -of times. While using shared hosts and reusing keys are inadvisable -for other reasons, it's a better practice to avoid the exposure. - -OpenSSL has code in their source repository for derandomization -and reduction in timing leaks that we've eagerly wanted to use for a -long time, but this functionality has still not made its -way into a released version of OpenSSL. Libsecp256k1 achieves -significantly stronger protection: As far as we're aware this is -the only deployed implementation of constant time signing for -the curve Bitcoin uses and we have reason to believe that -libsecp256k1 is better tested and more thoroughly reviewed -than the implementation in OpenSSL. - -[1] https://eprint.iacr.org/2014/161.pdf - -Watch-only wallet support -------------------------- - -The wallet can now track transactions to and from wallets for which you know -all addresses (or scripts), even without the private keys. - -This can be used to track payments without needing the private keys online on a -possibly vulnerable system. In addition, it can help for (manual) construction -of multisig transactions where you are only one of the signers. - -One new RPC, `importaddress`, is added which functions similarly to -`importprivkey`, but instead takes an address or script (in hexadecimal) as -argument. After using it, outputs credited to this address or script are -considered to be received, and transactions consuming these outputs will be -considered to be sent. - -The following RPCs have optional support for watch-only: -`getbalance`, `listreceivedbyaddress`, `listreceivedbyaccount`, -`listtransactions`, `listaccounts`, `listsinceblock`, `gettransaction`. See the -RPC documentation for those methods for more information. - -Compared to using `getrawtransaction`, this mechanism does not require -`-txindex`, scales better, integrates better with the wallet, and is compatible -with future block chain pruning functionality. It does mean that all relevant -addresses need to added to the wallet before the payment, though. - -Consensus library ------------------ - -Starting from 0.10.0, the Bitcoin Core distribution includes a consensus library. - -The purpose of this library is to make the verification functionality that is -critical to Bitcoin's consensus available to other applications, e.g. to language -bindings such as [python-bitcoinlib](https://pypi.python.org/pypi/python-bitcoinlib) or -alternative node implementations. - -This library is called `libbitcoinconsensus.so` (or, `.dll` for Windows). -Its interface is defined in the C header [bitcoinconsensus.h](https://github.com/bitcoin/bitcoin/blob/0.10/src/script/bitcoinconsensus.h). - -In its initial version the API includes two functions: - -- `bitcoinconsensus_verify_script` verifies a script. It returns whether the indicated input of the provided serialized transaction -correctly spends the passed scriptPubKey under additional constraints indicated by flags -- `bitcoinconsensus_version` returns the API version, currently at an experimental `0` - -The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface -for existing methods should remain stable. - -Standard script rules relaxed for P2SH addresses ------------------------------------------------- - -The IsStandard() rules have been almost completely removed for P2SH -redemption scripts, allowing applications to make use of any valid -script type, such as "n-of-m OR y", hash-locked oracle addresses, etc. -While the Bitcoin protocol has always supported these types of script, -actually using them on mainnet has been previously inconvenient as -standard Bitcoin Core nodes wouldn't relay them to miners, nor would -most miners include them in blocks they mined. - -bitcoin-tx ----------- - -It has been observed that many of the RPC functions offered by bitcoind are -"pure functions", and operate independently of the bitcoind wallet. This -included many of the RPC "raw transaction" API functions, such as -createrawtransaction. - -bitcoin-tx is a newly introduced command line utility designed to enable easy -manipulation of bitcoin transactions. A summary of its operation may be -obtained via "bitcoin-tx --help" Transactions may be created or signed in a -manner similar to the RPC raw tx API. Transactions may be updated, deleting -inputs or outputs, or appending new inputs and outputs. Custom scripts may be -easily composed using a simple text notation, borrowed from the bitcoin test -suite. - -This tool may be used for experimenting with new transaction types, signing -multi-party transactions, and many other uses. Long term, the goal is to -deprecate and remove "pure function" RPC API calls, as those do not require a -server round-trip to execute. - -Other utilities "bitcoin-key" and "bitcoin-script" have been proposed, making -key and script operations easily accessible via command line. - -Mining and relay policy enhancements ------------------------------------- - -Bitcoin Core's block templates are now for version 3 blocks only, and any mining -software relying on its `getblocktemplate` must be updated in parallel to use -libblkmaker either version 0.4.2 or any version from 0.5.1 onward. -If you are solo mining, this will affect you the moment you upgrade Bitcoin -Core, which must be done prior to BIP66 achieving its 951/1001 status. -If you are mining with the stratum mining protocol: this does not affect you. -If you are mining with the getblocktemplate protocol to a pool: this will affect -you at the pool operator's discretion, which must be no later than BIP66 -achieving its 951/1001 status. - -The `prioritisetransaction` RPC method has been added to enable miners to -manipulate the priority of transactions on an individual basis. - -Bitcoin Core now supports BIP 22 long polling, so mining software can be -notified immediately of new templates rather than having to poll periodically. - -Support for BIP 23 block proposals is now available in Bitcoin Core's -`getblocktemplate` method. This enables miners to check the basic validity of -their next block before expending work on it, reducing risks of accidental -hardforks or mining invalid blocks. - -Two new options to control mining policy: -- `-datacarrier=0/1` : Relay and mine "data carrier" (OP_RETURN) transactions -if this is 1. -- `-datacarriersize=n` : Maximum size, in bytes, we consider acceptable for -"data carrier" outputs. - -The relay policy has changed to more properly implement the desired behavior of not -relaying free (or very low fee) transactions unless they have a priority above the -AllowFreeThreshold(), in which case they are relayed subject to the rate limiter. - -BIP 66: strict DER encoding for signatures ------------------------------------------- - -Bitcoin Core 0.10 implements BIP 66, which introduces block version 3, and a new -consensus rule, which prohibits non-DER signatures. Such transactions have been -non-standard since Bitcoin v0.8.0 (released in February 2013), but were -technically still permitted inside blocks. - -This change breaks the dependency on OpenSSL's signature parsing, and is -required if implementations would want to remove all of OpenSSL from the -consensus code. - -The same miner-voting mechanism as in BIP 34 is used: when 751 out of a -sequence of 1001 blocks have version number 3 or higher, the new consensus -rule becomes active for those blocks. When 951 out of a sequence of 1001 -blocks have version number 3 or higher, it becomes mandatory for all blocks. - -Backward compatibility with current mining software is NOT provided, thus miners -should read the first paragraph of "Mining and relay policy enhancements" above. - -0.10.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect external -behavior, not code moves, refactors or string updates. - -RPC: -- `f923c07` Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost -- `b641c9c` Fix addnode "onetry": Connect with OpenNetworkConnection -- `171ca77` estimatefee / estimatepriority RPC methods -- `b750cf1` Remove cli functionality from bitcoind -- `f6984e8` Add "chain" to getmininginfo, improve help in getblockchaininfo -- `99ddc6c` Add nLocalServices info to RPC getinfo -- `cf0c47b` Remove getwork() RPC call -- `2a72d45` prioritisetransaction -- `e44fea5` Add an option `-datacarrier` to allow users to disable relaying/mining data carrier transactions -- `2ec5a3d` Prevent easy RPC memory exhaustion attack -- `d4640d7` Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation -- `83f3543` Added argument to listaccounts to include watchonly addresses -- `952877e` Showing 'involvesWatchonly' property for transactions returned by 'listtransactions' and 'listsinceblock'. It is only appended when the transaction involves a watchonly address -- `d7d5d23` Added argument to listtransactions and listsinceblock to include watchonly addresses -- `f87ba3d` added includeWatchonly argument to 'gettransaction' because it affects balance calculation -- `0fa2f88` added includedWatchonly argument to listreceivedbyaddress/...account -- `6c37f7f` `getrawchangeaddress`: fail when keypool exhausted and wallet locked -- `ff6a7af` getblocktemplate: longpolling support -- `c4a321f` Add peerid to getpeerinfo to allow correlation with the logs -- `1b4568c` Add vout to ListTransactions output -- `b33bd7a` Implement "getchaintips" RPC command to monitor blockchain forks -- `733177e` Remove size limit in RPC client, keep it in server -- `6b5b7cb` Categorize rpc help overview -- `6f2c26a` Closely track mempool byte total. Add "getmempoolinfo" RPC -- `aa82795` Add detailed network info to getnetworkinfo RPC -- `01094bd` Don't reveal whether password is <20 or >20 characters in RPC -- `57153d4` rpc: Compute number of confirmations of a block from block height -- `ff36cbe` getnetworkinfo: export local node's client sub-version string -- `d14d7de` SanitizeString: allow '(' and ')' -- `31d6390` Fixed setaccount accepting foreign address -- `b5ec5fe` update getnetworkinfo help with subversion -- `ad6e601` RPC additions after headers-first -- `33dfbf5` rpc: Fix leveldb iterator leak, and flush before `gettxoutsetinfo` -- `2aa6329` Enable customising node policy for datacarrier data size with a -datacarriersize option -- `f877aaa` submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock -- `e69a587` submitblock: Support for returning specific rejection reasons -- `af82884` Add "warmup mode" for RPC server -- `e2655e0` Add unauthenticated HTTP REST interface to public blockchain data -- `683dc40` Disable SSLv3 (in favor of TLS) for the RPC client and server -- `44b4c0d` signrawtransaction: validate private key -- `9765a50` Implement BIP 23 Block Proposal -- `f9de17e` Add warning comment to getinfo - -Command-line options: -- `ee21912` Use netmasks instead of wildcards for IP address matching -- `deb3572` Add `-rpcbind` option to allow binding RPC port on a specific interface -- `96b733e` Add `-version` option to get just the version -- `1569353` Add `-stopafterblockimport` option -- `77cbd46` Let -zapwallettxes recover transaction meta data -- `1c750db` remove -tor compatibility code (only allow -onion) -- `4aaa017` rework help messages for fee-related options -- `4278b1d` Clarify error message when invalid -rpcallowip -- `6b407e4` -datadir is now allowed in config files -- `bdd5b58` Add option `-sysperms` to disable 077 umask (create new files with system default umask) -- `cbe39a3` Add "bitcoin-tx" command line utility and supporting modules -- `dbca89b` Trigger -alertnotify if network is upgrading without you -- `ad96e7c` Make -reindex cope with out-of-order blocks -- `16d5194` Skip reindexed blocks individually -- `ec01243` --tracerpc option for regression tests -- `f654f00` Change -genproclimit default to 1 -- `3c77714` Make -proxy set all network types, avoiding a connect leak -- `57be955` Remove -printblock, -printblocktree, and -printblockindex -- `ad3d208` remove -maxorphanblocks config parameter since it is no longer functional - -Block and transaction handling: -- `7a0e84d` ProcessGetData(): abort if a block file is missing from disk -- `8c93bf4` LoadBlockIndexDB(): Require block db reindex if any `blk*.dat` files are missing -- `77339e5` Get rid of the static chainMostWork (optimization) -- `4e0eed8` Allow ActivateBestChain to release its lock on cs_main -- `18e7216` Push cs_mains down in ProcessBlock -- `fa126ef` Avoid undefined behavior using CFlatData in CScript serialization -- `7f3b4e9` Relax IsStandard rules for pay-to-script-hash transactions -- `c9a0918` Add a skiplist to the CBlockIndex structure -- `bc42503` Use unordered_map for CCoinsViewCache with salted hash (optimization) -- `d4d3fbd` Do not flush the cache after every block outside of IBD (optimization) -- `ad08d0b` Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache -- `5734d4d` Only remove actualy failed blocks from setBlockIndexValid -- `d70bc52` Rework block processing benchmark code -- `714a3e6` Only keep setBlockIndexValid entries that are possible improvements -- `ea100c7` Reduce maximum coinscache size during verification (reduce memory usage) -- `4fad8e6` Reject transactions with excessive numbers of sigops -- `b0875eb` Allow BatchWrite to destroy its input, reducing copying (optimization) -- `92bb6f2` Bypass reloading blocks from disk (optimization) -- `2e28031` Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage) -- `ab15b2e` Avoid copying undo data (optimization) -- `341735e` Headers-first synchronization -- `afc32c5` Fix rebuild-chainstate feature and improve its performance -- `e11b2ce` Fix large reorgs -- `ed6d1a2` Keep information about all block files in memory -- `a48f2d6` Abstract context-dependent block checking from acceptance -- `7e615f5` Fixed mempool sync after sending a transaction -- `51ce901` Improve chainstate/blockindex disk writing policy -- `a206950` Introduce separate flushing modes -- `9ec75c5` Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true -- `868d041` Remove coinbase-dependant transactions during reorg -- `723d12c` Remove txn which are invalidated by coinbase maturity during reorg -- `0cb8763` Check against MANDATORY flags prior to accepting to mempool -- `8446262` Reject headers that build on an invalid parent -- `008138c` Bugfix: only track UTXO modification after lookup - -P2P protocol and network code: -- `f80cffa` Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails -- `c30329a` Add testnet DNS seed of Alex Kotenko -- `45a4baf` Add testnet DNS seed of Andreas Schildbach -- `f1920e8` Ping automatically every 2 minutes (unconditionally) -- `806fd19` Allocate receive buffers in on the fly -- `6ecf3ed` Display unknown commands received -- `aa81564` Track peers' available blocks -- `caf6150` Use async name resolving to improve net thread responsiveness -- `9f4da19` Use pong receive time rather than processing time -- `0127a9b` remove SOCKS4 support from core and GUI, use SOCKS5 -- `40f5cb8` Send rejects and apply DoS scoring for errors in direct block validation -- `dc942e6` Introduce whitelisted peers -- `c994d2e` prevent SOCKET leak in BindListenPort() -- `a60120e` Add built-in seeds for .onion -- `60dc8e4` Allow -onlynet=onion to be used -- `3a56de7` addrman: Do not propagate obviously poor addresses onto the network -- `6050ab6` netbase: Make SOCKS5 negotiation interruptible -- `604ee2a` Remove tx from AlreadyAskedFor list once we receive it, not when we process it -- `efad808` Avoid reject message feedback loops -- `71697f9` Separate protocol versioning from clientversion -- `20a5f61` Don't relay alerts to peers before version negotiation -- `b4ee0bd` Introduce preferred download peers -- `845c86d` Do not use third party services for IP detection -- `12a49ca` Limit the number of new addressses to accumulate -- `35e408f` Regard connection failures as attempt for addrman -- `a3a7317` Introduce 10 minute block download timeout -- `3022e7d` Require sufficent priority for relay of free transactions -- `58fda4d` Update seed IPs, based on bitcoin.sipa.be crawler data -- `18021d0` Remove bitnodes.io from dnsseeds. - -Validation: -- `6fd7ef2` Also switch the (unused) verification code to low-s instead of even-s -- `584a358` Do merkle root and txid duplicates check simultaneously -- `217a5c9` When transaction outputs exceed inputs, show the offending amounts so as to aid debugging -- `f74fc9b` Print input index when signature validation fails, to aid debugging -- `6fd59ee` script.h: set_vch() should shift a >32 bit value -- `d752ba8` Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only) -- `698c6ab` Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only) -- `ab9edbd` script: create sane error return codes for script validation and remove logging -- `219a147` script: check ScriptError values in script tests -- `0391423` Discourage NOPs reserved for soft-fork upgrades -- `98b135f` Make STRICTENC invalid pubkeys fail the script rather than the opcode -- `307f7d4` Report script evaluation failures in log and reject messages -- `ace39db` consensus: guard against openssl's new strict DER checks -- `12b7c44` Improve robustness of DER recoding code -- `76ce5c8` fail immediately on an empty signature - -Build system: -- `f25e3ad` Fix build in OS X 10.9 -- `65e8ba4` build: Switch to non-recursive make -- `460b32d` build: fix broken boost chrono check on some platforms -- `9ce0774` build: Fix windows configure when using --with-qt-libdir -- `ea96475` build: Add mention of --disable-wallet to bdb48 error messages -- `1dec09b` depends: add shared dependency builder -- `c101c76` build: Add --with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix -- `e432a5f` build: add option for reducing exports (v2) -- `6134b43` Fixing condition 'sabotaging' MSVC build -- `af0bd5e` osx: fix signing to make Gatekeeper happy (again) -- `a7d1f03` build: fix dynamic boost check when --with-boost= is used -- `d5fd094` build: fix qt test build when libprotobuf is in a non-standard path -- `2cf5f16` Add libbitcoinconsensus library -- `914868a` build: add a deterministic dmg signer -- `2d375fe` depends: bump openssl to 1.0.1k -- `b7a4ecc` Build: Only check for boost when building code that requires it - -Wallet: -- `b33d1f5` Use fee/priority estimates in wallet CreateTransaction -- `4b7b1bb` Sanity checks for estimates -- `c898846` Add support for watch-only addresses -- `d5087d1` Use script matching rather than destination matching for watch-only -- `d88af56` Fee fixes -- `a35b55b` Dont run full check every time we decrypt wallet -- `3a7c348` Fix make_change to not create half-satoshis -- `f606bb9` fix a possible memory leak in CWalletDB::Recover -- `870da77` fix possible memory leaks in CWallet::EncryptWallet -- `ccca27a` Watch-only fixes -- `9b1627d` [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis -- `a53fd41` Deterministic signing -- `15ad0b5` Apply AreSane() checks to the fees from the network -- `11855c1` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option - -GUI: -- `c21c74b` osx: Fix missing dock menu with qt5 -- `b90711c` Fix Transaction details shows wrong To: -- `516053c` Make links in 'About Bitcoin Core' clickable -- `bdc83e8` Ensure payment request network matches client network -- `65f78a1` Add GUI view of peer information -- `06a91d9` VerifyDB progress reporting -- `fe6bff2` Add BerkeleyDB version info to RPCConsole -- `b917555` PeerTableModel: Fix potential deadlock. #4296 -- `dff0e3b` Improve rpc console history behavior -- `95a9383` Remove CENT-fee-rule from coin control completely -- `56b07d2` Allow setting listen via GUI -- `d95ba75` Log messages with type>QtDebugMsg as non-debug -- `8969828` New status bar Unit Display Control and related changes -- `674c070` seed OpenSSL PNRG with Windows event data -- `509f926` Payment request parsing on startup now only changes network if a valid network name is specified -- `acd432b` Prevent balloon-spam after rescan -- `7007402` Implement SI-style (thin space) thoudands separator -- `91cce17` Use fixed-point arithmetic in amount spinbox -- `bdba2dd` Remove an obscure option no-one cares about -- `bd0aa10` Replace the temporary file hack currently used to change Bitcoin-Qt's dock icon (OS X) with a buffer-based solution -- `94e1b9e` Re-work overviewpage UI -- `8bfdc9a` Better looking trayicon -- `b197bf3` disable tray interactions when client model set to 0 -- `1c5f0af` Add column Watch-only to transactions list -- `21f139b` Fix tablet crash. closes #4854 -- `e84843c` Broken addresses on command line no longer trigger testnet -- `a49f11d` Change splash screen to normal window -- `1f9be98` Disable App Nap on OSX 10.9+ -- `27c3e91` Add proxy to options overridden if necessary -- `4bd1185` Allow "emergency" shutdown during startup -- `d52f072` Don't show wallet options in the preferences menu when running with -disablewallet -- `6093aa1` Qt: QProgressBar CPU-Issue workaround -- `0ed9675` [Wallet] Add global boolean whether to send free transactions (default=true) -- `ed3e5e4` [Wallet] Add global boolean whether to pay at least the custom fee (default=true) -- `e7876b2` [Wallet] Prevent user from paying a non-sense fee -- `c1c9d5b` Add Smartfee to GUI -- `e0a25c5` Make askpassphrase dialog behave more sanely -- `94b362d` On close of splashscreen interrupt verifyDB -- `b790d13` English translation update -- `8543b0d` Correct tooltip on address book page - -Tests: -- `b41e594` Fix script test handling of empty scripts -- `d3a33fc` Test CHECKMULTISIG with m == 0 and n == 0 -- `29c1749` Let tx (in)valid tests use any SCRIPT_VERIFY flag -- `6380180` Add rejection of non-null CHECKMULTISIG dummy values -- `21bf3d2` Add tests for BoostAsioToCNetAddr -- `b5ad5e7` Add Python test for -rpcbind and -rpcallowip -- `9ec0306` Add CODESEPARATOR/FindAndDelete() tests -- `75ebced` Added many rpc wallet tests -- `0193fb8` Allow multiple regression tests to run at once -- `92a6220` Hook up sanity checks -- `3820e01` Extend and move all crypto tests to crypto_tests.cpp -- `3f9a019` added list/get received by address/ account tests -- `a90689f` Remove timing-based signature cache unit test -- `236982c` Add skiplist unit tests -- `f4b00be` Add CChain::GetLocator() unit test -- `b45a6e8` Add test for getblocktemplate longpolling -- `cdf305e` Set -discover=0 in regtest framework -- `ed02282` additional test for OP_SIZE in script_valid.json -- `0072d98` script tests: BOOLAND, BOOLOR decode to integer -- `833ff16` script tests: values that overflow to 0 are true -- `4cac5db` script tests: value with trailing 0x00 is true -- `89101c6` script test: test case for 5-byte bools -- `d2d9dc0` script tests: add tests for CHECKMULTISIG limits -- `d789386` Add "it works" test for bitcoin-tx -- `df4d61e` Add bitcoin-tx tests -- `aa41ac2` Test IsPushOnly() with invalid push -- `6022b5d` Make `script_{valid,invalid}.json` validation flags configurable -- `8138cbe` Add automatic script test generation, and actual checksig tests -- `ed27e53` Add coins_tests with a large randomized CCoinViewCache test -- `9df9cf5` Make SCRIPT_VERIFY_STRICTENC compatible with BIP62 -- `dcb9846` Extend getchaintips RPC test -- `554147a` Ensure MINIMALDATA invalid tests can only fail one way -- `dfeec18` Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule -- `2b62e17` Clearly separate PUSHDATA and numeric argument MINIMALDATA tests -- `16d78bd` Add valid invert of invalid every numeric opcode tests -- `f635269` tests: enable alertnotify test for Windows -- `7a41614` tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment -- `5122ea7` tests: fix forknotify.py on windows -- `fa7f8cd` tests: remove old pull-tester scripts -- `7667850` tests: replace the old (unused since Travis) tests with new rpc test scripts -- `f4e0aef` Do signature-s negation inside the tests -- `1837987` Optimize -regtest setgenerate block generation -- `2db4c8a` Fix node ranges in the test framework -- `a8b2ce5` regression test only setmocktime RPC call -- `daf03e7` RPC tests: create initial chain with specific timestamps -- `8656dbb` Port/fix txnmall.sh regression test -- `ca81587` Test the exact order of CHECKMULTISIG sig/pubkey evaluation -- `7357893` Prioritize and display -testsafemode status in UI -- `f321d6b` Add key generation/verification to ECC sanity check -- `132ea9b` miner_tests: Disable checkpoints so they don't fail the subsidy-change test -- `bc6cb41` QA RPC tests: Add tests block block proposals -- `f67a9ce` Use deterministically generated script tests -- `11d7a7d` [RPC] add rpc-test for http keep-alive (persistent connections) -- `34318d7` RPC-test based on invalidateblock for mempool coinbase spends -- `76ec867` Use actually valid transactions for script tests -- `c8589bf` Add actual signature tests -- `e2677d7` Fix smartfees test for change to relay policy -- `263b65e` tests: run sanity checks in tests too - -Miscellaneous: -- `122549f` Fix incorrect checkpoint data for testnet3 -- `5bd02cf` Log used config file to debug.log on startup -- `68ba85f` Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments -- `e5ee8f0` Remove -beta suffix -- `38405ac` Add comment regarding experimental-use service bits -- `be873f6` Issue warning if collecting RandSeed data failed -- `8ae973c` Allocate more space if necessary in RandSeedAddPerfMon -- `675bcd5` Correct comment for 15-of-15 p2sh script size -- `fda3fed` libsecp256k1 integration -- `2e36866` Show nodeid instead of addresses in log (for anonymity) unless otherwise requested -- `cd01a5e` Enable paranoid corruption checks in LevelDB >= 1.16 -- `9365937` Add comment about never updating nTimeOffset past 199 samples -- `403c1bf` contrib: remove getwork-based pyminer (as getwork API call has been removed) -- `0c3e101` contrib: Added systemd .service file in order to help distributions integrate bitcoind -- `0a0878d` doc: Add new DNSseed policy -- `2887bff` Update coding style and add .clang-format -- `5cbda4f` Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope -- `b4a72a7` contrib/linearize: split output files based on new-timestamp-year or max-file-size -- `e982b57` Use explicit fflush() instead of setvbuf() -- `234bfbf` contrib: Add init scripts and docs for Upstart and OpenRC -- `01c2807` Add warning about the merkle-tree algorithm duplicate txid flaw -- `d6712db` Also create pid file in non-daemon mode -- `772ab0e` contrib: use batched JSON-RPC in linarize-hashes (optimization) -- `7ab4358` Update bash-completion for v0.10 -- `6e6a36c` contrib: show pull # in prompt for github-merge script -- `5b9f842` Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293) -- `4e7c219` Catch UTXO set read errors and shutdown -- `867c600` Catch LevelDB errors during flush -- `06ca065` Fix CScriptID(const CScript& in) in empty script case - -Credits -======= - -Thanks to everyone who contributed to this release: - -- 21E14 -- Adam Weiss -- Aitor Pazos -- Alexander Jeng -- Alex Morcos -- Alon Muroch -- Andreas Schildbach -- Andrew Poelstra -- Andy Alness -- Ashley Holman -- Benedict Chan -- Ben Holden-Crowther -- Bryan Bishop -- BtcDrak -- Christian von Roques -- Clinton Christian -- Cory Fields -- Cozz Lovan -- daniel -- Daniel Kraft -- David Hill -- Derek701 -- dexX7 -- dllud -- Dominyk Tiller -- Doug -- elichai -- elkingtowa -- ENikS -- Eric Shaw -- Federico Bond -- Francis GASCHET -- Gavin Andresen -- Giuseppe Mazzotta -- Glenn Willen -- Gregory Maxwell -- gubatron -- HarryWu -- himynameismartin -- Huang Le -- Ian Carroll -- imharrywu -- Jameson Lopp -- Janusz Lenar -- JaSK -- Jeff Garzik -- JL2035 -- Johnathan Corgan -- Jonas Schnelli -- jtimon -- Julian Haight -- Kamil Domanski -- kazcw -- kevin -- kiwigb -- Kosta Zertsekel -- LongShao007 -- Luke Dashjr -- Mark Friedenbach -- Mathy Vanvoorden -- Matt Corallo -- Matthew Bogosian -- Micha -- Michael Ford -- Mike Hearn -- mrbandrews -- mruddy -- ntrgn -- Otto Allmendinger -- paveljanik -- Pavel Vasin -- Peter Todd -- phantomcircuit -- Philip Kaufmann -- Pieter Wuille -- pryds -- randy-waterhouse -- R E Broadley -- Rose Toomey -- Ross Nicoll -- Roy Badami -- Ruben Dario Ponticelli -- Rune K. Svendsen -- Ryan X. Charles -- Saivann -- sandakersmann -- SergioDemianLerner -- shshshsh -- sinetek -- Stuart Cardall -- Suhas Daftuar -- Tawanda Kembo -- Teran McKinney -- tm314159 -- Tom Harding -- Trevin Hofmann -- Whit J -- Wladimir J. van der Laan -- Yoichi Hirai -- Zak Wilcox - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). - diff --git a/doc/release-notes/release-notes-0.10.1.md b/doc/release-notes/release-notes-0.10.1.md deleted file mode 100644 index 8f59f1f68c690..0000000000000 --- a/doc/release-notes/release-notes-0.10.1.md +++ /dev/null @@ -1,143 +0,0 @@ -Bitcoin Core version 0.10.1 is now available from: - - - -This is a new minor version release, bringing bug fixes and translation -updates. It is recommended to upgrade to this version. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - -Notable changes -=============== - -This is a minor release and hence there are no notable changes. -For the notable changes in 0.10, refer to the release notes for the -0.10.0 release at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md - -0.10.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect external -behavior, not code moves, refactors or string updates. - -RPC: -- `7f502be` fix crash: createmultisig and addmultisigaddress -- `eae305f` Fix missing lock in submitblock - -Block (database) and transaction handling: -- `1d2cdd2` Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates -- `c91c660` fix InvalidateBlock to repopulate setBlockIndexCandidates -- `002c8a2` fix possible block db breakage during re-index -- `a1f425b` Add (optional) consistency check for the block chain data structures -- `1c62e84` Keep mempool consistent during block-reorgs -- `57d1f46` Fix CheckBlockIndex for reindex -- `bac6fca` Set nSequenceId when a block is fully linked - -P2P protocol and network code: -- `78f64ef` don't trickle for whitelisted nodes -- `ca301bf` Reduce fingerprinting through timestamps in 'addr' messages. -- `200f293` Ignore getaddr messages on Outbound connections. -- `d5d8998` Limit message sizes before transfer -- `aeb9279` Better fingerprinting protection for non-main-chain getdatas. -- `cf0218f` Make addrman's bucket placement deterministic (countermeasure 1 against eclipse attacks, see http://cs-people.bu.edu/heilman/eclipse/) -- `0c6f334` Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks) -- `214154e` Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks) -- `aa587d4` Scale up addrman (countermeasure 6 against eclipse attacks) -- `139cd81` Cap nAttempts penalty at 8 and switch to pow instead of a division loop - -Validation: -- `d148f62` Acquire CCheckQueue's lock to avoid race condition - -Build system: -- `8752b5c` 0.10 fix for crashes on OSX 10.6 - -Wallet: -- N/A - -GUI: -- `2c08406` some mac specifiy cleanup (memory handling, unnecessary code) -- `81145a6` fix OSX dock icon window reopening -- `786cf72` fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) - -Tests: -- `1117378` add RPC test for InvalidateBlock - -Miscellaneous: -- `c9e022b` Initialization: set Boost path locale in main thread -- `23126a0` Sanitize command strings before logging them. -- `323de27` Initialization: setup environment before starting Qt tests -- `7494e09` Initialization: setup environment before starting tests -- `df45564` Initialization: set fallback locale as environment variable - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Alex Morcos -- Cory Fields -- dexX7 -- fsb4000 -- Gavin Andresen -- Gregory Maxwell -- Ivan Pustogarov -- Jonas Schnelli -- Matt Corallo -- mrbandrews -- Pieter Wuille -- Ruben de Vries -- Suhas Daftuar -- Wladimir J. van der Laan - -And all those who contributed additional code review and/or security research: -- 21E14 -- Alison Kendler -- Aviv Zohar -- Ethan Heilman -- Evil-Knievel -- fanquake -- Jeff Garzik -- Jonas Nick -- Luke Dashjr -- Patrick Strateman -- Philip Kaufmann -- Sergio Demian Lerner -- Sharon Goldberg - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.10.2.md b/doc/release-notes/release-notes-0.10.2.md deleted file mode 100644 index 192ed69d29981..0000000000000 --- a/doc/release-notes/release-notes-0.10.2.md +++ /dev/null @@ -1,86 +0,0 @@ -Bitcoin Core version 0.10.2 is now available from: - - - -This is a new minor version release, bringing minor bug fixes and translation -updates. It is recommended to upgrade to this version. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - -Notable changes -=============== - -This fixes a serious problem on Windows with data directories that have non-ASCII -characters (https://github.com/bitcoin/bitcoin/issues/6078). - -For other platforms there are no notable changes. - -For the notable changes in 0.10, refer to the release notes -at https://github.com/bitcoin/bitcoin/blob/v0.10.0/doc/release-notes.md - -0.10.2 Change log -================= - -Detailed release notes follow. This overview includes changes that affect external -behavior, not code moves, refactors or string updates. - -Wallet: -- `824c011` fix boost::get usage with boost 1.58 - -Miscellaneous: -- `da65606` Avoid crash on start in TestBlockValidity with gen=1. -- `424ae66` don't imbue boost::filesystem::path with locale "C" on windows (fixes #6078) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Cory Fields -- Gregory Maxwell -- Jonas Schnelli -- Wladimir J. van der Laan - -And all those who contributed additional code review and/or security research: - -- dexX7 -- Pieter Wuille -- vayvanne - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.10.3.md b/doc/release-notes/release-notes-0.10.3.md deleted file mode 100644 index 8a110e562c453..0000000000000 --- a/doc/release-notes/release-notes-0.10.3.md +++ /dev/null @@ -1,165 +0,0 @@ -Bitcoin Core version 0.10.3 is now available from: - - - -This is a new minor version release, bringing security fixes and translation -updates. It is recommended to upgrade to this version as soon as possible. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - -Notable changes -=============== - -Fix buffer overflow in bundled upnp ------------------------------------- - -Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in -the XML parser during initial network discovery. - -Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/ - -This applies to the distributed executables only, not when building from source or -using distribution provided packages. - -Additionally, upnp has been disabled by default. This may result in a lower -number of reachable nodes on IPv4, however this prevents future libupnpc -vulnerabilities from being a structural risk to the network -(see https://github.com/bitcoin/bitcoin/pull/6795). - -Test for LowS signatures before relaying ------------------------------------------ - -Make the node require the canonical 'low-s' encoding for ECDSA signatures when -relaying or mining. This removes a nuisance malleability vector. - -Consensus behavior is unchanged. - -If widely deployed this change would eliminate the last remaining known vector -for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side -it will block most transactions made by sufficiently out of date software. - -Unlike the other avenues to change txids on transactions this -one was randomly violated by all deployed bitcoin software prior to -its discovery. So, while other malleability vectors where made -non-standard as soon as they were discovered, this one has remained -permitted. Even BIP62 did not propose applying this rule to -old version transactions, but conforming implementations have become -much more common since BIP62 was initially written. - -Bitcoin Core has produced compatible signatures since a28fb70e in -September 2013, but this didn't make it into a release until 0.9 -in March 2014; Bitcoinj has done so for a similar span of time. -Bitcoinjs and electrum have been more recently updated. - -This does not replace the need for BIP62 or similar, as miners can -still cooperate to break transactions. Nor does it replace the -need for wallet software to handle malleability sanely[1]. This -only eliminates the cheap and irritating DOS attack. - -[1] On the Malleability of Bitcoin Transactions -Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek -http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf - -Minimum relay fee default increase ------------------------------------ - -The default for the `-minrelaytxfee` setting has been increased from `0.00001` -to `0.00005`. - -This is necessitated by the current transaction flooding, causing -outrageous memory usage on nodes due to the mempool ballooning. This is a -temporary measure, bridging the time until a dynamic method for determining -this fee is merged (which will be in 0.12). - -(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11.0 -release notes, in which this value was suggested) - -0.10.3 Change log -================= - -Detailed release notes follow. This overview includes changes that affect external -behavior, not code moves, refactors or string updates. - -- #6186 `e4a7d51` Fix two problems in CSubnet parsing -- #6153 `ebd7d8d` Parameter interaction: disable upnp if -proxy set -- #6203 `ecc96f5` Remove P2SH coinbase flag, no longer interesting -- #6226 `181771b` json: fail read_string if string contains trailing garbage -- #6244 `09334e0` configure: Detect (and reject) LibreSSL -- #6276 `0fd8464` Fix getbalance * 0 -- #6274 `be64204` Add option `-alerts` to opt out of alert system -- #6319 `3f55638` doc: update mailing list address -- #6438 `7e66e9c` openssl: avoid config file load/race -- #6439 `255eced` Updated URL location of netinstall for Debian -- #6412 `0739e6e` Test whether created sockets are select()able -- #6694 `f696ea1` [QT] fix thin space word wrap line brake issue -- #6704 `743cc9e` Backport bugfixes to 0.10 -- #6769 `1cea6b0` Test LowS in standardness, removes nuisance malleability vector. -- #6789 `093d7b5` Update miniupnpc to 1.9.20151008 -- #6795 `f2778e0` net: Disable upnp by default -- #6797 `91ef4d9` Do not store more than 200 timedata samples -- #6793 `842c48d` Bump minrelaytxfee default - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Adam Weiss -- Alex Morcos -- Casey Rodarmor -- Cory Fields -- fanquake -- Gregory Maxwell -- Jonas Schnelli -- J Ross Nicoll -- Luke Dashjr -- Pavel Vasin -- Pieter Wuille -- randy-waterhouse -- ฿tcDrak -- Tom Harding -- Veres Lajos -- Wladimir J. van der Laan - -And all those who contributed additional code review and/or security research: - -- timothy on IRC for reporting the issue -- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.10.4.md b/doc/release-notes/release-notes-0.10.4.md deleted file mode 100644 index 38a2c1347d0b8..0000000000000 --- a/doc/release-notes/release-notes-0.10.4.md +++ /dev/null @@ -1,172 +0,0 @@ -Bitcoin Core version 0.10.4 is now available from: - - - -This is a new minor version release, bringing bug fixes, the BIP65 -(CLTV) consensus change, and relay policy preparation for BIP113. It is -recommended to upgrade to this version as soon as possible. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. There are no -known problems when downgrading from 0.11.x to 0.10.x. - -Notable changes since 0.10.3 -============================ - -BIP65 soft fork to enforce OP_CHECKLOCKTIMEVERIFY opcode --------------------------------------------------------- - -This release includes several changes related to the [BIP65][] soft fork -which redefines the existing OP_NOP2 opcode as OP_CHECKLOCKTIMEVERIFY -(CLTV) so that a transaction output can be made unspendable until a -specified point in the future. - -1. This release will only relay and mine transactions spending a CLTV - output if they comply with the BIP65 rules as provided in code. - -2. This release will produce version 4 blocks by default. Please see the - *notice to miners* below. - -3. Once 951 out of a sequence of 1,001 blocks on the local node's best block - chain contain version 4 (or higher) blocks, this release will no - longer accept new version 3 blocks and it will only accept version 4 - blocks if they comply with the BIP65 rules for CLTV. - -For more information about the soft-forking change, please see - - -Graphs showing the progress towards block version 4 adoption may be -found at the URLs below: - -- Block versions over the last 50,000 blocks as progress towards BIP65 - consensus enforcement: - -- Block versions over the last 2,000 blocks showing the days to the - earliest possible BIP65 consensus-enforced block: - -**Notice to miners:** Bitcoin Core’s block templates are now for -version 4 blocks only, and any mining software relying on its -getblocktemplate must be updated in parallel to use libblkmaker either -version FIXME or any version from FIXME onward. - -- If you are solo mining, this will affect you the moment you upgrade - Bitcoin Core, which must be done prior to BIP65 achieving its 951/1001 - status. - -- If you are mining with the stratum mining protocol: this does not - affect you. - -- If you are mining with the getblocktemplate protocol to a pool: this - will affect you at the pool operator’s discretion, which must be no - later than BIP65 achieving its 951/1001 status. - -[BIP65]: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki - -Windows bug fix for corrupted UTXO database on unclean shutdowns ----------------------------------------------------------------- - -Several Windows users reported that they often need to reindex the -entire blockchain after an unclean shutdown of Bitcoin Core on Windows -(or an unclean shutdown of Windows itself). Although unclean shutdowns -remain unsafe, this release no longer relies on memory-mapped files for -the UTXO database, which significantly reduced the frequency of unclean -shutdowns leading to required reindexes during testing. - -For more information, see: - -Other fixes for database corruption on Windows are expected in the -next major release. - -0.10.4 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -- #6953 `8b3311f` alias -h for --help -- #6953 `97546fc` Change URLs to https in debian/control -- #6953 `38671bf` Update debian/changelog and slight tweak to debian/control -- #6953 `256321e` Correct spelling mistakes in doc folder -- #6953 `eae0350` Clarification of unit test build instructions -- #6953 `90897ab` Update bluematt-key, the old one is long-since revoked -- #6953 `a2f2fb6` build: disable -Wself-assign -- #6953 `cf67d8b` Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) -- #6953 `b3964e3` Drop "with minimal dependencies" from description -- #6953 `43c2789` Split bitcoin-tx into its own package -- #6953 `dfe0d4d` Include bitcoin-tx binary on Debian/Ubuntu -- #6953 `612efe8` [Qt] Raise debug window when requested -- #6953 `3ad96bd` Fix locking in GetTransaction -- #6953 `9c81005` Fix spelling of Qt -- #6946 `94b67e5` Update LevelDB -- #6706 `5dc72f8` CLTV: Add more tests to improve coverage -- #6706 `6a1343b` Add RPC tests for the CHECKLOCKTIMEVERIFY (BIP65) soft-fork -- #6706 `4137248` Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic -- #6706 `0e01d0f` Enable CHECKLOCKTIMEVERIFY as a standard script verify flag -- #6706 `6d01325` Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65) -- #6706 `750d54f` Move LOCKTIME_THRESHOLD to src/script/script.h -- #6706 `6897468` Make CScriptNum() take nMaxNumSize as an argument -- #6867 `5297194` Set TCP_NODELAY on P2P sockets -- #6836 `fb818b6` Bring historical release notes up to date -- #6852 `0b3fd07` build: make sure OpenSSL heeds noexecstack - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Alex Morcos -- Daniel Cousens -- Diego Viola -- Eric Lombrozo -- Esteban Ordano -- Gregory Maxwell -- Luke Dashjr -- MarcoFalke -- Matt Corallo -- Micha -- Mitchell Cash -- Peter Todd -- Pieter Wuille -- Wladimir J. van der Laan -- Zak Wilcox - -And those who contributed additional code review and/or security research. - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.11.0.md b/doc/release-notes/release-notes-0.11.0.md deleted file mode 100644 index 28e49fb7ea648..0000000000000 --- a/doc/release-notes/release-notes-0.11.0.md +++ /dev/null @@ -1,505 +0,0 @@ -Bitcoin Core version 0.11.0 is now available from: - - - -This is a new major version release, bringing both new features and -bug fixes. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. There are no -known problems when downgrading from 0.11.x to 0.10.x. - -Important information -====================== - -Transaction flooding ---------------------- - -At the time of this release, the P2P network is being flooded with low-fee -transactions. This causes a ballooning of the mempool size. - -If this growth of the mempool causes problematic memory use on your node, it is -possible to change a few configuration options to work around this. The growth -of the mempool can be monitored with the RPC command `getmempoolinfo`. - -One is to increase the minimum transaction relay fee `minrelaytxfee`, which -defaults to 0.00001. This will cause transactions with fewer BTC/kB fee to be -rejected, and thus fewer transactions entering the mempool. - -The other is to restrict the relaying of free transactions with -`limitfreerelay`. This option sets the number of kB/minute at which -free transactions (with enough priority) will be accepted. It defaults to 15. -Reducing this number reduces the speed at which the mempool can grow due -to free transactions. - -For example, add the following to `bitcoin.conf`: - - minrelaytxfee=0.00005 - limitfreerelay=5 - -More robust solutions are being worked on for a follow-up release. - -Notable changes -=============== - -Block file pruning ----------------------- - -This release supports running a fully validating node without maintaining a copy -of the raw block and undo data on disk. To recap, there are four types of data -related to the blockchain in the bitcoin system: the raw blocks as received over -the network (blk???.dat), the undo data (rev???.dat), the block index and the -UTXO set (both LevelDB databases). The databases are built from the raw data. - -Block pruning allows Bitcoin Core to delete the raw block and undo data once -it's been validated and used to build the databases. At that point, the raw data -is used only to relay blocks to other nodes, to handle reorganizations, to look -up old transactions (if -txindex is enabled or via the RPC/REST interfaces), or -for rescanning the wallet. The block index continues to hold the metadata about -all blocks in the blockchain. - -The user specifies how much space to allot for block & undo files. The minimum -allowed is 550MB. Note that this is in addition to whatever is required for the -block index and UTXO databases. The minimum was chosen so that Bitcoin Core will -be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 -minutes per block). In rare instances it is possible that the amount of space -used will exceed the pruning target in order to keep the required last 288 -blocks on disk. - -Block pruning works during initial sync in the same way as during steady state, -by deleting block files "as you go" whenever disk space is allocated. Thus, if -the user specifies 550MB, once that level is reached the program will begin -deleting the oldest block and undo files, while continuing to download the -blockchain. - -For now, block pruning disables block relay. In the future, nodes with block -pruning will at a minimum relay "new" blocks, meaning blocks that extend their -active chain. - -Block pruning is currently incompatible with running a wallet due to the fact -that block data is used for rescanning the wallet and importing keys or -addresses (which require a rescan.) However, running the wallet with block -pruning will be supported in the near future, subject to those limitations. - -Block pruning is also incompatible with -txindex and will automatically disable -it. - -Once you have pruned blocks, going back to unpruned state requires -re-downloading the entire blockchain. To do this, re-start the node with --reindex. Note also that any problem that would cause a user to reindex (e.g., -disk corruption) will cause a pruned node to redownload the entire blockchain. -Finally, note that when a pruned node reindexes, it will delete any blk???.dat -and rev???.dat files in the data directory prior to restarting the download. - -To enable block pruning on the command line: - -- `-prune=N`: where N is the number of MB to allot for raw block & undo data. - -Modified RPC calls: - -- `getblockchaininfo` now includes whether we are in pruned mode or not. -- `getblock` will check if the block's data has been pruned and if so, return an -error. -- `getrawtransaction` will no longer be able to locate a transaction that has a -UTXO but where its block file has been pruned. - -Pruning is disabled by default. - -Big endian support --------------------- - -Experimental support for big-endian CPU architectures was added in this -release. All little-endian specific code was replaced with endian-neutral -constructs. This has been tested on at least MIPS and PPC hosts. The build -system will automatically detect the endianness of the target. - -Memory usage optimization --------------------------- - -There have been many changes in this release to reduce the default memory usage -of a node, among which: - -- Accurate UTXO cache size accounting (#6102); this makes the option `-dbcache` - precise where this grossly underestimated memory usage before -- Reduce size of per-peer data structure (#6064 and others); this increases the - number of connections that can be supported with the same amount of memory -- Reduce the number of threads (#5964, #5679); lowers the amount of (esp. - virtual) memory needed - -Fee estimation changes ----------------------- - -This release improves the algorithm used for fee estimation. Previously, -1 -was returned when there was insufficient data to give an estimate. Now, -1 -will also be returned when there is no fee or priority high enough for the -desired confirmation target. In those cases, it can help to ask for an estimate -for a higher target number of blocks. It is not uncommon for there to be no -fee or priority high enough to be reliably (85%) included in the next block and -for this reason, the default for `-txconfirmtarget=n` has changed from 1 to 2. - -Privacy: Disable wallet transaction broadcast ----------------------------------------------- - -This release adds an option `-walletbroadcast=0` to prevent automatic -transaction broadcast and rebroadcast (#5951). This option allows separating -transaction submission from the node functionality. - -Making use of this, third-party scripts can be written to take care of -transaction (re)broadcast: - -- Send the transaction as normal, either through RPC or the GUI -- Retrieve the transaction data through RPC using `gettransaction` (NOT - `getrawtransaction`). The `hex` field of the result will contain the raw - hexadecimal representation of the transaction -- The transaction can then be broadcasted through arbitrary mechanisms - supported by the script - -One such application is selective Tor usage, where the node runs on the normal -internet but transactions are broadcasted over Tor. - -For an example script see [bitcoin-submittx](https://github.com/laanwj/bitcoin-submittx). - -Privacy: Stream isolation for Tor ----------------------------------- - -This release adds functionality to create a new circuit for every peer -connection, when the software is used with Tor. The new option, -`-proxyrandomize`, is on by default. - -When enabled, every outgoing connection will (potentially) go through a -different exit node. That significantly reduces the chance to get unlucky and -pick a single exit node that is either malicious, or widely banned from the P2P -network. This improves connection reliability as well as privacy, especially -for the initial connections. - -**Important note:** If a non-Tor SOCKS5 proxy is configured that supports -authentication, but doesn't require it, this change may cause that proxy to reject -connections. A user and password is sent where they weren't before. This setup -is exceedingly rare, but in this case `-proxyrandomize=0` can be passed to -disable the behavior. - -0.11.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and REST -- #5461 `5f7279a` signrawtransaction: validate private key -- #5444 `103f66b` Add /rest/headers//. -- #4964 `95ecc0a` Add scriptPubKey field to validateaddress RPC call -- #5476 `c986972` Add time offset into getpeerinfo output -- #5540 `84eba47` Add unconfirmed and immature balances to getwalletinfo -- #5599 `40e96a3` Get rid of the internal miner's hashmeter -- #5711 `87ecfb0` Push down RPC locks -- #5754 `1c4e3f9` fix getblocktemplate lock issue -- #5756 `5d901d8` Fix getblocktemplate_proposals test by mining one block -- #5548 `d48ce48` Add /rest/chaininfos -- #5992 `4c4f1b4` Push down RPC reqWallet flag -- #6036 `585b5db` Show zero value txouts in listunspent -- #5199 `6364408` Add RPC call `gettxoutproof` to generate and verify merkle blocks -- #5418 `16341cc` Report missing inputs in sendrawtransaction -- #5937 `40f5e8d` show script verification errors in signrawtransaction result -- #5420 `1fd2d39` getutxos REST command (based on Bip64) -- #6193 `42746b0` [REST] remove json input for getutxos, limit to query max. 15 outpoints -- #6226 `5901596` json: fail read_string if string contains trailing garbage - -### Configuration and command-line options -- #5636 `a353ad4` Add option `-allowselfsignedrootcertificate` to allow self signed root certs (for testing payment requests) -- #5900 `3e8a1f2` Add a consistency check `-checkblockindex` for the block chain data structures -- #5951 `7efc9cf` Make it possible to disable wallet transaction broadcast (using `-walletbroadcast=0`) -- #5911 `b6ea3bc` privacy: Stream isolation for Tor (on by default, use `-proxyrandomize=0` to disable) -- #5863 `c271304` Add autoprune functionality (`-prune=`) -- #6153 `0bcf04f` Parameter interaction: disable upnp if -proxy set -- #6274 `4d9c7fe` Add option `-alerts` to opt out of alert system - -### Block and transaction handling -- #5367 `dcc1304` Do all block index writes in a batch -- #5253 `203632d` Check against MANDATORY flags prior to accepting to mempool -- #5459 `4406c3e` Reject headers that build on an invalid parent -- #5481 `055f3ae` Apply AreSane() checks to the fees from the network -- #5580 `40d65eb` Preemptively catch a few potential bugs -- #5349 `f55c5e9` Implement test for merkle tree malleability in CPartialMerkleTree -- #5564 `a89b837` clarify obscure uses of EvalScript() -- #5521 `8e4578a` Reject non-final txs even in testnet/regtest -- #5707 `6af674e` Change hardcoded character constants to descriptive named constants for db keys -- #5286 `fcf646c` Change the default maximum OP_RETURN size to 80 bytes -- #5710 `175d86e` Add more information to errors in ReadBlockFromDisk -- #5948 `b36f1ce` Use GetAncestor to compute new target -- #5959 `a0bfc69` Add additional block index consistency checks -- #6058 `7e0e7f8` autoprune minor post-merge improvements -- #5159 `2cc1372` New fee estimation code -- #6102 `6fb90d8` Implement accurate UTXO cache size accounting -- #6129 `2a82298` Bug fix for clearing fCheckForPruning -- #5947 `e9af4e6` Alert if it is very likely we are getting a bad chain -- #6203 `c00ae64` Remove P2SH coinbase flag, no longer interesting -- #5985 `37b4e42` Fix removing of orphan transactions -- #6221 `6cb70ca` Prune: Support noncontiguous block files -- #6256 `fce474c` Use best header chain timestamps to detect partitioning -- #6233 `a587606` Advance pindexLastCommonBlock for blocks in chainActive - -### P2P protocol and network code -- #5507 `844ace9` Prevent DOS attacks on in-flight data structures -- #5770 `32a8b6a` Sanitize command strings before logging them -- #5859 `dd4ffce` Add correct bool combiner for net signals -- #5876 `8e4fd0c` Add a NODE_GETUTXO service bit and document NODE_NETWORK -- #6028 `b9311fb` Move nLastTry from CAddress to CAddrInfo -- #5662 `5048465` Change download logic to allow calling getdata on inbound peers -- #5971 `18d2832` replace absolute sleep with conditional wait -- #5918 `7bf5d5e` Use equivalent PoW for non-main-chain requests -- #6059 `f026ab6` chainparams: use SeedSpec6's rather than CAddress's for fixed seeds -- #6080 `31c0bf1` Add jonasschnellis dns seeder -- #5976 `9f7809f` Reduce download timeouts as blocks arrive -- #6172 `b4bbad1` Ignore getheaders requests when not synced -- #5875 `304892f` Be stricter in processing unrequested blocks -- #6333 `41bbc85` Hardcoded seeds update June 2015 - -### Validation -- #5143 `48e1765` Implement BIP62 rule 6 -- #5713 `41e6e4c` Implement BIP66 - -### Build system -- #5501 `c76c9d2` Add mips, mipsel and aarch64 to depends platforms -- #5334 `cf87536` libbitcoinconsensus: Add pkg-config support -- #5514 `ed11d53` Fix 'make distcheck' -- #5505 `a99ef7d` Build winshutdownmonitor.cpp on Windows only -- #5582 `e8a6639` Osx toolchain update -- #5684 `ab64022` osx: bump build sdk to 10.9 -- #5695 `23ef5b7` depends: latest config.guess and config.sub -- #5509 `31dedb4` Fixes when compiling in c++11 mode -- #5819 `f8e68f7` release: use static libstdc++ and disable reduced exports by default -- #5510 `7c3fbc3` Big endian support -- #5149 `c7abfa5` Add script to verify all merge commits are signed -- #6082 `7abbb7e` qt: disable qt tests when one of the checks for the gui fails -- #6244 `0401aa2` configure: Detect (and reject) LibreSSL -- #6269 `95aca44` gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures -- #6285 `ef1d506` Fix scheduler build with some boost versions. -- #6280 `25c2216` depends: fix Boost 1.55 build on GCC 5 -- #6303 `b711599` gitian: add a gitian-win-signer descriptor -- #6246 `8ea6d37` Fix build on FreeBSD -- #6282 `daf956b` fix crash on shutdown when e.g. changing -txindex and abort action -- #6354 `bdf0d94` Gitian windows signing normalization - -### Wallet -- #2340 `811c71d` Discourage fee sniping with nLockTime -- #5485 `d01bcc4` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option -- #5508 `9a5cabf` Add RandAddSeedPerfmon to MakeNewKey -- #4805 `8204e19` Do not flush the wallet in AddToWalletIfInvolvingMe(..) -- #5319 `93b7544` Clean up wallet encryption code -- #5831 `df5c246` Subtract fee from amount -- #6076 `6c97fd1` wallet: fix boost::get usage with boost 1.58 -- #5511 `23c998d` Sort pending wallet transactions before reaccepting -- #6126 `26e08a1` Change default nTxConfirmTarget to 2 -- #6183 `75a4d51` Fix off-by-one error w/ nLockTime in the wallet -- #6276 `c9fd907` Fix getbalance * 0 - -### GUI -- #5219 `f3af0c8` New icons -- #5228 `bb3c75b` HiDPI (retina) support for splash screen -- #5258 `73cbf0a` The RPC Console should be a QWidget to make window more independent -- #5488 `851dfc7` Light blue icon color for regtest -- #5547 `a39aa74` New icon for the debug window -- #5493 `e515309` Adopt style colour for button icons -- #5557 `70477a0` On close of splashscreen interrupt verifyDB -- #5559 `83be8fd` Make the command-line-args dialog better -- #5144 `c5380a9` Elaborate on signverify message dialog warning -- #5489 `d1aa3c6` Optimize PNG files -- #5649 `e0cd2f5` Use text-color icons for system tray Send/Receive menu entries -- #5651 `848f55d` Coin Control: Use U+2248 "ALMOST EQUAL TO" rather than a simple tilde -- #5626 `ab0d798` Fix icon sizes and column width -- #5683 `c7b22aa` add new osx dmg background picture -- #5620 `7823598` Payment request expiration bug fix -- #5729 `9c4a5a5` Allow unit changes for read-only BitcoinAmountField -- #5753 `0f44672` Add bitcoin logo to about screen -- #5629 `a956586` Prevent amount overflow problem with payment requests -- #5830 `215475a` Don't save geometry for options and about/help window -- #5793 `d26f0b2` Honor current network when creating autostart link -- #5847 `f238add` Startup script for centos, with documentation -- #5915 `5bd3a92` Fix a static qt5 crash when using certain versions of libxcb -- #5898 `bb56781` Fix rpc console font size to flexible metrics -- #5467 `bc8535b` Payment request / server work - part 2 -- #6161 `180c164` Remove movable option for toolbar -- #6160 `0d862c2` Overviewpage: make sure warning icons gets colored - -### Tests -- #5453 `2f2d337` Add ability to run single test manually to RPC tests -- #5421 `886eb57` Test unexecuted OP_CODESEPARATOR -- #5530 `565b300` Additional rpc tests -- #5611 `37b185c` Fix spurious windows test failures after 012598880c -- #5613 `2eda47b` Fix smartfees test for change to relay policy -- #5612 `e3f5727` Fix zapwallettxes test -- #5642 `30a5b5f` Prepare paymentservertests for new unit tests -- #5784 `e3a3cd7` Fix usage of NegateSignatureS in script_tests -- #5813 `ee9f2bf` Add unit tests for next difficulty calculations -- #5855 `d7989c0` Travis: run unit tests in different orders -- #5852 `cdae53e` Reinitialize state in between individual unit tests. -- #5883 `164d7b6` tests: add a BasicTestingSetup and apply to all tests -- #5940 `446bb70` Regression test for ResendWalletTransactions -- #6052 `cf7adad` fix and enable bip32 unit test -- #6039 `734f80a` tests: Error when setgenerate is used on regtest -- #6074 `948beaf` Correct the PUSHDATA4 minimal encoding test in script_invalid.json -- #6032 `e08886d` Stop nodes after RPC tests, even with --nocleanup -- #6075 `df1609f` Add additional script edge condition tests -- #5981 `da38dc6` Python P2P testing -- #5958 `9ef00c3` Add multisig rpc tests -- #6112 `fec5c0e` Add more script edge condition tests - -### Miscellaneous -- #5457, #5506, #5952, #6047 Update libsecp256k1 -- #5437 `84857e8` Add missing CAutoFile::IsNull() check in main -- #5490 `ec20fd7` Replace uint256/uint160 with opaque blobs where possible -- #5654, #5764 Adding jonasschnelli's GPG key -- #5477 `5f04d1d` OS X 10.10: LSSharedFileListItemResolve() is deprecated -- #5679 `beff11a` Get rid of DetectShutdownThread -- #5787 `9bd8c9b` Add fanquake PGP key -- #5366 `47a79bb` No longer check osx compatibility in RenameThread -- #5689 `07f4386` openssl: abstract out OPENSSL_cleanse -- #5708 `8b298ca` Add list of implemented BIPs -- #5809 `46bfbe7` Add bitcoin-cli man page -- #5839 `86eb461` keys: remove libsecp256k1 verification until it's actually supported -- #5749 `d734d87` Help messages correctly formatted (79 chars) -- #5884 `7077fe6` BUGFIX: Stack around the variable 'rv' was corrupted -- #5849 `41259ca` contrib/init/bitcoind.openrc: Compatibility with previous OpenRC init script variables -- #5950 `41113e3` Fix locale fallback and guard tests against invalid locale settings -- #5965 `7c6bfb1` Add git-subtree-check.sh script -- #6033 `1623f6e` FreeBSD, OpenBSD thread renaming -- #6064 `b46e7c2` Several changes to mruset -- #6104 `3e2559c` Show an init message while activating best chain -- #6125 `351f73e` Clean up parsing of bool command line args -- #5964 `b4c219b` Lightweight task scheduler -- #6116 `30dc3c1` [OSX] rename Bitcoin-Qt.app to Bitcoin-Core.app -- #6168 `b3024f0` contrib/linearize: Support linearization of testnet blocks -- #6098 `7708fcd` Update Windows resource files (and add one for bitcoin-tx) -- #6159 `e1412d3` Catch errors on datadir lock and pidfile delete -- #6186 `182686c` Fix two problems in CSubnet parsing -- #6174 `df992b9` doc: add translation strings policy -- #6210 `dfdb6dd` build: disable optional use of gmp in internal secp256k1 build -- #6264 `94cd705` Remove translation for -help-debug options -- #6286 `3902c15` Remove berkeley-db4 workaround in MacOSX build docs -- #6319 `3f8fcc9` doc: update mailing list address - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 21E14 -- Adam Weiss -- Alex Morcos -- ayeowch -- azeteki -- Ben Holden-Crowther -- bikinibabe -- BitcoinPRReadingGroup -- Blake Jakopovic -- BtcDrak -- charlescharles -- Chris Arnesen -- Ciemon -- CohibAA -- Corinne Dashjr -- Cory Fields -- Cozz Lovan -- Daira Hopwood -- Daniel Kraft -- Dave Collins -- David A. Harding -- dexX7 -- Earlz -- Eric Lombrozo -- Eric R. Schulz -- Everett Forth -- Flavien Charlon -- fsb4000 -- Gavin Andresen -- Gregory Maxwell -- Heath -- Ivan Pustogarov -- Jacob Welsh -- Jameson Lopp -- Jason Lewicki -- Jeff Garzik -- Jonas Schnelli -- Jonathan Brown -- Jorge Timón -- joshr -- jtimon -- Julian Yap -- Luca Venturini -- Luke Dashjr -- Manuel Araoz -- MarcoFalke -- Matt Bogosian -- Matt Corallo -- Micha -- Michael Ford -- Mike Hearn -- mrbandrews -- Nicolas Benoit -- paveljanik -- Pavel Janík -- Pavel Vasin -- Peter Todd -- Philip Kaufmann -- Pieter Wuille -- pstratem -- randy-waterhouse -- rion -- Rob Van Mieghem -- Ross Nicoll -- Ruben de Vries -- sandakersmann -- Shaul Kfir -- Shawn Wilkinson -- sinetek -- Suhas Daftuar -- svost -- Thomas Zander -- Tom Harding -- UdjinM6 -- Vitalii Demianets -- Wladimir J. van der Laan - -And all those who contributed additional code review and/or security research: - -- Sergio Demian Lerner - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). - diff --git a/doc/release-notes/release-notes-0.11.1.md b/doc/release-notes/release-notes-0.11.1.md deleted file mode 100644 index 799205691ed0f..0000000000000 --- a/doc/release-notes/release-notes-0.11.1.md +++ /dev/null @@ -1,172 +0,0 @@ -Bitcoin Core version 0.11.1 is now available from: - - - -This is a new minor version release, bringing security fixes. It is recommended -to upgrade to this version as soon as possible. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. There are no -known problems when downgrading from 0.11.x to 0.10.x. - -Notable changes -=============== - -Fix buffer overflow in bundled upnp ------------------------------------- - -Bundled miniupnpc was updated to 1.9.20151008. This fixes a buffer overflow in -the XML parser during initial network discovery. - -Details can be found here: http://talosintel.com/reports/TALOS-2015-0035/ - -This applies to the distributed executables only, not when building from source or -using distribution provided packages. - -Additionally, upnp has been disabled by default. This may result in a lower -number of reachable nodes on IPv4, however this prevents future libupnpc -vulnerabilities from being a structural risk to the network -(see https://github.com/bitcoin/bitcoin/pull/6795). - -Test for LowS signatures before relaying ------------------------------------------ - -Make the node require the canonical 'low-s' encoding for ECDSA signatures when -relaying or mining. This removes a nuisance malleability vector. - -Consensus behavior is unchanged. - -If widely deployed this change would eliminate the last remaining known vector -for nuisance malleability on SIGHASH_ALL P2PKH transactions. On the down-side -it will block most transactions made by sufficiently out of date software. - -Unlike the other avenues to change txids on transactions this -one was randomly violated by all deployed bitcoin software prior to -its discovery. So, while other malleability vectors where made -non-standard as soon as they were discovered, this one has remained -permitted. Even BIP62 did not propose applying this rule to -old version transactions, but conforming implementations have become -much more common since BIP62 was initially written. - -Bitcoin Core has produced compatible signatures since a28fb70e in -September 2013, but this didn't make it into a release until 0.9 -in March 2014; Bitcoinj has done so for a similar span of time. -Bitcoinjs and electrum have been more recently updated. - -This does not replace the need for BIP62 or similar, as miners can -still cooperate to break transactions. Nor does it replace the -need for wallet software to handle malleability sanely[1]. This -only eliminates the cheap and irritating DOS attack. - -[1] On the Malleability of Bitcoin Transactions -Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek -http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf - -Minimum relay fee default increase ------------------------------------ - -The default for the `-minrelaytxfee` setting has been increased from `0.00001` -to `0.00005`. - -This is necessitated by the current transaction flooding, causing -outrageous memory usage on nodes due to the mempool ballooning. This is a -temporary measure, bridging the time until a dynamic method for determining -this fee is merged (which will be in 0.12). - -(see https://github.com/bitcoin/bitcoin/pull/6793, as well as the 0.11 -release notes, in which this value was suggested) - -0.11.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -- #6438 `2531438` openssl: avoid config file load/race -- #6439 `980f820` Updated URL location of netinstall for Debian -- #6384 `8e5a969` qt: Force TLS1.0+ for SSL connections -- #6471 `92401c2` Depends: bump to qt 5.5 -- #6224 `93b606a` Be even stricter in processing unrequested blocks -- #6571 `100ac4e` libbitcoinconsensus: avoid a crash in multi-threaded environments -- #6545 `649f5d9` Do not store more than 200 timedata samples. -- #6694 `834e299` [QT] fix thin space word wrap line break issue -- #6703 `1cd7952` Backport bugfixes to 0.11 -- #6750 `5ed8d0b` Recent rejects backport to v0.11 -- #6769 `71cc9d9` Test LowS in standardness, removes nuisance malleability vector. -- #6789 `b4ad73f` Update miniupnpc to 1.9.20151008 -- #6785 `b4dc33e` Backport to v0.11: In (strCommand == "tx"), return if AlreadyHave() -- #6412 `0095b9a` Test whether created sockets are select()able -- #6795 `4dbcec0` net: Disable upnp by default -- #6793 `e7bcc4a` Bump minrelaytxfee default - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Adam Weiss -- Alex Morcos -- Casey Rodarmor -- Cory Fields -- fanquake -- Gregory Maxwell -- Jonas Schnelli -- J Ross Nicoll -- Luke Dashjr -- Pavel Janík -- Pavel Vasin -- Peter Todd -- Pieter Wuille -- randy-waterhouse -- Ross Nicoll -- Suhas Daftuar -- tailsjoin -- ฿tcDrak -- Tom Harding -- Veres Lajos -- Wladimir J. van der Laan - -And those who contributed additional code review and/or security research: - -- timothy on IRC for reporting the issue -- Vulnerability in miniupnp discovered by Aleksandar Nikolic of Cisco Talos - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). - diff --git a/doc/release-notes/release-notes-0.11.2.md b/doc/release-notes/release-notes-0.11.2.md deleted file mode 100644 index 2351b80656542..0000000000000 --- a/doc/release-notes/release-notes-0.11.2.md +++ /dev/null @@ -1,217 +0,0 @@ -Bitcoin Core version 0.11.2 is now available from: - - - -This is a new minor version release, bringing bug fixes, the BIP65 -(CLTV) consensus change, and relay policy preparation for BIP113. It is -recommended to upgrade to this version as soon as possible. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------- - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. There are no -known problems when downgrading from 0.11.x to 0.10.x. - -Notable changes since 0.11.1 -============================ - -BIP65 soft fork to enforce OP_CHECKLOCKTIMEVERIFY opcode --------------------------------------------------------- - -This release includes several changes related to the [BIP65][] soft fork -which redefines the existing OP_NOP2 opcode as OP_CHECKLOCKTIMEVERIFY -(CLTV) so that a transaction output can be made unspendable until a -specified point in the future. - -1. This release will only relay and mine transactions spending a CLTV - output if they comply with the BIP65 rules as provided in code. - -2. This release will produce version 4 blocks by default. Please see the - *notice to miners* below. - -3. Once 951 out of a sequence of 1,001 blocks on the local node's best block - chain contain version 4 (or higher) blocks, this release will no - longer accept new version 3 blocks and it will only accept version 4 - blocks if they comply with the BIP65 rules for CLTV. - -For more information about the soft-forking change, please see - - -Graphs showing the progress towards block version 4 adoption may be -found at the URLs below: - -- Block versions over the last 50,000 blocks as progress towards BIP65 - consensus enforcement: - -- Block versions over the last 2,000 blocks showing the days to the - earliest possible BIP65 consensus-enforced block: - -**Notice to miners:** Bitcoin Core’s block templates are now for -version 4 blocks only, and any mining software relying on its -getblocktemplate must be updated in parallel to use libblkmaker either -version 0.4.3 or any version from 0.5.2 onward. - -- If you are solo mining, this will affect you the moment you upgrade - Bitcoin Core, which must be done prior to BIP65 achieving its 951/1001 - status. - -- If you are mining with the stratum mining protocol: this does not - affect you. - -- If you are mining with the getblocktemplate protocol to a pool: this - will affect you at the pool operator’s discretion, which must be no - later than BIP65 achieving its 951/1001 status. - -[BIP65]: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki - -BIP113 mempool-only locktime enforcement using GetMedianTimePast() ----------------------------------------------------------------- - -Bitcoin transactions currently may specify a locktime indicating when -they may be added to a valid block. Current consensus rules require -that blocks have a block header time greater than the locktime specified -in any transaction in that block. - -Miners get to choose what time they use for their header time, with the -consensus rule being that no node will accept a block whose time is more -than two hours in the future. This creates a incentive for miners to -set their header times to future values in order to include locktimed -transactions which weren't supposed to be included for up to two more -hours. - -The consensus rules also specify that valid blocks may have a header -time greater than that of the median of the 11 previous blocks. This -GetMedianTimePast() time has a key feature we generally associate with -time: it can't go backwards. - -[BIP113][] specifies a soft fork (**not enforced in this release**) that -weakens this perverse incentive for individual miners to use a future -time by requiring that valid blocks have a computed GetMedianTimePast() -greater than the locktime specified in any transaction in that block. - -Mempool inclusion rules currently require transactions to be valid for -immediate inclusion in a block in order to be accepted into the mempool. -This release begins applying the BIP113 rule to received transactions, -so transaction whose time is greater than the GetMedianTimePast() will -no longer be accepted into the mempool. - -**Implication for miners:** you will begin rejecting transactions that -would not be valid under BIP113, which will prevent you from producing -invalid blocks if/when BIP113 is enforced on the network. Any -transactions which are valid under the current rules but not yet valid -under the BIP113 rules will either be mined by other miners or delayed -until they are valid under BIP113. Note, however, that time-based -locktime transactions are more or less unseen on the network currently. - -**Implication for users:** GetMedianTimePast() always trails behind the -current time, so a transaction locktime set to the present time will be -rejected by nodes running this release until the median time moves -forward. To compensate, subtract one hour (3,600 seconds) from your -locktimes to allow those transactions to be included in mempools at -approximately the expected time. - -[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki - -Windows bug fix for corrupted UTXO database on unclean shutdowns ----------------------------------------------------------------- - -Several Windows users reported that they often need to reindex the -entire blockchain after an unclean shutdown of Bitcoin Core on Windows -(or an unclean shutdown of Windows itself). Although unclean shutdowns -remain unsafe, this release no longer relies on memory-mapped files for -the UTXO database, which significantly reduced the frequency of unclean -shutdowns leading to required reindexes during testing. - -For more information, see: - -Other fixes for database corruption on Windows are expected in the -next major release. - -0.11.2 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -- #6124 `684636b` Make CScriptNum() take nMaxNumSize as an argument -- #6124 `4fa7a04` Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65) -- #6124 `6ea5ca4` Enable CHECKLOCKTIMEVERIFY as a standard script verify flag -- #6351 `5e82e1c` Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic -- #6353 `ba1da90` Show softfork status in getblockchaininfo -- #6351 `6af25b0` Add BIP65 to getblockchaininfo softforks list -- #6688 `01878c9` Fix locking in GetTransaction -- #6653 `b3eaa30` [Qt] Raise debug window when requested -- #6600 `1e672ae` Debian/Ubuntu: Include bitcoin-tx binary -- #6600 `2394f4d` Debian/Ubuntu: Split bitcoin-tx into its own package -- #5987 `33d6825` Bugfix: Allow mining on top of old tip blocks for testnet -- #6852 `21e58b8` build: make sure OpenSSL heeds noexecstack -- #6846 `af6edac` alias `-h` for `--help` -- #6867 `95a5039` Set TCP_NODELAY on P2P sockets. -- #6856 `dfe55bd` Do not allow blockfile pruning during reindex. -- #6566 `a1d3c6f` Add rules--presently disabled--for using GetMedianTimePast as end point for lock-time calculations -- #6566 `f720c5f` Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints -- #6917 `0af5b8e` leveldb: Win32WritableFile without memory mapping -- #6948 `4e895b0` Always flush block and undo when switching to new file - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Alex Morcos -- ฿tcDrak -- Chris Kleeschulte -- Daniel Cousens -- Diego Viola -- Eric Lombrozo -- Esteban Ordano -- Gregory Maxwell -- Luke Dashjr -- Marco Falke -- Mark Friedenbach -- Matt Corallo -- Micha -- Mitchell Cash -- Peter Todd -- Pieter Wuille -- Wladimir J. van der Laan -- Zak Wilcox - -And those who contributed additional code review and/or security research. - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.12.0.md b/doc/release-notes/release-notes-0.12.0.md deleted file mode 100644 index bc0d5ea3b0d91..0000000000000 --- a/doc/release-notes/release-notes-0.12.0.md +++ /dev/null @@ -1,894 +0,0 @@ -Bitcoin Core version 0.12.0 is now available from: - - - -This is a new major version release, bringing new features and other improvements. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------ - -### Downgrade to a version < 0.10.0 - -Because release 0.10.0 and later makes use of headers-first synchronization and -parallel block download (see further), the block files and databases are not -backwards-compatible with pre-0.10 versions of Bitcoin Core or other software: - -* Blocks will be stored on disk out of order (in the order they are -received, really), which makes it incompatible with some tools or -other programs. Reindexing using earlier versions will also not work -anymore as a result of this. - -* The block index database will now hold headers for which no block is -stored on disk, which earlier versions won't support. - -If you want to be able to downgrade smoothly, make a backup of your entire data -directory. Without this your node will need start syncing (or importing from -bootstrap.dat) anew afterwards. It is possible that the data from a completely -synchronised 0.10 node may be usable in older versions as-is, but this is not -supported and may break as soon as the older version attempts to reindex. - -This does not affect wallet forward or backward compatibility. - -### Downgrade to a version < 0.12.0 - -Because release 0.12.0 and later will obfuscate the chainstate on every -fresh sync or reindex, the chainstate is not backwards-compatible with -pre-0.12 versions of Bitcoin Core or other software. - -If you want to downgrade after you have done a reindex with 0.12.0 or later, -you will need to reindex when you first start Bitcoin Core version 0.11 or -earlier. - -Notable changes -=============== - -Signature validation using libsecp256k1 ---------------------------------------- - -ECDSA signatures inside Bitcoin transactions now use validation using -[libsecp256k1](https://github.com/bitcoin-core/secp256k1) instead of OpenSSL. - -Depending on the platform, this means a significant speedup for raw signature -validation speed. The advantage is largest on x86_64, where validation is over -five times faster. In practice, this translates to a raw reindexing and new -block validation times that are less than half of what it was before. - -Libsecp256k1 has undergone very extensive testing and validation. - -A side effect of this change is that libconsensus no longer depends on OpenSSL. - -Reduce upload traffic ---------------------- - -A major part of the outbound traffic is caused by serving historic blocks to -other nodes in initial block download state. - -It is now possible to reduce the total upload traffic via the `-maxuploadtarget` -parameter. This is *not* a hard limit but a threshold to minimize the outbound -traffic. When the limit is about to be reached, the uploaded data is cut by not -serving historic blocks (blocks older than one week). -Moreover, any SPV peer is disconnected when they request a filtered block. - -This option can be specified in MiB per day and is turned off by default -(`-maxuploadtarget=0`). -The recommended minimum is 144 * MAX_BLOCK_SIZE (currently 144MB) per day. - -Whitelisted peers will never be disconnected, although their traffic counts for -calculating the target. - -A more detailed documentation about keeping traffic low can be found in -[/doc/reduce-traffic.md](/doc/reduce-traffic.md). - -Direct headers announcement (BIP 130) -------------------------------------- - -Between compatible peers, [BIP 130] -(https://github.com/bitcoin/bips/blob/master/bip-0130.mediawiki) -direct headers announcement is used. This means that blocks are advertised by -announcing their headers directly, instead of just announcing the hash. In a -reorganization, all new headers are sent, instead of just the new tip. This -can often prevent an extra roundtrip before the actual block is downloaded. - -Memory pool limiting --------------------- - -Previous versions of Bitcoin Core had their mempool limited by checking -a transaction's fees against the node's minimum relay fee. There was no -upper bound on the size of the mempool and attackers could send a large -number of transactions paying just slighly more than the default minimum -relay fee to crash nodes with relatively low RAM. A temporary workaround -for previous versions of Bitcoin Core was to raise the default minimum -relay fee. - -Bitcoin Core 0.12 will have a strict maximum size on the mempool. The -default value is 300 MB and can be configured with the `-maxmempool` -parameter. Whenever a transaction would cause the mempool to exceed -its maximum size, the transaction that (along with in-mempool descendants) has -the lowest total feerate (as a package) will be evicted and the node's effective -minimum relay feerate will be increased to match this feerate plus the initial -minimum relay feerate. The initial minimum relay feerate is set to -1000 satoshis per kB. - -Bitcoin Core 0.12 also introduces new default policy limits on the length and -size of unconfirmed transaction chains that are allowed in the mempool -(generally limiting the length of unconfirmed chains to 25 transactions, with a -total size of 101 KB). These limits can be overridden using command line -arguments; see the extended help (`--help -help-debug`) for more information. - -Opt-in Replace-by-fee transactions ----------------------------------- - -It is now possible to replace transactions in the transaction memory pool of -Bitcoin Core 0.12 nodes. Bitcoin Core will only allow replacement of -transactions which have any of their inputs' `nSequence` number set to less -than `0xffffffff - 1`. Moreover, a replacement transaction may only be -accepted when it pays sufficient fee, as described in [BIP 125] -(https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki). - -Transaction replacement can be disabled with a new command line option, -`-mempoolreplacement=0`. Transactions signaling replacement under BIP125 will -still be allowed into the mempool in this configuration, but replacements will -be rejected. This option is intended for miners who want to continue the -transaction selection behavior of previous releases. - -The `-mempoolreplacement` option is *not recommended* for wallet users seeking -to avoid receipt of unconfirmed opt-in transactions, because this option does -not prevent transactions which are replaceable under BIP 125 from being accepted -(only subsequent replacements, which other nodes on the network that implement -BIP 125 are likely to relay and mine). Wallet users wishing to detect whether -a transaction is subject to replacement under BIP 125 should instead use the -updated RPC calls `gettransaction` and `listtransactions`, which now have an -additional field in the output indicating if a transaction is replaceable under -BIP125 ("bip125-replaceable"). - -Note that the wallet in Bitcoin Core 0.12 does not yet have support for -creating transactions that would be replaceable under BIP 125. - - -RPC: Random-cookie RPC authentication -------------------------------------- - -When no `-rpcpassword` is specified, the daemon now uses a special 'cookie' -file for authentication. This file is generated with random content when the -daemon starts, and deleted when it exits. Its contents are used as -authentication token. Read access to this file controls who can access through -RPC. By default it is stored in the data directory but its location can be -overridden with the option `-rpccookiefile`. - -This is similar to Tor's CookieAuthentication: see -https://www.torproject.org/docs/tor-manual.html.en - -This allows running bitcoind without having to do any manual configuration. - -Relay: Any sequence of pushdatas in OP_RETURN outputs now allowed ------------------------------------------------------------------ - -Previously OP_RETURN outputs with a payload were only relayed and mined if they -had a single pushdata. This restriction has been lifted to allow any -combination of data pushes and numeric constant opcodes (OP_1 to OP_16) after -the OP_RETURN. The limit on OP_RETURN output size is now applied to the entire -serialized scriptPubKey, 83 bytes by default. (the previous 80 byte default plus -three bytes overhead) - -Relay: New and only new blocks relayed when pruning ---------------------------------------------------- - -When running in pruned mode, the client will now relay new blocks. When -responding to the `getblocks` message, only hashes of blocks that are on disk -and are likely to remain there for some reasonable time window (1 hour) will be -returned (previously all relevant hashes were returned). - -Relay and Mining: Priority transactions ---------------------------------------- - -Bitcoin Core has a heuristic 'priority' based on coin value and age. This -calculation is used for relaying of transactions which do not pay the -minimum relay fee, and can be used as an alternative way of sorting -transactions for mined blocks. Bitcoin Core will relay transactions with -insufficient fees depending on the setting of `-limitfreerelay=` (default: -`r=15` kB per minute) and `-blockprioritysize=`. - -In Bitcoin Core 0.12, when mempool limit has been reached a higher minimum -relay fee takes effect to limit memory usage. Transactions which do not meet -this higher effective minimum relay fee will not be relayed or mined even if -they rank highly according to the priority heuristic. - -The mining of transactions based on their priority is also now disabled by -default. To re-enable it, simply set `-blockprioritysize=` where is the size -in bytes of your blocks to reserve for these transactions. The old default was -50k, so to retain approximately the same policy, you would set -`-blockprioritysize=50000`. - -Additionally, as a result of computational simplifications, the priority value -used for transactions received with unconfirmed inputs is lower than in prior -versions due to avoiding recomputing the amounts as input transactions confirm. - -External miner policy set via the `prioritisetransaction` RPC to rank -transactions already in the mempool continues to work as it has previously. -Note, however, that if mining priority transactions is left disabled, the -priority delta will be ignored and only the fee metric will be effective. - -This internal automatic prioritization handling is being considered for removal -entirely in Bitcoin Core 0.13, and it is at this time undecided whether the -more accurate priority calculation for chained unconfirmed transactions will be -restored. Community direction on this topic is particularly requested to help -set project priorities. - -Automatically use Tor hidden services -------------------------------------- - -Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket -API, to create and destroy 'ephemeral' hidden services programmatically. -Bitcoin Core has been updated to make use of this. - -This means that if Tor is running (and proper authorization is available), -Bitcoin Core automatically creates a hidden service to listen on, without -manual configuration. Bitcoin Core will also use Tor automatically to connect -to other .onion nodes if the control socket can be successfully opened. This -will positively affect the number of available .onion nodes and their usage. - -This new feature is enabled by default if Bitcoin Core is listening, and -a connection to Tor can be made. It can be configured with the `-listenonion`, -`-torcontrol` and `-torpassword` settings. To show verbose debugging -information, pass `-debug=tor`. - -Notifications through ZMQ -------------------------- - -Bitcoind can now (optionally) asynchronously notify clients through a -ZMQ-based PUB socket of the arrival of new transactions and blocks. -This feature requires installation of the ZMQ C API library 4.x and -configuring its use through the command line or configuration file. -Please see [docs/zmq.md](/doc/zmq.md) for details of operation. - -Wallet: Transaction fees ------------------------- - -Various improvements have been made to how the wallet calculates -transaction fees. - -Users can decide to pay a predefined fee rate by setting `-paytxfee=` -(or `settxfee ` rpc during runtime). A value of `n=0` signals Bitcoin -Core to use floating fees. By default, Bitcoin Core will use floating -fees. - -Based on past transaction data, floating fees approximate the fees -required to get into the `m`th block from now. This is configurable -with `-txconfirmtarget=` (default: `2`). - -Sometimes, it is not possible to give good estimates, or an estimate -at all. Therefore, a fallback value can be set with `-fallbackfee=` -(default: `0.0002` BTC/kB). - -At all times, Bitcoin Core will cap fees at `-maxtxfee=` (default: -0.10) BTC. -Furthermore, Bitcoin Core will never create transactions paying less than -the current minimum relay fee. -Finally, a user can set the minimum fee rate for all transactions with -`-mintxfee=`, which defaults to 1000 satoshis per kB. - -Wallet: Negative confirmations and conflict detection ------------------------------------------------------ - -The wallet will now report a negative number for confirmations that indicates -how deep in the block chain the conflict is found. For example, if a transaction -A has 5 confirmations and spends the same input as a wallet transaction B, B -will be reported as having -5 confirmations. If another wallet transaction C -spends an output from B, it will also be reported as having -5 confirmations. -To detect conflicts with historical transactions in the chain a one-time -`-rescan` may be needed. - -Unlike earlier versions, unconfirmed but non-conflicting transactions will never -get a negative confirmation count. They are not treated as spendable unless -they're coming from ourself (change) and accepted into our local mempool, -however. The new "trusted" field in the `listtransactions` RPC output -indicates whether outputs of an unconfirmed transaction are considered -spendable. - -Wallet: Merkle branches removed -------------------------------- - -Previously, every wallet transaction stored a Merkle branch to prove its -presence in blocks. This wasn't being used for more than an expensive -sanity check. Since 0.12, these are no longer stored. When loading a -0.12 wallet into an older version, it will automatically rescan to avoid -failed checks. - -Wallet: Pruning ---------------- - -With 0.12 it is possible to use wallet functionality in pruned mode. -This can reduce the disk usage from currently around 60 GB to -around 2 GB. - -However, rescans as well as the RPCs `importwallet`, `importaddress`, -`importprivkey` are disabled. - -To enable block pruning set `prune=` on the command line or in -`bitcoin.conf`, where `N` is the number of MiB to allot for -raw block & undo data. - -A value of 0 disables pruning. The minimal value above 0 is 550. Your -wallet is as secure with high values as it is with low ones. Higher -values merely ensure that your node will not shut down upon blockchain -reorganizations of more than 2 days - which are unlikely to happen in -practice. In future releases, a higher value may also help the network -as a whole: stored blocks could be served to other nodes. - -For further information about pruning, you may also consult the [release -notes of v0.11.0](https://github.com/bitcoin/bitcoin/blob/v0.11.0/doc/release-notes.md#block-file-pruning). - -`NODE_BLOOM` service bit ------------------------- - -Support for the `NODE_BLOOM` service bit, as described in [BIP -111](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki), has been -added to the P2P protocol code. - -BIP 111 defines a service bit to allow peers to advertise that they support -bloom filters (such as used by SPV clients) explicitly. It also bumps the protocol -version to allow peers to identify old nodes which allow bloom filtering of the -connection despite lacking the new service bit. - -In this version, it is only enforced for peers that send protocol versions -`>=70011`. For the next major version it is planned that this restriction will be -removed. It is recommended to update SPV clients to check for the `NODE_BLOOM` -service bit for nodes that report versions newer than 70011. - -Option parsing behavior ------------------------ - -Command line options are now parsed strictly in the order in which they are -specified. It used to be the case that `-X -noX` ends up, unintuitively, with X -set, as `-X` had precedence over `-noX`. This is no longer the case. Like for -other software, the last specified value for an option will hold. - -RPC: Low-level API changes --------------------------- - -- Monetary amounts can be provided as strings. This means that for example the - argument to sendtoaddress can be "0.0001" instead of 0.0001. This can be an - advantage if a JSON library insists on using a lossy floating point type for - numbers, which would be dangerous for monetary amounts. - -* The `asm` property of each scriptSig now contains the decoded signature hash - type for each signature that provides a valid defined hash type. - -* OP_NOP2 has been renamed to OP_CHECKLOCKTIMEVERIFY by [BIP 65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) - -The following items contain assembly representations of scriptSig signatures -and are affected by this change: - -- RPC `getrawtransaction` -- RPC `decoderawtransaction` -- RPC `decodescript` -- REST `/rest/tx/` (JSON format) -- REST `/rest/block/` (JSON format when including extended tx details) -- `bitcoin-tx -json` - -For example, the `scriptSig.asm` property of a transaction input that -previously showed an assembly representation of: - - 304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001 400000 OP_NOP2 - -now shows as: - - 304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL] 400000 OP_CHECKLOCKTIMEVERIFY - -Note that the output of the RPC `decodescript` did not change because it is -configured specifically to process scriptPubKey and not scriptSig scripts. - -RPC: SSL support dropped ------------------------- - -SSL support for RPC, previously enabled by the option `rpcssl` has been dropped -from both the client and the server. This was done in preparation for removing -the dependency on OpenSSL for the daemon completely. - -Trying to use `rpcssl` will result in an error: - - Error: SSL mode for RPC (-rpcssl) is no longer supported. - -If you are one of the few people that relies on this feature, a flexible -migration path is to use `stunnel`. This is an utility that can tunnel -arbitrary TCP connections inside SSL. On e.g. Ubuntu it can be installed with: - - sudo apt-get install stunnel4 - -Then, to tunnel a SSL connection on 28332 to a RPC server bound on localhost on port 18332 do: - - stunnel -d 28332 -r 127.0.0.1:18332 -p stunnel.pem -P '' - -It can also be set up system-wide in inetd style. - -Another way to re-attain SSL would be to setup a httpd reverse proxy. This solution -would allow the use of different authentication, loadbalancing, on-the-fly compression and -caching. A sample config for apache2 could look like: - - Listen 443 - - NameVirtualHost *:443 - - - SSLEngine On - SSLCertificateFile /etc/apache2/ssl/server.crt - SSLCertificateKeyFile /etc/apache2/ssl/server.key - - - ProxyPass http://127.0.0.1:8332/ - ProxyPassReverse http://127.0.0.1:8332/ - # optional enable digest auth - # AuthType Digest - # ... - - # optional bypass bitcoind rpc basic auth - # RequestHeader set Authorization "Basic " - # get the from the shell with: base64 <<< bitcoinrpc: - - - # Or, balance the load: - # ProxyPass / balancer://balancer_cluster_name - - - -Mining Code Changes -------------------- - -The mining code in 0.12 has been optimized to be significantly faster and use less -memory. As part of these changes, consensus critical calculations are cached on a -transaction's acceptance into the mempool and the mining code now relies on the -consistency of the mempool to assemble blocks. However all blocks are still tested -for validity after assembly. - -Other P2P Changes ------------------ - -The list of banned peers is now stored on disk rather than in memory. -Restarting bitcoind will no longer clear out the list of banned peers; instead -a new RPC call (`clearbanned`) can be used to manually clear the list. The new -`setban` RPC call can also be used to manually ban or unban a peer. - -0.12.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and REST - -- #6121 `466f0ea` Convert entire source tree from json_spirit to UniValue (Jonas Schnelli) -- #6234 `d38cd47` fix rpcmining/getblocktemplate univalue transition logic error (Jonas Schnelli) -- #6239 `643114f` Don't go through double in AmountFromValue and ValueFromAmount (Wladimir J. van der Laan) -- #6266 `ebab5d3` Fix univalue handling of \u0000 characters. (Daniel Kraft) -- #6276 `f3d4dbb` Fix getbalance * 0 (Tom Harding) -- #6257 `5ebe7db` Add `paytxfee` and `errors` JSON fields where appropriate (Stephen) -- #6271 `754aae5` New RPC command disconnectnode (Alex van der Peet) -- #6158 `0abfa8a` Add setban/listbanned RPC commands (Jonas Schnelli) -- #6307 `7ecdcd9` rpcban fixes (Jonas Schnelli) -- #6290 `5753988` rpc: make `gettxoutsettinfo` run lock-free (Wladimir J. van der Laan) -- #6262 `247b914` Return all available information via RPC call "validateaddress" (dexX7) -- #6339 `c3f0490` UniValue: don't escape solidus, keep espacing of reverse solidus (Jonas Schnelli) -- #6353 `6bcb0a2` Show softfork status in getblockchaininfo (Wladimir J. van der Laan) -- #6247 `726e286` Add getblockheader RPC call (Peter Todd) -- #6362 `d6db115` Fix null id in RPC response during startup (Forrest Voight) -- #5486 `943b322` [REST] JSON support for /rest/headers (Jonas Schnelli) -- #6379 `c52e8b3` rpc: Accept scientific notation for monetary amounts in JSON (Wladimir J. van der Laan) -- #6388 `fd5dfda` rpc: Implement random-cookie based authentication (Wladimir J. van der Laan) -- #6457 `3c923e8` Include pruned state in chaininfo.json (Simon Males) -- #6456 `bfd807f` rpc: Avoid unnecessary parsing roundtrip in number formatting, fix locale issue (Wladimir J. van der Laan) -- #6380 `240b30e` rpc: Accept strings in AmountFromValue (Wladimir J. van der Laan) -- #6346 `6bb2805` Add OP_RETURN support in createrawtransaction RPC call, add tests. (paveljanik) -- #6013 `6feeec1` [REST] Add memory pool API (paveljanik) -- #6576 `da9beb2` Stop parsing JSON after first finished construct. (Daniel Kraft) -- #5677 `9aa9099` libevent-based http server (Wladimir J. van der Laan) -- #6633 `bbc2b39` Report minimum ping time in getpeerinfo (Matt Corallo) -- #6648 `cd381d7` Simplify logic of REST request suffix parsing. (Daniel Kraft) -- #6695 `5e21388` libevent http fixes (Wladimir J. van der Laan) -- #5264 `48efbdb` show scriptSig signature hash types in transaction decodes. fixes #3166 (mruddy) -- #6719 `1a9f19a` Make HTTP server shutdown more graceful (Wladimir J. van der Laan) -- #6859 `0fbfc51` http: Restrict maximum size of http + headers (Wladimir J. van der Laan) -- #5936 `bf7c195` [RPC] Add optional locktime to createrawtransaction (Tom Harding) -- #6877 `26f5b34` rpc: Add maxmempool and effective min fee to getmempoolinfo (Wladimir J. van der Laan) -- #6970 `92701b3` Fix crash in validateaddress with -disablewallet (Wladimir J. van der Laan) -- #5574 `755b4ba` Expose GUI labels in RPC as comments (Luke-Jr) -- #6990 `dbd2c13` http: speed up shutdown (Wladimir J. van der Laan) -- #7013 `36baa9f` Remove LOCK(cs_main) from decodescript (Peter Todd) -- #6999 `972bf9c` add (max)uploadtarget infos to getnettotals RPC help (Jonas Schnelli) -- #7011 `31de241` Add mediantime to getblockchaininfo (Peter Todd) -- #7065 `f91e29f` http: add Boost 1.49 compatibility (Wladimir J. van der Laan) -- #7087 `be281d8` [Net]Add -enforcenodebloom option (Patrick Strateman) -- #7044 `438ee59` RPC: Added additional config option for multiple RPC users. (Gregory Sanders) -- #7072 `c143c49` [RPC] Add transaction size to JSON output (Nikita Zhavoronkov) -- #7022 `9afbd96` Change default block priority size to 0 (Alex Morcos) -- #7141 `c0c08c7` rpc: Don't translate warning messages (Wladimir J. van der Laan) -- #7312 `fd4bd50` Add RPC call abandontransaction (Alex Morcos) -- #7222 `e25b158` RPC: indicate which transactions are replaceable (Suhas Daftuar) -- #7472 `b2f2b85` rpc: Add WWW-Authenticate header to 401 response (Wladimir J. van der Laan) -- #7469 `9cb31e6` net.h fix spelling: misbeha{b,v}ing (Matt) - -### Configuration and command-line options - -- #6164 `8d05ec7` Allow user to use -debug=1 to enable all debugging (lpescher) -- #5288 `4452205` Added `-whiteconnections=` option (Josh Lehan) -- #6284 `10ac38e` Fix argument parsing oddity with -noX (Wladimir J. van der Laan) -- #6489 `c9c017a` Give a better error message if system clock is bad (Casey Rodarmor) -- #6462 `c384800` implement uacomment config parameter which can add comments to user agent as per BIP-0014 (Pavol Rusnak) -- #6647 `a3babc8` Sanitize uacomment (MarcoFalke) -- #6742 `3b2d37c` Changed logging to make -logtimestamps to work also for -printtoconsole (arnuschky) -- #6846 `2cd020d` alias -h for -help (Daniel Cousens) -- #6622 `7939164` Introduce -maxuploadtarget (Jonas Schnelli) -- #6881 `2b62551` Debug: Add option for microsecond precision in debug.log (Suhas Daftuar) -- #6776 `e06c14f` Support -checkmempool=N, which runs checks once every N transactions (Pieter Wuille) -- #6896 `d482c0a` Make -checkmempool=1 not fail through int32 overflow (Pieter Wuille) -- #6993 `b632145` Add -blocksonly option (Patrick Strateman) -- #7323 `a344880` 0.12: Backport -bytespersigop option (Luke-Jr) -- #7386 `da83ecd` Add option `-permitrbf` to set transaction replacement policy (Wladimir J. van der Laan) -- #7290 `b16b5bc` Add missing options help (MarcoFalke) -- #7440 `c76bfff` Rename permitrbf to mempoolreplacement and provide minimal string-list forward compatibility (Luke-Jr) - -### Block and transaction handling - -- #6203 `f00b623` Remove P2SH coinbase flag, no longer interesting (Luke-Jr) -- #6222 `9c93ee5` Explicitly set tx.nVersion for the genesis block and mining tests (Mark Friedenbach) -- #5985 `3a1d3e8` Fix removing of orphan transactions (Alex Morcos) -- #6221 `dd8fe82` Prune: Support noncontiguous block files (Adam Weiss) -- #6124 `41076aa` Mempool only CHECKLOCKTIMEVERIFY (BIP65) verification, unparameterized version (Peter Todd) -- #6329 `d0a10c1` acceptnonstdtxn option to skip (most) "non-standard transaction" checks, for testnet/regtest only (Luke-Jr) -- #6410 `7cdefb9` Implement accurate memory accounting for mempool (Pieter Wuille) -- #6444 `24ce77d` Exempt unspendable transaction outputs from dust checks (dexX7) -- #5913 `a0625b8` Add absurdly high fee message to validation state (Shaul Kfir) -- #6177 `2f746c6` Prevent block.nTime from decreasing (Mark Friedenbach) -- #6377 `e545371` Handle no chain tip available in InvalidChainFound() (Ross Nicoll) -- #6551 `39ddaeb` Handle leveldb::DestroyDB() errors on wipe failure (Adam Weiss) -- #6654 `b0ce450` Mempool package tracking (Suhas Daftuar) -- #6715 `82d2aef` Fix mempool packages (Suhas Daftuar) -- #6680 `4f44530` use CBlockIndex instead of uint256 for UpdatedBlockTip signal (Jonas Schnelli) -- #6650 `4fac576` Obfuscate chainstate (James O'Beirne) -- #6777 `9caaf6e` Unobfuscate chainstate data in CCoinsViewDB::GetStats (James O'Beirne) -- #6722 `3b20e23` Limit mempool by throwing away the cheapest txn and setting min relay fee to it (Matt Corallo) -- #6889 `38369dd` fix locking issue with new mempool limiting (Jonas Schnelli) -- #6464 `8f3b3cd` Always clean up manual transaction prioritization (Casey Rodarmor) -- #6865 `d0badb9` Fix chainstate serialized_size computation (Pieter Wuille) -- #6566 `ff057f4` BIP-113: Mempool-only median time-past as endpoint for lock-time calculations (Mark Friedenbach) -- #6934 `3038eb6` Restores mempool only BIP113 enforcement (Gregory Maxwell) -- #6965 `de7d459` Benchmark sanity checks and fork checks in ConnectBlock (Matt Corallo) -- #6918 `eb6172a` Make sigcache faster, more efficient, larger (Pieter Wuille) -- #6771 `38ed190` Policy: Lower default limits for tx chains (Alex Morcos) -- #6932 `73fa5e6` ModifyNewCoins saves database lookups (Alex Morcos) -- #5967 `05d5918` Alter assumptions in CCoinsViewCache::BatchWrite (Alex Morcos) -- #6871 `0e93586` nSequence-based Full-RBF opt-in (Peter Todd) -- #7008 `eb77416` Lower bound priority (Alex Morcos) -- #6915 `2ef5ffa` [Mempool] Improve removal of invalid transactions after reorgs (Suhas Daftuar) -- #6898 `4077ad2` Rewrite CreateNewBlock (Alex Morcos) -- #6872 `bdda4d5` Remove UTXO cache entries when the tx they were added for is removed/does not enter mempool (Matt Corallo) -- #7062 `12c469b` [Mempool] Fix mempool limiting and replace-by-fee for PrioritiseTransaction (Suhas Daftuar) -- #7276 `76de36f` Report non-mandatory script failures correctly (Pieter Wuille) -- #7217 `e08b7cb` Mark blocks with too many sigops as failed (Suhas Daftuar) -- #7387 `f4b2ce8` Get rid of inaccurate ScriptSigArgsExpected (Pieter Wuille) - -### P2P protocol and network code - -- #6172 `88a7ead` Ignore getheaders requests when not synced (Suhas Daftuar) -- #5875 `9d60602` Be stricter in processing unrequested blocks (Suhas Daftuar) -- #6256 `8ccc07c` Use best header chain timestamps to detect partitioning (Gavin Andresen) -- #6283 `a903ad7` make CAddrMan::size() return the correct type of size_t (Diapolo) -- #6272 `40400d5` Improve proxy initialization (continues #4871) (Wladimir J. van der Laan, Diapolo) -- #6310 `66e5465` banlist.dat: store banlist on disk (Jonas Schnelli) -- #6412 `1a2de32` Test whether created sockets are select()able (Pieter Wuille) -- #6498 `219b916` Keep track of recently rejected transactions with a rolling bloom filter (cont'd) (Peter Todd) -- #6556 `70ec975` Fix masking of irrelevant bits in address groups. (Alex Morcos) -- #6530 `ea19c2b` Improve addrman Select() performance when buckets are nearly empty (Pieter Wuille) -- #6583 `af9305a` add support for miniupnpc api version 14 (Pavel Vasin) -- #6374 `69dc5b5` Connection slot exhaustion DoS mitigation (Patrick Strateman) -- #6636 `536207f` net: correctly initialize nMinPingUsecTime (Wladimir J. van der Laan) -- #6579 `0c27795` Add NODE_BLOOM service bit and bump protocol version (Matt Corallo) -- #6148 `999c8be` Relay blocks when pruning (Suhas Daftuar) -- #6588 `cf9bb11` In (strCommand == "tx"), return if AlreadyHave() (Tom Harding) -- #6974 `2f71b07` Always allow getheaders from whitelisted peers (Wladimir J. van der Laan) -- #6639 `bd629d7` net: Automatically create hidden service, listen on Tor (Wladimir J. van der Laan) -- #6984 `9ffc687` don't enforce maxuploadtarget's disconnect for whitelisted peers (Jonas Schnelli) -- #7046 `c322652` Net: Improve blocks only mode. (Patrick Strateman) -- #7090 `d6454f6` Connect to Tor hidden services by default (when listening on Tor) (Peter Todd) -- #7106 `c894fbb` Fix and improve relay from whitelisted peers (Pieter Wuille) -- #7129 `5d5ef3a` Direct headers announcement (rebase of #6494) (Pieter Wuille) -- #7079 `1b5118b` Prevent peer flooding inv request queue (redux) (redux) (Gregory Maxwell) -- #7166 `6ba25d2` Disconnect on mempool requests from peers when over the upload limit. (Gregory Maxwell) -- #7133 `f31955d` Replace setInventoryKnown with a rolling bloom filter (rebase of #7100) (Pieter Wuille) -- #7174 `82aff88` Don't do mempool lookups for "mempool" command without a filter (Matt Corallo) -- #7179 `44fef99` net: Fix sent reject messages for blocks and transactions (Wladimir J. van der Laan) -- #7181 `8fc174a` net: Add and document network messages in protocol.h (Wladimir J. van der Laan) -- #7125 `10b88be` Replace global trickle node with random delays (Pieter Wuille) -- #7415 `cb83beb` net: Hardcoded seeds update January 2016 (Wladimir J. van der Laan) -- #7438 `e2d9a58` Do not absolutely protect local peers; decide group ties based on time (Gregory Maxwell) -- #7439 `86755bc` Add whitelistforcerelay to control forced relaying. [#7099 redux] (Gregory Maxwell) -- #7482 `e16f5b4` Ensure headers count is correct (Suhas Daftuar) - -### Validation - -- #5927 `8d9f0a6` Reduce checkpoints' effect on consensus. (Pieter Wuille) -- #6299 `24f2489` Bugfix: Don't check the genesis block header before accepting it (Jorge Timón) -- #6361 `d7ada03` Use real number of cores for default -par, ignore virtual cores (Wladimir J. van der Laan) -- #6519 `87f37e2` Make logging for validation optional (Wladimir J. van der Laan) -- #6351 `2a1090d` CHECKLOCKTIMEVERIFY (BIP65) IsSuperMajority() soft-fork (Peter Todd) -- #6931 `54e8bfe` Skip BIP 30 verification where not necessary (Alex Morcos) -- #6954 `e54ebbf` Switch to libsecp256k1-based ECDSA validation (Pieter Wuille) -- #6508 `61457c2` Switch to a constant-space Merkle root/branch algorithm. (Pieter Wuille) -- #6914 `327291a` Add pre-allocated vector type and use it for CScript (Pieter Wuille) -- #7500 `889e5b3` Correctly report high-S violations (Pieter Wuille) - - -### Build system - -- #6210 `0e4f2a0` build: disable optional use of gmp in internal secp256k1 build (Wladimir J. van der Laan) -- #6214 `87406aa` [OSX] revert renaming of Bitcoin-Qt.app and use CFBundleDisplayName (partial revert of #6116) (Jonas Schnelli) -- #6218 `9d67b10` build/gitian misc updates (Cory Fields) -- #6269 `d4565b6` gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures (Cory Fields) -- #6418 `d4a910c` Add autogen.sh to source tarball. (randy-waterhouse) -- #6373 `1ae3196` depends: non-qt bumps for 0.12 (Cory Fields) -- #6434 `059b352` Preserve user-passed CXXFLAGS with --enable-debug (Gavin Andresen) -- #6501 `fee6554` Misc build fixes (Cory Fields) -- #6600 `ef4945f` Include bitcoin-tx binary on Debian/Ubuntu (Zak Wilcox) -- #6619 `4862708` depends: bump miniupnpc and ccache (Michael Ford) -- #6801 `ae69a75` [depends] Latest config.guess and config.sub (Michael Ford) -- #6938 `193f7b5` build: If both Qt4 and Qt5 are installed, use Qt5 (Wladimir J. van der Laan) -- #7092 `348b281` build: Set osx permissions in the dmg to make Gatekeeper happy (Cory Fields) -- #6980 `eccd671` [Depends] Bump Boost, miniupnpc, ccache & zeromq (Michael Ford) -- #7424 `aa26ee0` Add security/export checks to gitian and fix current failures (Cory Fields) - -### Wallet - -- #6183 `87550ee` Fix off-by-one error w/ nLockTime in the wallet (Peter Todd) -- #6057 `ac5476e` re-enable wallet in autoprune (Jonas Schnelli) -- #6356 `9e6c33b` Delay initial pruning until after wallet init (Adam Weiss) -- #6088 `91389e5` fundrawtransaction (Matt Corallo) -- #6415 `ddd8d80` Implement watchonly support in fundrawtransaction (Matt Corallo) -- #6567 `0f0f323` Fix crash when mining with empty keypool. (Daniel Kraft) -- #6688 `4939eab` Fix locking in GetTransaction. (Alex Morcos) -- #6645 `4dbd43e` Enable wallet key imports without rescan in pruned mode. (Gregory Maxwell) -- #6550 `5b77244` Do not store Merkle branches in the wallet. (Pieter Wuille) -- #5924 `12a7712` Clean up change computation in CreateTransaction. (Daniel Kraft) -- #6906 `48b5b84` Reject invalid pubkeys when reading ckey items from the wallet. (Gregory Maxwell) -- #7010 `e0a5ef8` Fix fundrawtransaction handling of includeWatching (Peter Todd) -- #6851 `616d61b` Optimisation: Store transaction list order in memory rather than compute it every need (Luke-Jr) -- #6134 `e92377f` Improve usage of fee estimation code (Alex Morcos) -- #7103 `a775182` [wallet, rpc tests] Fix settxfee, paytxfee (MarcoFalke) -- #7105 `30c2d8c` Keep track of explicit wallet conflicts instead of using mempool (Pieter Wuille) -- #7096 `9490bd7` [Wallet] Improve minimum absolute fee GUI options (Jonas Schnelli) -- #6216 `83f06ca` Take the training wheels off anti-fee-sniping (Peter Todd) -- #4906 `96e8d12` Issue#1643: Coinselection prunes extraneous inputs from ApproximateBestSubset (Murch) -- #7200 `06c6a58` Checks for null data transaction before issuing error to debug.log (Andy Craze) -- #7296 `a36d79b` Add sane fallback for fee estimation (Alex Morcos) -- #7293 `ff9b610` Add regression test for vValue sort order (MarcoFalke) -- #7306 `4707797` Make sure conflicted wallet tx's update balances (Alex Morcos) -- #7381 `621bbd8` [walletdb] Fix syntax error in key parser (MarcoFalke) -- #7491 `00ec73e` wallet: Ignore MarkConflict if block hash is not known (Wladimir J. van der Laan) -- #7502 `1329963` Update the wallet best block marker before pruning (Pieter Wuille) - -### GUI - -- #6217 `c57e12a` disconnect peers from peers tab via context menu (Diapolo) -- #6209 `ab0ec67` extend rpc console peers tab (Diapolo) -- #6484 `1369d69` use CHashWriter also in SignVerifyMessageDialog (Pavel Vasin) -- #6487 `9848d42` Introduce PlatformStyle (Wladimir J. van der Laan) -- #6505 `100c9d3` cleanup icons (MarcoFalke) -- #4587 `0c465f5` allow users to set -onion via GUI (Diapolo) -- #6529 `c0f66ce` show client user agent in debug window (Diapolo) -- #6594 `878ea69` Disallow duplicate windows. (Casey Rodarmor) -- #5665 `6f55cdd` add verifySize() function to PaymentServer (Diapolo) -- #6317 `ca5e2a1` minor optimisations in peertablemodel (Diapolo) -- #6315 `e59d2a8` allow banning and unbanning over UI->peers table (Jonas Schnelli) -- #6653 `e04b2fa` Pop debug window in foreground when opened twice (MarcoFalke) -- #6864 `c702521` Use monospace font (MarcoFalke) -- #6887 `3694b74` Update coin control and smartfee labels (MarcoFalke) -- #7000 `814697c` add shortcurts for debug-/console-window (Jonas Schnelli) -- #6951 `03403d8` Use maxTxFee instead of 10000000 (MarcoFalke) -- #7051 `a190777` ui: Add "Copy raw transaction data" to transaction list context menu (Wladimir J. van der Laan) -- #6979 `776848a` simple mempool info in debug window (Jonas Schnelli) -- #7006 `26af1ac` add startup option to reset Qt settings (Jonas Schnelli) -- #6780 `2a94cd6` Call init's parameter interaction before we create the UI options model (Jonas Schnelli) -- #7112 `96b8025` reduce cs_main locks during tip update, more fluently update UI (Jonas Schnelli) -- #7206 `f43c2f9` Add "NODE_BLOOM" to guiutil so that peers don't get UNKNOWN[4] (Matt Corallo) -- #7282 `5cadf3e` fix coincontrol update issue when deleting a send coins entry (Jonas Schnelli) -- #7319 `1320300` Intro: Display required space (MarcoFalke) -- #7318 `9265e89` quickfix for RPC timer interface problem (Jonas Schnelli) -- #7327 `b16b5bc` [Wallet] Transaction View: LastMonth calculation fixed (crowning-) -- #7364 `7726c48` [qt] Windows: Make rpcconsole monospace font larger (MarcoFalke) -- #7384 `294f432` [qt] Peertable: Increase SUBVERSION_COLUMN_WIDTH (MarcoFalke) - -### Tests and QA - -- #6305 `9005c91` build: comparison tool swap (Cory Fields) -- #6318 `e307e13` build: comparison tool NPE fix (Cory Fields) -- #6337 `0564c5b` Testing infrastructure: mocktime fixes (Gavin Andresen) -- #6350 `60abba1` add unit tests for the decodescript rpc (mruddy) -- #5881 `3203a08` Fix and improve txn_doublespend.py test (Tom Harding) -- #6390 `6a73d66` tests: Fix bitcoin-tx signing test case (Wladimir J. van der Laan) -- #6368 `7fc25c2` CLTV: Add more tests to improve coverage (Esteban Ordano) -- #6414 `5121c68` Fix intermittent test failure, reduce test time (Tom Harding) -- #6417 `44fa82d` [QA] fix possible reorg issue in (fund)rawtransaction(s).py RPC test (Jonas Schnelli) -- #6398 `3d9362d` rpc: Remove chain-specific RequireRPCPassword (Wladimir J. van der Laan) -- #6428 `bb59e78` tests: Remove old sh-based test framework (Wladimir J. van der Laan) -- #5515 `d946e9a` RFC: Assert on probable deadlocks if the second lock isnt try_lock (Matt Corallo) -- #6287 `d2464df` Clang lock debug (Cory Fields) -- #6465 `410fd74` Don't share objects between TestInstances (Casey Rodarmor) -- #6534 `6c1c7fd` Fix test locking issues and un-revert the probable-deadlines assertions commit (Cory Fields) -- #6509 `bb4faee` Fix race condition on test node shutdown (Casey Rodarmor) -- #6523 `561f8af` Add p2p-fullblocktest.py (Casey Rodarmor) -- #6590 `981fd92` Fix stale socket rebinding and re-enable python tests for Windows (Cory Fields) -- #6730 `cb4d6d0` build: Remove dependency of bitcoin-cli on secp256k1 (Wladimir J. van der Laan) -- #6616 `5ab5dca` Regression Tests: Migrated rpc-tests.sh to all Python rpc-tests.py (Peter Tschipper) -- #6720 `d479311` Creates unittests for addrman, makes addrman more testable. (Ethan Heilman) -- #6853 `c834f56` Added fPowNoRetargeting field to Consensus::Params (Eric Lombrozo) -- #6827 `87e5539` [rpc-tests] Check return code (MarcoFalke) -- #6848 `f2c869a` Add DERSIG transaction test cases (Ross Nicoll) -- #6813 `5242bb3` Support gathering code coverage data for RPC tests with lcov (dexX7) -- #6888 `c8322ff` Clear strMiscWarning before running PartitionAlert (Eric Lombrozo) -- #6894 `2675276` [Tests] Fix BIP65 p2p test (Suhas Daftuar) -- #6863 `725539e` [Test Suite] Fix test for null tx input (Daniel Kraft) -- #6926 `a6d0d62` tests: Initialize networking on windows (Wladimir J. van der Laan) -- #6822 `9fa54a1` [tests] Be more strict checking dust (MarcoFalke) -- #6804 `5fcc14e` [tests] Add basic coverage reporting for RPC tests (James O'Beirne) -- #7045 `72dccfc` Bugfix: Use unique autostart filenames on Linux for testnet/regtest (Luke-Jr) -- #7095 `d8368a0` Replace scriptnum_test's normative ScriptNum implementation (Wladimir J. van der Laan) -- #7063 `6abf6eb` [Tests] Add prioritisetransaction RPC test (Suhas Daftuar) -- #7137 `16f4a6e` Tests: Explicitly set chain limits in replace-by-fee test (Suhas Daftuar) -- #7216 `9572e49` Removed offline testnet DNSSeed 'alexykot.me'. (tnull) -- #7209 `f3ad812` test: don't override BITCOIND and BITCOINCLI if they're set (Wladimir J. van der Laan) -- #7226 `301f16a` Tests: Add more tests to p2p-fullblocktest (Suhas Daftuar) -- #7153 `9ef7c54` [Tests] Add mempool_limit.py test (Jonas Schnelli) -- #7170 `453c567` tests: Disable Tor interaction (Wladimir J. van der Laan) -- #7229 `1ed938b` [qa] wallet: Check if maintenance changes the balance (MarcoFalke) -- #7308 `d513405` [Tests] Eliminate intermittent failures in sendheaders.py (Suhas Daftuar) -- #7468 `947c4ff` [rpc-tests] Change solve() to use rehash (Brad Andrews) - -### Miscellaneous - -- #6213 `e54ff2f` [init] add -blockversion help and extend -upnp help (Diapolo) -- #5975 `1fea667` Consensus: Decouple ContextualCheckBlockHeader from checkpoints (Jorge Timón) -- #6061 `eba2f06` Separate Consensus::CheckTxInputs and GetSpendHeight in CheckInputs (Jorge Timón) -- #5994 `786ed11` detach wallet from miner (Jonas Schnelli) -- #6387 `11576a5` [bitcoin-cli] improve error output (Jonas Schnelli) -- #6401 `6db53b4` Add BITCOIND_SIGTERM_TIMEOUT to OpenRC init scripts (Florian Schmaus) -- #6430 `b01981e` doc: add documentation for shared library libbitcoinconsensus (Braydon Fuller) -- #6372 `dcc495e` Update Linearize tool to support Windows paths; fix variable scope; update README and example configuration (Paul Georgiou) -- #6453 `8fe5cce` Separate core memory usage computation in core_memusage.h (Pieter Wuille) -- #6149 `633fe10` Buffer log messages and explicitly open logs (Adam Weiss) -- #6488 `7cbed7f` Avoid leaking file descriptors in RegisterLoad (Casey Rodarmor) -- #6497 `a2bf40d` Make sure LogPrintf strings are line-terminated (Wladimir J. van der Laan) -- #6504 `b6fee6b` Rationalize currency unit to "BTC" (Ross Nicoll) -- #6507 `9bb4dd8` Removed contrib/bitrpc (Casey Rodarmor) -- #6527 `41d650f` Use unique name for AlertNotify tempfile (Casey Rodarmor) -- #6561 `e08a7d9` limitedmap fixes and tests (Casey Rodarmor) -- #6565 `a6f2aff` Make sure we re-acquire lock if a task throws (Casey Rodarmor) -- #6599 `f4d88c4` Make sure LogPrint strings are line-terminated (Ross Nicoll) -- #6630 `195942d` Replace boost::reverse_lock with our own (Casey Rodarmor) -- #6103 `13b8282` Add ZeroMQ notifications (João Barbosa) -- #6692 `d5d1d2e` devtools: don't push if signing fails in github-merge (Wladimir J. van der Laan) -- #6728 `2b0567b` timedata: Prevent warning overkill (Wladimir J. van der Laan) -- #6713 `f6ce59c` SanitizeString: Allow hypen char (MarcoFalke) -- #5987 `4899a04` Bugfix: Fix testnet-in-a-box use case (Luke-Jr) -- #6733 `b7d78fd` Simple benchmarking framework (Gavin Andresen) -- #6854 `a092970` devtools: Add security-check.py (Wladimir J. van der Laan) -- #6790 `fa1d252` devtools: add clang-format.py (MarcoFalke) -- #7114 `f3d0fdd` util: Don't set strMiscWarning on every exception (Wladimir J. van der Laan) -- #7078 `93e0514` uint256::GetCheapHash bigendian compatibility (arowser) -- #7094 `34e02e0` Assert now > 0 in GetTime GetTimeMillis GetTimeMicros (Patrick Strateman) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- accraze -- Adam Weiss -- Alex Morcos -- Alex van der Peet -- AlSzacrel -- Altoidnerd -- Andriy Voskoboinyk -- antonio-fr -- Arne Brutschy -- Ashley Holman -- Bob McElrath -- Braydon Fuller -- BtcDrak -- Casey Rodarmor -- centaur1 -- Chris Kleeschulte -- Christian Decker -- Cory Fields -- crowning- -- daniel -- Daniel Cousens -- Daniel Kraft -- David Hill -- dexX7 -- Diego Viola -- Elias Rohrer -- Eric Lombrozo -- Erik Mossberg -- Esteban Ordano -- EthanHeilman -- Florian Schmaus -- Forrest Voight -- Gavin Andresen -- Gregory Maxwell -- Gregory Sanders / instagibbs -- Ian T -- Irving Ruan -- Jacob Welsh -- James O'Beirne -- Jeff Garzik -- Johnathan Corgan -- Jonas Schnelli -- Jonathan Cross -- João Barbosa -- Jorge Timón -- Josh Lehan -- J Ross Nicoll -- kazcw -- Kevin Cooper -- lpescher -- Luke Dashjr -- MarcoFalke -- Mark Friedenbach -- Matt -- Matt Bogosian -- Matt Corallo -- Matt Quinn -- Micha -- Michael -- Michael Ford / fanquake -- Midnight Magic -- Mitchell Cash -- mrbandrews -- mruddy -- Nick -- Patrick Strateman -- Paul Georgiou -- Paul Rabahy -- Pavel Janík / paveljanik -- Pavel Vasin -- Pavol Rusnak -- Peter Josling -- Peter Todd -- Philip Kaufmann -- Pieter Wuille -- ptschip -- randy-waterhouse -- rion -- Ross Nicoll -- Ryan Havar -- Shaul Kfir -- Simon Males -- Stephen -- Suhas Daftuar -- tailsjoin -- Thomas Kerin -- Tom Harding -- tulip -- unsystemizer -- Veres Lajos -- Wladimir J. van der Laan -- xor-freenet -- Zak Wilcox -- zathras-crypto - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.12.1.md b/doc/release-notes/release-notes-0.12.1.md deleted file mode 100644 index 610cd481de485..0000000000000 --- a/doc/release-notes/release-notes-0.12.1.md +++ /dev/null @@ -1,198 +0,0 @@ -Bitcoin Core version 0.12.1 is now available from: - - - -This is a new minor version release, including the BIP9, BIP68 and BIP112 -softfork, various bugfixes and updated translations. - -Please report bugs using the issue tracker at github: - - - -Upgrading and downgrading -========================= - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Downgrade warning ------------------ - -### Downgrade to a version < 0.12.0 - -Because release 0.12.0 and later will obfuscate the chainstate on every -fresh sync or reindex, the chainstate is not backwards-compatible with -pre-0.12 versions of Bitcoin Core or other software. - -If you want to downgrade after you have done a reindex with 0.12.0 or later, -you will need to reindex when you first start Bitcoin Core version 0.11 or -earlier. - -Notable changes -=============== - -First version bits BIP9 softfork deployment -------------------------------------------- - -This release includes a soft fork deployment to enforce [BIP68][], -[BIP112][] and [BIP113][] using the [BIP9][] deployment mechanism. - -The deployment sets the block version number to 0x20000001 between -midnight 1st May 2016 and midnight 1st May 2017 to signal readiness for -deployment. The version number consists of 0x20000000 to indicate version -bits together with setting bit 0 to indicate support for this combined -deployment, shown as "csv" in the `getblockchaininfo` RPC call. - -For more information about the soft forking change, please see - - -This specific backport pull-request can be viewed at - - -[BIP9]: https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki -[BIP68]: https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki -[BIP112]: https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki -[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki - -BIP68 soft fork to enforce sequence locks for relative locktime ---------------------------------------------------------------- - -[BIP68][] introduces relative lock-time consensus-enforced semantics of -the sequence number field to enable a signed transaction input to remain -invalid for a defined period of time after confirmation of its corresponding -outpoint. - -For more information about the implementation, see - - -BIP112 soft fork to enforce OP_CHECKSEQUENCEVERIFY --------------------------------------------------- - -[BIP112][] redefines the existing OP_NOP3 as OP_CHECKSEQUENCEVERIFY (CSV) -for a new opcode in the Bitcoin scripting system that in combination with -[BIP68][] allows execution pathways of a script to be restricted based -on the age of the output being spent. - -For more information about the implementation, see - - -BIP113 locktime enforcement soft fork -------------------------------------- - -Bitcoin Core 0.11.2 previously introduced mempool-only locktime -enforcement using GetMedianTimePast(). This release seeks to -consensus enforce the rule. - -Bitcoin transactions currently may specify a locktime indicating when -they may be added to a valid block. Current consensus rules require -that blocks have a block header time greater than the locktime specified -in any transaction in that block. - -Miners get to choose what time they use for their header time, with the -consensus rule being that no node will accept a block whose time is more -than two hours in the future. This creates a incentive for miners to -set their header times to future values in order to include locktimed -transactions which weren't supposed to be included for up to two more -hours. - -The consensus rules also specify that valid blocks may have a header -time greater than that of the median of the 11 previous blocks. This -GetMedianTimePast() time has a key feature we generally associate with -time: it can't go backwards. - -[BIP113][] specifies a soft fork enforced in this release that -weakens this perverse incentive for individual miners to use a future -time by requiring that valid blocks have a computed GetMedianTimePast() -greater than the locktime specified in any transaction in that block. - -Mempool inclusion rules currently require transactions to be valid for -immediate inclusion in a block in order to be accepted into the mempool. -This release begins applying the BIP113 rule to received transactions, -so transaction whose time is greater than the GetMedianTimePast() will -no longer be accepted into the mempool. - -**Implication for miners:** you will begin rejecting transactions that -would not be valid under BIP113, which will prevent you from producing -invalid blocks when BIP113 is enforced on the network. Any -transactions which are valid under the current rules but not yet valid -under the BIP113 rules will either be mined by other miners or delayed -until they are valid under BIP113. Note, however, that time-based -locktime transactions are more or less unseen on the network currently. - -**Implication for users:** GetMedianTimePast() always trails behind the -current time, so a transaction locktime set to the present time will be -rejected by nodes running this release until the median time moves -forward. To compensate, subtract one hour (3,600 seconds) from your -locktimes to allow those transactions to be included in mempools at -approximately the expected time. - -For more information about the implementation, see - - -Miscellaneous -------------- - -The p2p alert system is off by default. To turn on, use `-alert` with -startup configuration. - -0.12.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #7739 `7ffc2bd` Add abandoned status to listtransactions (jonasschnelli) - -### Block and transaction handling -- #7543 `834aaef` Backport BIP9, BIP68 and BIP112 with softfork (btcdrak) - -### P2P protocol and network code -- #7804 `90f1d24` Track block download times per individual block (sipa) -- #7832 `4c3a00d` Reduce block timeout to 10 minutes (laanwj) - -### Validation -- #7821 `4226aac` init: allow shutdown during 'Activating best chain...' (laanwj) -- #7835 `46898e7` Version 2 transactions remain non-standard until CSV activates (sdaftuar) - -### Build system -- #7487 `00d57b4` Workaround Travis-side CI issues (luke-jr) -- #7606 `a10da9a` No need to set -L and --location for curl (MarcoFalke) -- #7614 `ca8f160` Add curl to packages (now needed for depends) (luke-jr) -- #7776 `a784675` Remove unnecessary executables from gitian release (laanwj) - -### Wallet -- #7715 `19866c1` Fix calculation of balances and available coins. (morcos) - -### Miscellaneous -- #7617 `f04f4fd` Fix markdown syntax and line terminate LogPrint (MarcoFalke) -- #7747 `4d035bc` added depends cross compile info (accraze) -- #7741 `a0cea89` Mark p2p alert system as deprecated (btcdrak) -- #7780 `c5f94f6` Disable bad-chain alert (btcdrak) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- accraze -- Alex Morcos -- BtcDrak -- Jonas Schnelli -- Luke Dashjr -- MarcoFalke -- Mark Friedenbach -- NicolasDorier -- Pieter Wuille -- Suhas Daftuar -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). - diff --git a/doc/release-notes/release-notes-0.13.0.md b/doc/release-notes/release-notes-0.13.0.md deleted file mode 100644 index 4c3cb97df34cf..0000000000000 --- a/doc/release-notes/release-notes-0.13.0.md +++ /dev/null @@ -1,868 +0,0 @@ -Bitcoin Core version 0.13.0 is now available from: - - - -This is a new major version release, including new features, various bugfixes -and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -an OS initially released in 2001. This means that not even critical security -updates will be released anymore. Without security updates, using a bitcoin -wallet on a XP machine is irresponsible at least. - -In addition to that, with 0.12.x there have been varied reports of Bitcoin Core -randomly crashing on Windows XP. It is [not clear](https://github.com/bitcoin/bitcoin/issues/7681#issuecomment-217439891) -what the source of these crashes is, but it is likely that upstream -libraries such as Qt are no longer being tested on XP. - -We do not have time nor resources to provide support for an OS that is -end-of-life. From 0.13.0 on, Windows XP is no longer supported. Users are -suggested to upgrade to a newer verion of Windows, or install an alternative OS -that is supported. - -No attempt is made to prevent installing or running the software on Windows XP, -you can still do so at your own risk, but do not expect it to work: do not -report issues about Windows XP to the issue tracker. - -Notable changes -=============== - -Database cache memory increased --------------------------------- - -As a result of growth of the UTXO set, performance with the prior default -database cache of 100 MiB has suffered. -For this reason the default was changed to 300 MiB in this release. - -For nodes on low-memory systems, the database cache can be changed back to -100 MiB (or to another value) by either: - -- Adding `dbcache=100` in bitcoin.conf -- Changing it in the GUI under `Options → Size of database cache` - -Note that the database cache setting has the most performance impact -during initial sync of a node, and when catching up after downtime. - - -bitcoin-cli: arguments privacy ------------------------------- - -The RPC command line client gained a new argument, `-stdin` -to read extra arguments from standard input, one per line until EOF/Ctrl-D. -For example: - - $ src/bitcoin-cli -stdin walletpassphrase - mysecretcode - 120 - ..... press Ctrl-D here to end input - $ - -It is recommended to use this for sensitive information such as wallet -passphrases, as command-line arguments can usually be read from the process -table by any user on the system. - - -C++11 and Python 3 ------------------- - -Various code modernizations have been done. The Bitcoin Core code base has -started using C++11. This means that a C++11-capable compiler is now needed for -building. Effectively this means GCC 4.7 or higher, or Clang 3.3 or higher. - -When cross-compiling for a target that doesn't have C++11 libraries, configure with -`./configure --enable-glibc-back-compat ... LDFLAGS=-static-libstdc++`. - -For running the functional tests in `qa/rpc-tests`, Python3.4 or higher is now -required. - - -Linux ARM builds ----------------- - -Due to popular request, Linux ARM builds have been added to the uploaded -executables. - -The following extra files can be found in the download directory or torrent: - -- `bitcoin-${VERSION}-arm-linux-gnueabihf.tar.gz`: Linux binaries targeting - the 32-bit ARMv7-A architecture. -- `bitcoin-${VERSION}-aarch64-linux-gnu.tar.gz`: Linux binaries targeting - the 64-bit ARMv8-A architecture. - -ARM builds are still experimental. If you have problems on a certain device or -Linux distribution combination please report them on the bug tracker, it may be -possible to resolve them. Note that the device you use must be (backward) -compatible with the architecture targeted by the binary that you use. -For example, a Raspberry Pi 2 Model B or Raspberry Pi 3 Model B (in its 32-bit -execution state) device, can run the 32-bit ARMv7-A targeted binary. However, -no model of Raspberry Pi 1 device can run either binary because they are all -ARMv6 architecture devices that are not compatible with ARMv7-A or ARMv8-A. - -Note that Android is not considered ARM Linux in this context. The executables -are not expected to work out of the box on Android. - - -Compact Block support (BIP 152) -------------------------------- - -Support for block relay using the Compact Blocks protocol has been implemented -in PR 8068. - -The primary goal is reducing the bandwidth spikes at relay time, though in many -cases it also reduces propagation delay. It is automatically enabled between -compatible peers. -[BIP 152](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki) - -As a side-effect, ordinary non-mining nodes will download and upload blocks -faster if those blocks were produced by miners using similar transaction -filtering policies. This means that a miner who produces a block with many -transactions discouraged by your node will be relayed slower than one with -only transactions already in your memory pool. The overall effect of such -relay differences on the network may result in blocks which include widely- -discouraged transactions losing a stale block race, and therefore miners may -wish to configure their node to take common relay policies into consideration. - - -Hierarchical Deterministic Key Generation ------------------------------------------ -Newly created wallets will use hierarchical deterministic key generation -according to BIP32 (keypath m/0'/0'/k'). -Existing wallets will still use traditional key generation. - -Backups of HD wallets, regardless of when they have been created, can -therefore be used to re-generate all possible private keys, even the -ones which haven't already been generated during the time of the backup. -**Attention:** Encrypting the wallet will create a new seed which requires -a new backup! - -Wallet dumps (created using the `dumpwallet` RPC) will contain the deterministic -seed. This is expected to allow future versions to import the seed and all -associated funds, but this is not yet implemented. - -HD key generation for new wallets can be disabled by `-usehd=0`. Keep in -mind that this flag only has affect on newly created wallets. -You can't disable HD key generation once you have created a HD wallet. - -There is no distinction between internal (change) and external keys. - -HD wallets are incompatible with older versions of Bitcoin Core. - -[Pull request](https://github.com/bitcoin/bitcoin/pull/8035/files), [BIP 32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) - - -Segregated Witness ------------------- - -The code preparations for Segregated Witness ("segwit"), as described in [BIP -141](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki), [BIP -143](https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki), [BIP -144](https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki), and [BIP -145](https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki) are -finished and included in this release. However, BIP 141 does not yet specify -activation parameters on mainnet, and so this release does not support segwit -use on mainnet. Testnet use is supported, and after BIP 141 is updated with -proposed parameters, a future release of Bitcoin Core is expected that -implements those parameters for mainnet. - -Furthermore, because segwit activation is not yet specified for mainnet, -version 0.13.0 will behave similarly as other pre-segwit releases even after a -future activation of BIP 141 on the network. Upgrading from 0.13.0 will be -required in order to utilize segwit-related features on mainnet (such as signal -BIP 141 activation, mine segwit blocks, fully validate segwit blocks, relay -segwit blocks to other segwit nodes, and use segwit transactions in the -wallet, etc). - - -Mining transaction selection ("Child Pays For Parent") ------------------------------------------------------- - -The mining transaction selection algorithm has been replaced with an algorithm -that selects transactions based on their feerate inclusive of unconfirmed -ancestor transactions. This means that a low-fee transaction can become more -likely to be selected if a high-fee transaction that spends its outputs is -relayed. - -With this change, the `-blockminsize` command line option has been removed. - -The command line option `-blockmaxsize` remains an option to specify the -maximum number of serialized bytes in a generated block. In addition, the new -command line option `-blockmaxweight` has been added, which specifies the -maximum "block weight" of a generated block, as defined by [BIP 141 (Segregated -Witness)] (https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki). - -In preparation for Segregated Witness, the mining algorithm has been modified -to optimize transaction selection for a given block weight, rather than a given -number of serialized bytes in a block. In this release, transaction selection -is unaffected by this distinction (as BIP 141 activation is not supported on -mainnet in this release, see above), but in future releases and after BIP 141 -activation, these calculations would be expected to differ. - -For optimal runtime performance, miners using this release should specify -`-blockmaxweight` on the command line, and not specify `-blockmaxsize`. -Additionally (or only) specifying `-blockmaxsize`, or relying on default -settings for both, may result in performance degradation, as the logic to -support `-blockmaxsize` performs additional computation to ensure that -constraint is met. (Note that for mainnet, in this release, the equivalent -parameter for `-blockmaxweight` would be four times the desired -`-blockmaxsize`. See [BIP 141] -(https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki) for additional -details.) - -In the future, the `-blockmaxsize` option may be removed, as block creation is -no longer optimized for this metric. Feedback is requested on whether to -deprecate or keep this command line option in future releases. - - -Reindexing changes ------------------- - -In earlier versions, reindexing did validation while reading through the block -files on disk. These two have now been split up, so that all blocks are known -before validation starts. This was necessary to make certain optimizations that -are available during normal synchronizations also available during reindexing. - -The two phases are distinct in the Bitcoin-Qt GUI. During the first one, -"Reindexing blocks on disk" is shown. During the second (slower) one, -"Processing blocks on disk" is shown. - -It is possible to only redo validation now, without rebuilding the block index, -using the command line option `-reindex-chainstate` (in addition to -`-reindex` which does both). This new option is useful when the blocks on disk -are assumed to be fine, but the chainstate is still corrupted. It is also -useful for benchmarks. - - -Removal of internal miner --------------------------- - -As CPU mining has been useless for a long time, the internal miner has been -removed in this release, and replaced with a simpler implementation for the -test framework. - -The overall result of this is that `setgenerate` RPC call has been removed, as -well as the `-gen` and `-genproclimit` command-line options. - -For testing, the `generate` call can still be used to mine a block, and a new -RPC call `generatetoaddress` has been added to mine to a specific address. This -works with wallet disabled. - - -New bytespersigop implementation --------------------------------- - -The former implementation of the bytespersigop filter accidentally broke bare -multisig (which is meant to be controlled by the `permitbaremultisig` option), -since the consensus protocol always counts these older transaction forms as 20 -sigops for backwards compatibility. Simply fixing this bug by counting more -accurately would have reintroduced a vulnerability. It has therefore been -replaced with a new implementation that rather than filter such transactions, -instead treats them (for fee purposes only) as if they were in fact the size -of a transaction actually using all 20 sigops. - - -Low-level P2P changes ----------------------- - -- The optional new p2p message "feefilter" is implemented and the protocol - version is bumped to 70013. Upon receiving a feefilter message from a peer, - a node will not send invs for any transactions which do not meet the filter - feerate. [BIP 133](https://github.com/bitcoin/bips/blob/master/bip-0133.mediawiki) - -- The P2P alert system has been removed in PR #7692 and the `alert` P2P message - is no longer supported. - -- The transaction relay mechanism used to relay one quarter of all transactions - instantly, while queueing up the rest and sending them out in batch. As - this resulted in chains of dependent transactions being reordered, it - systematically hurt transaction relay. The relay code was redesigned in PRs - \#7840 and #8082, and now always batches transactions announcements while also - sorting them according to dependency order. This significantly reduces orphan - transactions. To compensate for the removal of instant relay, the frequency of - batch sending was doubled for outgoing peers. - -- Since PR #7840 the BIP35 `mempool` command is also subject to batch processing. - Also the `mempool` message is no longer handled for non-whitelisted peers when - `NODE_BLOOM` is disabled through `-peerbloomfilters=0`. - -- The maximum size of orphan transactions that are kept in memory until their - ancestors arrive has been raised in PR #8179 from 5000 to 99999 bytes. They - are now also removed from memory when they are included in a block, conflict - with a block, and time out after 20 minutes. - -- We respond at most once to a getaddr request during the lifetime of a - connection since PR #7856. - -- Connections to peers who have recently been the first one to give us a valid - new block or transaction are protected from disconnections since PR #8084. - - -Low-level RPC changes ----------------------- - -- RPC calls have been added to output detailed statistics for individual mempool - entries, as well as to calculate the in-mempool ancestors or descendants of a - transaction: see `getmempoolentry`, `getmempoolancestors`, `getmempooldescendants`. - -- `gettxoutsetinfo` UTXO hash (`hash_serialized`) has changed. There was a divergence between - 32-bit and 64-bit platforms, and the txids were missing in the hashed data. This has been - fixed, but this means that the output will be different than from previous versions. - -- Full UTF-8 support in the RPC API. Non-ASCII characters in, for example, - wallet labels have always been malformed because they weren't taken into account - properly in JSON RPC processing. This is no longer the case. This also affects - the GUI debug console. - -- Asm script outputs replacements for OP_NOP2 and OP_NOP3 - - - OP_NOP2 has been renamed to OP_CHECKLOCKTIMEVERIFY by [BIP -65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) - - - OP_NOP3 has been renamed to OP_CHECKSEQUENCEVERIFY by [BIP -112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki) - - - The following outputs are affected by this change: - - - RPC `getrawtransaction` (in verbose mode) - - RPC `decoderawtransaction` - - RPC `decodescript` - - REST `/rest/tx/` (JSON format) - - REST `/rest/block/` (JSON format when including extended tx details) - - `bitcoin-tx -json` - -- The sorting of the output of the `getrawmempool` output has changed. - -- New RPC commands: `generatetoaddress`, `importprunedfunds`, `removeprunedfunds`, `signmessagewithprivkey`, - `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, - `createwitnessaddress`, `addwitnessaddress`. - -- Removed RPC commands: `setgenerate`, `getgenerate`. - -- New options were added to `fundrawtransaction`: `includeWatching`, `changeAddress`, `changePosition` and `feeRate`. - - -Low-level ZMQ changes ----------------------- - -- Each ZMQ notification now contains an up-counting sequence number that allows - listeners to detect lost notifications. - The sequence number is always the last element in a multi-part ZMQ notification and - therefore backward compatible. Each message type has its own counter. - PR [#7762](https://github.com/bitcoin/bitcoin/pull/7762). - - -0.13.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs - -- #7156 `9ee02cf` Remove cs_main lock from `createrawtransaction` (laanwj) -- #7326 `2cd004b` Fix typo, wrong information in gettxout help text (paveljanik) -- #7222 `82429d0` Indicate which transactions are signaling opt-in RBF (sdaftuar) -- #7480 `b49a623` Changed getnetworkhps value to double to avoid overflow (instagibbs) -- #7550 `8b958ab` Input-from-stdin mode for bitcoin-cli (laanwj) -- #7670 `c9a1265` Use cached block hash in blockToJSON() (rat4) -- #7726 `9af69fa` Correct importaddress help reference to importpubkey (CypherGrue) -- #7766 `16555b6` Register calls where they are defined (laanwj) -- #7797 `e662a76` Fix generatetoaddress failing to parse address (mruddy) -- #7774 `916b15a` Add versionHex in getblock and getblockheader JSON results (mruddy) -- #7863 `72c54e3` Getblockchaininfo: make bip9_softforks an object, not an array (rustyrussell) -- #7842 `d97101e` Do not print minping time in getpeerinfo when no ping received yet (paveljanik) -- #7518 `be14ca5` Add multiple options to fundrawtransaction (promag) -- #7756 `9e47fce` Add cursor to iterate over utxo set, use this in `gettxoutsetinfo` (laanwj) -- #7848 `88616d2` Divergence between 32- and 64-bit when hashing >4GB affects `gettxoutsetinfo` (laanwj) -- #7827 `4205ad7` Speed up `getchaintips` (mrbandrews) -- #7762 `a1eb344` Append a message sequence number to every ZMQ notification (jonasschnelli) -- #7688 `46880ed` List solvability in listunspent output and improve help (sipa) -- #7926 `5725807` Push back `getaddednodeinfo` dead value (instagibbs) -- #7953 `0630353` Create `signmessagewithprivkey` rpc (achow101) -- #8049 `c028c7b` Expose information on whether transaction relay is enabled in `getnetworkinfo` (laanwj) -- #7967 `8c1e49b` Add feerate option to `fundrawtransaction` (jonasschnelli) -- #8118 `9b6a48c` Reduce unnecessary hashing in `signrawtransaction` (jonasnick) -- #7957 `79004d4` Add support for transaction sequence number (jonasschnelli) -- #8153 `75ec320` `fundrawtransaction` feeRate: Use BTC/kB (MarcoFalke) -- #7292 `7ce9ac5` Expose ancestor/descendant information over RPC (sdaftuar) -- #8171 `62fcf27` Fix createrawtx sequence number unsigned int parsing (jonasschnelli) -- #7892 `9c3d0fa` Add full UTF-8 support to RPC (laanwj) -- #8317 `304eff3` Don't use floating point in rpcwallet (MarcoFalke) -- #8258 `5a06ebb` Hide softfork in `getblockchaininfo` if timeout is 0 (jl2012) -- #8244 `1922e5a` Remove unnecessary LOCK(cs_main) in getrawmempool (dcousens) - -### Block and transaction handling - -- #7056 `6a07208` Save last db read (morcos) -- #6842 `0192806` Limitfreerelay edge case bugfix (ptschip) -- #7084 `11d74f6` Replace maxFeeRate of 10000*minRelayTxFee with maxTxFee in mempool (MarcoFalke) -- #7539 `9f33dba` Add tags to mempool's mapTx indices (sdaftuar) -- #7592 `26a2a72` Re-remove ERROR logging for mempool rejects (laanwj) -- #7187 `14d6324` Keep reorgs fast for SequenceLocks checks (morcos) -- #7594 `01f4267` Mempool: Add tracking of ancestor packages (sdaftuar) -- #7904 `fc9e334` Txdb: Fix assert crash in new UTXO set cursor (laanwj) -- #7927 `f9c2ac7` Minor changes to dbwrapper to simplify support for other databases (laanwj) -- #7933 `e26b620` Fix OOM when deserializing UTXO entries with invalid length (sipa) -- #8020 `5e374f7` Use SipHash-2-4 for various non-cryptographic hashes (sipa) -- #8076 `d720980` VerifyDB: don't check blocks that have been pruned (sdaftuar) -- #8080 `862fd24` Do not use mempool for GETDATA for tx accepted after the last mempool req (gmaxwell) -- #7997 `a82f033` Replace mapNextTx with slimmer setSpends (kazcw) -- #8220 `1f86d64` Stop trimming when mapTx is empty (sipa) -- #8273 `396f9d6` Bump `-dbcache` default to 300MiB (laanwj) -- #7225 `eb33179` Eliminate unnecessary call to CheckBlock (sdaftuar) -- #7907 `006cdf6` Optimize and Cleanup CScript::FindAndDelete (pstratem) -- #7917 `239d419` Optimize reindex (sipa) -- #7763 `3081fb9` Put hex-encoded version in UpdateTip (sipa) -- #8149 `d612837` Testnet-only segregated witness (sipa) -- #8305 `3730393` Improve handling of unconnecting headers (sdaftuar) -- #8363 `fca1a41` Rename "block cost" to "block weight" (sdaftuar) -- #8381 `f84ee3d` Make witness v0 outputs non-standard (jl2012) -- #8364 `3f65ba2` Treat high-sigop transactions as larger rather than rejecting them (sipa) - -### P2P protocol and network code - -- #6589 `dc0305d` Log bytes recv/sent per command (jonasschnelli) -- #7164 `3b43cad` Do not download transactions during initial blockchain sync (ptschip) -- #7458 `898fedf` peers.dat, banlist.dat recreated when missing (kirkalx) -- #7637 `3da5d1b` Fix memleak in TorController (laanwj, jonasschnelli) -- #7553 `9f14e5a` Remove vfReachable and modify IsReachable to only use vfLimited (pstratem) -- #7708 `9426632` De-neuter NODE_BLOOM (pstratem) -- #7692 `29b2be6` Remove P2P alert system (btcdrak) -- #7542 `c946a15` Implement "feefilter" P2P message (morcos) -- #7573 `352fd57` Add `-maxtimeadjustment` command line option (mruddy) -- #7570 `232592a` Add IPv6 Link-Local Address Support (mruddy) -- #7874 `e6a4d48` Improve AlreadyHave (morcos) -- #7856 `64e71b3` Only send one GetAddr response per connection (gmaxwell) -- #7868 `7daa3ad` Split DNS resolving functionality out of net structures (theuni) -- #7919 `7617682` Fix headers announcements edge case (sdaftuar) -- #7514 `d9594bf` Fix IsInitialBlockDownload for testnet (jmacwhyte) -- #7959 `03cf6e8` fix race that could fail to persist a ban (kazcw) -- #7840 `3b9a0bf` Several performance and privacy improvements to inv/mempool handling (sipa) -- #8011 `65aecda` Don't run ThreadMessageHandler at lowered priority (kazcw) -- #7696 `5c3f8dd` Fix de-serialization bug where AddrMan is left corrupted (EthanHeilman) -- #7932 `ed749bd` CAddrMan::Deserialize handle corrupt serializations better (pstratem) -- #7906 `83121cc` Prerequisites for p2p encapsulation changes (theuni) -- #8033 `18436d8` Fix Socks5() connect failures to be less noisy and less unnecessarily scary (wtogami) -- #8082 `01d8359` Defer inserting into maprelay until just before relaying (gmaxwell) -- #7960 `6a22373` Only use AddInventoryKnown for transactions (sdaftuar) -- #8078 `2156fa2` Disable the mempool P2P command when bloom filters disabled (petertodd) -- #8065 `67c91f8` Addrman offline attempts (gmaxwell) -- #7703 `761cddb` Tor: Change auth order to only use password auth if -torpassword (laanwj) -- #8083 `cd0c513` Add support for dnsseeds with option to filter by servicebits (jonasschnelli) -- #8173 `4286f43` Use SipHash for node eviction (sipa) -- #8154 `1445835` Drop vAddrToSend after sending big addr message (kazcw) -- #7749 `be9711e` Enforce expected outbound services (sipa) -- #8208 `0a64777` Do not set extra flags for unfiltered DNS seed results (sipa) -- #8084 `e4bb4a8` Add recently accepted blocks and txn to AttemptToEvictConnection (gmaxwell) -- #8113 `3f89a53` Rework addnode behaviour (sipa) -- #8179 `94ab58b` Evict orphans which are included or precluded by accepted blocks (gmaxwell) -- #8068 `e9d76a1` Compact Blocks (TheBlueMatt) -- #8204 `0833894` Update petertodd's testnet seed (petertodd) -- #8247 `5cd35d3` Mark my dnsseed as supporting filtering (sipa) -- #8275 `042c323` Remove bad chain alert partition check (btcdrak) -- #8271 `1bc9c80` Do not send witnesses in cmpctblock (sipa) -- #8312 `ca40ef6` Fix mempool DoS vulnerability from malleated transactions (sdaftuar) -- #7180 `16ccb74` Account for `sendheaders` `verack` messages (laanwj) -- #8102 `425278d` Bugfix: use global ::fRelayTxes instead of CNode in version send (sipa) -- #8408 `b7e2011` Prevent fingerprinting, disk-DoS with compact blocks (sdaftuar) - -### Build system - -- #7302 `41f1a3e` C++11 build/runtime fixes (theuni) -- #7322 `fd9356b` c++11: add scoped enum fallbacks to CPPFLAGS rather than defining them locally (theuni) -- #7441 `a6771fc` Use Debian 8.3 in gitian build guide (fanquake) -- #7349 `152a821` Build against system UniValue when available (luke-jr) -- #7520 `621940e` LibreSSL doesn't define OPENSSL_VERSION, use LIBRESSL_VERSION_TEXT instead (paveljanik) -- #7528 `9b9bfce` autogen.sh: warn about needing autoconf if autoreconf is not found (knocte) -- #7504 `19324cf` Crystal clean make clean (paveljanik) -- #7619 `18b3f1b` Add missing sudo entry in gitian VM setup (btcdrak) -- #7616 `639ec58` [depends] Delete unused patches (MarcoFalke) -- #7658 `c15eb28` Add curl to Gitian setup instructions (btcdrak) -- #7710 `909b72b` [Depends] Bump miniupnpc and config.guess+sub (fanquake) -- #7723 `5131005` build: python 3 compatibility (laanwj) -- #7477 `28ad4d9` Fix quoting of copyright holders in configure.ac (domob1812) -- #7711 `a67bc5e` [build-aux] Update Boost & check macros to latest serials (fanquake) -- #7788 `4dc1b3a` Use relative paths instead of absolute paths in protoc calls (paveljanik) -- #7809 `bbd210d` depends: some base fixes/changes (theuni) -- #7603 `73fc922` Build System: Use PACKAGE_TARNAME in NSIS script (JeremyRand) -- #7905 `187186b` test: move accounting_tests and rpc_wallet_tests to wallet/test (laanwj) -- #7911 `351abf9` leveldb: integrate leveldb into our buildsystem (theuni) -- #7944 `a407807` Re-instate TARGET_OS=linux in configure.ac. Removed by 351abf9e035 (randy-waterhouse) -- #7920 `c3e3cfb` Switch Travis to Trusty (theuni) -- #7954 `08b37c5` build: quiet annoying warnings without adding new ones (theuni) -- #7165 `06162f1` build: Enable C++11 in build, require C++11 compiler (laanwj) -- #7982 `559fbae` build: No need to check for leveldb atomics (theuni) -- #8002 `f9b4582` [depends] Add -stdlib=libc++ to darwin CXX flags (fanquake) -- #7993 `6a034ed` [depends] Bump Freetype, ccache, ZeroMQ, miniupnpc, expat (fanquake) -- #8167 `19ea173` Ship debug tarballs/zips with debug symbols (theuni) -- #8175 `f0299d8` Add --disable-bench to config flags for windows (laanwj) -- #7283 `fd9881a` [gitian] Default reference_datetime to commit author date (MarcoFalke) -- #8181 `9201ce8` Get rid of `CLIENT_DATE` (laanwj) -- #8133 `fde0ac4` Finish up out-of-tree changes (theuni) -- #8188 `65a9d7d` Add armhf/aarch64 gitian builds (theuni) -- #8194 `cca1c8c` [gitian] set correct PATH for wrappers (MarcoFalke) -- #8198 `5201614` Sync ax_pthread with upstream draft4 (fanquake) -- #8210 `12a541e` [Qt] Bump to Qt5.6.1 (jonasschnelli) -- #8285 `da50997` windows: Add testnet link to installer (laanwj) -- #8304 `0cca2fe` [travis] Update SDK_URL (MarcoFalke) -- #8310 `6ae20df` Require boost for bench (theuni) -- #8315 `2e51590` Don't require sudo for Linux (theuni) -- #8314 `67caef6` Fix pkg-config issues for 0.13 (theuni) -- #8373 `1fe7f40` Fix OSX non-deterministic dmg (theuni) -- #8358 `cfd1280` Gbuild: Set memory explicitly (default is too low) (MarcoFalke) - -### GUI - -- #7154 `00b4b8d` Add InMempool() info to transaction details (jonasschnelli) -- #7068 `5f3c670` [RPC-Tests] add simple way to run rpc test over QT clients (jonasschnelli) -- #7218 `a1c185b` Fix misleading translation (MarcoFalke) -- #7214 `be9a9a3` qt5: Use the fixed font the system recommends (MarcoFalke) -- #7256 `08ab906` Add note to coin control dialog QT5 workaround (fanquake) -- #7255 `e289807` Replace some instances of formatWithUnit with formatHtmlWithUnit (fanquake) -- #7317 `3b57e9c` Fix RPCTimerInterface ordering issue (jonasschnelli) -- #7327 `c079d79` Transaction View: LastMonth calculation fixed (crowning-) -- #7334 `e1060c5` coincontrol workaround is still needed in qt5.4 (fixed in qt5.5) (MarcoFalke) -- #7383 `ae2db67` Rename "amount" to "requested amount" in receive coins table (jonasschnelli) -- #7396 `cdcbc59` Add option to increase/decrease font size in the console window (jonasschnelli) -- #7437 `9645218` Disable tab navigation for peers tables (Kefkius) -- #7604 `354b03d` build: Remove spurious dollar sign. Fixes #7189 (dooglus) -- #7605 `7f001bd` Remove openssl info from init/log and from Qt debug window (jonasschnelli) -- #7628 `87d6562` Add 'copy full transaction details' option (ericshawlinux) -- #7613 `3798e5d` Add autocomplete to bitcoin-qt's console window (GamerSg) -- #7668 `b24266c` Fix history deletion bug after font size change (achow101) -- #7680 `41d2dfa` Remove reflection from `about` icon (laanwj) -- #7686 `f034bce` Remove 0-fee from send dialog (MarcoFalke) -- #7506 `b88e0b0` Use CCoinControl selection in CWallet::FundTransaction (promag) -- #7732 `0b98dd7` Debug window: replace "Build date" with "Datadir" (jonasschnelli) -- #7761 `60db51d` remove trailing output-index from transaction-id (jonasschnelli) -- #7772 `6383268` Clear the input line after activating autocomplete (paveljanik) -- #7925 `f604bf6` Fix out-of-tree GUI builds (laanwj) -- #7939 `574ddc6` Make it possible to show details for multiple transactions (laanwj) -- #8012 `b33824b` Delay user confirmation of send (Tyler-Hardin) -- #8006 `7c8558d` Add option to disable the system tray icon (Tyler-Hardin) -- #8046 `169d379` Fix Cmd-Q / Menu Quit shutdown on OSX (jonasschnelli) -- #8042 `6929711` Don't allow to open the debug window during splashscreen & verification state (jonasschnelli) -- #8014 `77b49ac` Sort transactions by date (Tyler-Hardin) -- #8073 `eb2f6f7` askpassphrasedialog: Clear pass fields on accept (rat4) -- #8129 `ee1533e` Fix RPC console auto completer (UdjinM6) -- #7636 `fb0ac48` Add bitcoin address label to request payment QR code (makevoid) -- #8231 `760a6c7` Fix a bug where the SplashScreen will not be hidden during startup (jonasschnelli) -- #8256 `af2421c` BUG: bitcoin-qt crash (fsb4000) -- #8257 `ff03c50` Do not ask a UI question from bitcoind (sipa) -- #8288 `91abb77` Network-specific example address (laanwj) -- #7707 `a914968` UI support for abandoned transactions (jonasschnelli) -- #8207 `f7a403b` Add a link to the Bitcoin-Core repository and website to the About Dialog (MarcoFalke) -- #8281 `6a87eb0` Remove client name from debug window (laanwj) -- #8407 `45eba4b` Add dbcache migration path (jonasschnelli) - -### Wallet - -- #7262 `fc08994` Reduce inefficiency of GetAccountAddress() (dooglus) -- #7537 `78e81b0` Warn on unexpected EOF while salvaging wallet (laanwj) -- #7521 `3368895` Don't resend wallet txs that aren't in our own mempool (morcos) -- #7576 `86a1ec5` Move wallet help string creation to CWallet (jonasschnelli) -- #7577 `5b3b5a7` Move "load wallet phase" to CWallet (jonasschnelli) -- #7608 `0735c0c` Move hardcoded file name out of log messages (MarcoFalke) -- #7649 `4900641` Prevent multiple calls to CWallet::AvailableCoins (promag) -- #7646 `e5c3511` Fix lockunspent help message (promag) -- #7558 `b35a591` Add import/removeprunedfunds rpc call (instagibbs) -- #6215 `48c5adf` add bip32 pub key serialization (jonasschnelli) -- #7913 `bafd075` Fix for incorrect locking in GetPubKey() (keystore.cpp) (yurizhykin) -- #8036 `41138f9` init: Move berkeleydb version reporting to wallet (laanwj) -- #8028 `373b50d` Fix insanity of CWalletDB::WriteTx and CWalletTx::WriteToDisk (pstratem) -- #8061 `f6b7df3` Improve Wallet encapsulation (pstratem) -- #7891 `950be19` Always require OS randomness when generating secret keys (sipa) -- #7689 `b89ef13` Replace OpenSSL AES with ctaes-based version (sipa) -- #7825 `f972b04` Prevent multiple calls to ExtractDestination (pedrobranco) -- #8137 `243ac0c` Improve CWallet API with new AccountMove function (pstratem) -- #8142 `52c3f34` Improve CWallet API with new GetAccountPubkey function (pstratem) -- #8035 `b67a472` Add simplest BIP32/deterministic key generation implementation (jonasschnelli) -- #7687 `a6ddb19` Stop treating importaddress'ed scripts as change (sipa) -- #8298 `aef3811` wallet: Revert input selection post-pruning (laanwj) -- #8324 `bc94b87` Keep HD seed during salvagewallet (jonasschnelli) -- #8323 `238300b` Add HD keypath to CKeyMetadata, report metadata in validateaddress (jonasschnelli) -- #8367 `3b38a6a` Ensure <0.13 clients can't open HD wallets (jonasschnelli) -- #8378 `ebea651` Move SetMinVersion for FEATURE_HD to SetHDMasterKey (pstratem) -- #8390 `73adfe3` Correct hdmasterkeyid/masterkeyid name confusion (jonasschnelli) -- #8206 `18b8ee1` Add HD xpriv to dumpwallet (jonasschnelli) -- #8389 `c3c82c4` Create a new HD seed after encrypting the wallet (jonasschnelli) - -### Tests and QA - -- #7320 `d3dfc6d` Test walletpassphrase timeout (MarcoFalke) -- #7208 `47c5ed1` Make max tip age an option instead of chainparam (laanwj) -- #7372 `21376af` Trivial: [qa] wallet: Print maintenance (MarcoFalke) -- #7280 `668906f` [travis] Fail when documentation is outdated (MarcoFalke) -- #7177 `93b0576` [qa] Change default block priority size to 0 (MarcoFalke) -- #7236 `02676c5` Use createrawtx locktime parm in txn_clone (dgenr8) -- #7212 `326ffed` Adds unittests for CAddrMan and CAddrinfo, removes source of non-determinism (EthanHeilman) -- #7490 `d007511` tests: Remove May15 test (laanwj) -- #7531 `18cb2d5` Add bip68-sequence.py to extended rpc tests (btcdrak) -- #7536 `ce5fc02` test: test leading spaces for ParseHex (laanwj) -- #7620 `1b68de3` [travis] Only run check-doc.py once (MarcoFalke) -- #7455 `7f96671` [travis] Exit early when check-doc.py fails (MarcoFalke) -- #7667 `56d2c4e` Move GetTempPath() to testutil (musalbas) -- #7517 `f1ca891` test: script_error checking in script_invalid tests (laanwj) -- #7684 `3d0dfdb` Extend tests (MarcoFalke) -- #7697 `622fe6c` Tests: make prioritise_transaction.py more robust (sdaftuar) -- #7709 `efde86b` Tests: fix missing import in mempool_packages (sdaftuar) -- #7702 `29e1131` Add tests verifychain, lockunspent, getbalance, listsinceblock (MarcoFalke) -- #7720 `3b4324b` rpc-test: Normalize assert() (MarcoFalke) -- #7757 `26794d4` wallet: Wait for reindex to catch up (MarcoFalke) -- #7764 `a65b36c` Don't run pruning.py twice (MarcoFalke) -- #7773 `7c80e72` Fix comments in tests (btcdrak) -- #7489 `e9723cb` tests: Make proxy_test work on travis servers without IPv6 (laanwj) -- #7801 `70ac71b` Remove misleading "errorString syntax" (MarcoFalke) -- #7803 `401c65c` maxblocksinflight: Actually enable test (MarcoFalke) -- #7802 `3bc71e1` httpbasics: Actually test second connection (MarcoFalke) -- #7849 `ab8586e` tests: add varints_bitpatterns test (laanwj) -- #7846 `491171f` Clean up lockorder data of destroyed mutexes (sipa) -- #7853 `6ef5e00` py2: Unfiddle strings into bytes explicitly (MarcoFalke) -- #7878 `53adc83` [test] bctest.py: Revert faa41ee (MarcoFalke) -- #7798 `cabba24` [travis] Print the commit which was evaluated (MarcoFalke) -- #7833 `b1bf511` tests: Check Content-Type header returned from RPC server (laanwj) -- #7851 `fa9d86f` pull-tester: Don't mute zmq ImportError (MarcoFalke) -- #7822 `0e6fd5e` Add listunspent() test for spendable/unspendable UTXO (jpdffonseca) -- #7912 `59ad568` Tests: Fix deserialization of reject messages (sdaftuar) -- #7941 `0ea3941` Fixing comment in script_test.json test case (Christewart) -- #7807 `0ad1041` Fixed miner test values, gave constants for less error-prone values (instagibbs) -- #7980 `88b77c7` Smartfees: Properly use ordered dict (MarcoFalke) -- #7814 `77b637f` Switch to py3 (MarcoFalke) -- #8030 `409a8a1` Revert fatal-ness of missing python-zmq (laanwj) -- #8018 `3e90fe6` Autofind rpc tests --srcdir (jonasschnelli) -- #8016 `5767e80` Fix multithread CScheduler and reenable test (paveljanik) -- #7972 `423ca30` pull-tester: Run rpc test in parallel (MarcoFalke) -- #8039 `69b3a6d` Bench: Add crypto hash benchmarks (laanwj) -- #8041 `5b736dd` Fix bip9-softforks blockstore issue (MarcoFalke) -- #7994 `1f01443` Add op csv tests to script_tests.json (Christewart) -- #8038 `e2bf830` Various minor fixes (MarcoFalke) -- #8072 `1b87e5b` Travis: 'make check' in parallel and verbose (theuni) -- #8056 `8844ef1` Remove hardcoded "4 nodes" from test_framework (MarcoFalke) -- #8047 `37f9a1f` Test_framework: Set wait-timeout for bitcoind procs (MarcoFalke) -- #8095 `6700cc9` Test framework: only cleanup on successful test runs (sdaftuar) -- #8098 `06bd4f6` Test_framework: Append portseed to tmpdir (MarcoFalke) -- #8104 `6ff2c8d` Add timeout to sync_blocks() and sync_mempools() (sdaftuar) -- #8111 `61b8684` Benchmark SipHash (sipa) -- #8107 `52b803e` Bench: Added base58 encoding/decoding benchmarks (yurizhykin) -- #8115 `0026e0e` Avoid integer division in the benchmark inner-most loop (gmaxwell) -- #8090 `a2df115` Adding P2SH(p2pkh) script test case (Christewart) -- #7992 `ec45cc5` Extend #7956 with one more test (TheBlueMatt) -- #8139 `ae5575b` Fix interrupted HTTP RPC connection workaround for Python 3.5+ (sipa) -- #8164 `0f24eaf` [Bitcoin-Tx] fix missing test fixtures, fix 32bit atoi issue (jonasschnelli) -- #8166 `0b5279f` Src/test: Do not shadow local variables (paveljanik) -- #8141 `44c1b1c` Continuing port of java comparison tool (mrbandrews) -- #8201 `36b7400` fundrawtransaction: Fix race, assert amounts (MarcoFalke) -- #8214 `ed2cd59` Mininode: fail on send_message instead of silent return (MarcoFalke) -- #8215 `a072d1a` Don't use floating point in wallet tests (MarcoFalke) -- #8066 `65c2058` Test_framework: Use different rpc_auth_pair for each node (MarcoFalke) -- #8216 `0d41d70` Assert 'changePosition out of bounds' (MarcoFalke) -- #8222 `961893f` Enable mempool consistency checks in unit tests (sipa) -- #7751 `84370d5` test_framework: python3.4 authproxy compat (laanwj) -- #7744 `d8e862a` test_framework: detect failure of bitcoind startup (laanwj) -- #8280 `115735d` Increase sync_blocks() timeouts in pruning.py (MarcoFalke) -- #8340 `af9b7a9` Solve trivial merge conflict in p2p-segwit.py (MarcoFalke) -- #8067 `3e4cf8f` Travis: use slim generic image, and some fixups (theuni) -- #7951 `5c7df70` Test_framework: Properly print exception (MarcoFalke) -- #8070 `7771aa5` Remove non-determinism which is breaking net_tests #8069 (EthanHeilman) -- #8309 `bb2646a` Add wallet-hd test (MarcoFalke) -- #8444 `cd0910b` Fix p2p-feefilter.py for changed tx relay behavior (sdaftuar) - -### Mining - -- #7507 `11c7699` Remove internal miner (Leviathn) -- #7663 `c87f51e` Make the generate RPC call function for non-regtest (sipa) -- #7671 `e2ebd25` Add generatetoaddress RPC to mine to an address (achow101) -- #7935 `66ed450` Versionbits: GBT support (luke-jr) -- #7600 `66db2d6` Select transactions using feerate-with-ancestors (sdaftuar) -- #8295 `f5660d3` Mining-related fixups for 0.13.0 (sdaftuar) -- #7796 `536b75e` Add support for negative fee rates, fixes `prioritizetransaction` (MarcoFalke) -- #8362 `86edc20` Scale legacy sigop count in CreateNewBlock (sdaftuar) -- #8489 `8b0eee6` Bugfix: Use pre-BIP141 sigops until segwit activates (GBT) (luke-jr) - -### Documentation and miscellaneous - -- #7423 `69e2a40` Add example for building with constrained resources (jarret) -- #8254 `c2c69ed` Add OSX ZMQ requirement to QA readme (fanquake) -- #8203 `377d131` Clarify documentation for running a tor node (nathaniel-mahieu) -- #7428 `4b12266` Add example for listing ./configure flags (nathaniel-mahieu) -- #7847 `3eae681` Add arch linux build example (mruddy) -- #7968 `ff69aaf` Fedora build requirements (wtogami) -- #8013 `fbedc09` Fedora build requirements, add gcc-c++ and fix typo (wtogami) -- #8009 `fbd8478` Fixed invalid example paths in gitian-building.md (JeremyRand) -- #8240 `63fbdbc` Mention Windows XP end of support in release notes (laanwj) -- #8303 `5077d2c` Update bips.md for CSV softfork (fanquake) -- #7789 `e0b3e19` Add note about using the Qt official binary installer (paveljanik) -- #7791 `e30a5b0` Change Precise to Trusty in gitian-building.md (JeremyRand) -- #7838 `8bb5d3d` Update gitian build guide to debian 8.4.0 (fanquake) -- #7855 `b778e59` Replace precise with trusty (MarcoFalke) -- #7975 `fc23fee` Update bitcoin-core GitHub links (MarcoFalke) -- #8034 `e3a8207` Add basic git squash workflow (fanquake) -- #7813 `214ec0b` Update port in tor.md (MarcoFalke) -- #8193 `37c9830` Use Debian 8.5 in the gitian-build guide (fanquake) -- #8261 `3685e0c` Clarify help for `getblockchaininfo` (paveljanik) -- #7185 `ea0f5a2` Note that reviewers should mention the id of the commits they reviewed (pstratem) -- #7290 `c851d8d` [init] Add missing help for args (MarcoFalke) -- #7281 `f9fd4c2` Improve CheckInputs() comment about sig verification (petertodd) -- #7417 `1e06bab` Minor improvements to the release process (PRabahy) -- #7444 `4cdbd42` Improve block validity/ConnectBlock() comments (petertodd) -- #7527 `db2e1c0` Fix and cleanup listreceivedbyX documentation (instagibbs) -- #7541 `b6e00af` Clarify description of blockindex (pinheadmz) -- #7590 `f06af57` Improving wording related to Boost library requirements [updated] (jonathancross) -- #7635 `0fa88ef` Add dependency info to test docs (elliotolds) -- #7609 `3ba07bd` RPM spec file project (AliceWonderMiscreations) -- #7850 `229a17c` Removed call to `TryCreateDirectory` from `GetDefaultDataDir` in `src/util.cpp` (alexreg) -- #7888 `ec870e1` Prevector: fix 2 bugs in currently unreached code paths (kazcw) -- #7922 `90653bc` CBase58Data::SetString: cleanse the full vector (kazcw) -- #7881 `c4e8390` Update release process (laanwj) -- #7952 `a9c8b74` Log invalid block hash to make debugging easier (paveljanik) -- #7974 `8206835` More comments on the design of AttemptToEvictConnection (gmaxwell) -- #7795 `47a7cfb` UpdateTip: log only one line at most per block (laanwj) -- #8110 `e7e25ea` Add benchmarking notes (fanquake) -- #8121 `58f0c92` Update implemented BIPs list (fanquake) -- #8029 `58725ba` Simplify OS X build notes (fanquake) -- #8143 `d46b8b5` comment nit: miners don't vote (instagibbs) -- #8136 `22e0b35` Log/report in 10% steps during VerifyDB (jonasschnelli) -- #8168 `d366185` util: Add ParseUInt32 and ParseUInt64 (laanwj) -- #8178 `f7b1bfc` Add git and github tips and tricks to developer notes (sipa) -- #8177 `67db011` developer notes: updates for C++11 (kazcw) -- #8229 `8ccdac1` [Doc] Update OS X build notes for 10.11 SDK (fanquake) -- #8233 `9f1807a` Mention Linux ARM executables in release process and notes (laanwj) -- #7540 `ff46dd4` Rename OP_NOP3 to OP_CHECKSEQUENCEVERIFY (btcdrak) -- #8289 `26316ff` bash-completion: Adapt for 0.12 and 0.13 (roques) -- #7453 `3dc3149` Missing patches from 0.12 (MarcoFalke) -- #7113 `54a550b` Switch to a more efficient rolling Bloom filter (sipa) -- #7257 `de9e5ea` Combine common error strings for different options so translations can be shared and reused (luke-jr) -- #7304 `b8f485c` [contrib] Add clang-format-diff.py (MarcoFalke) -- #7378 `e6f97ef` devtools: replace github-merge with python version (laanwj) -- #7395 `0893705` devtools: show pull and commit information in github-merge (laanwj) -- #7402 `6a5932b` devtools: github-merge get toplevel dir without extra whitespace (achow101) -- #7425 `20a408c` devtools: Fix utf-8 support in messages for github-merge (laanwj) -- #7632 `409f843` Delete outdated test-patches reference (Lewuathe) -- #7662 `386f438` remove unused NOBLKS_VERSION_{START,END} constants (rat4) -- #7737 `aa0d2b2` devtools: make github-merge.py use py3 (laanwj) -- #7781 `55db5f0` devtools: Auto-set branch to merge to in github-merge (laanwj) -- #7934 `f17032f` Improve rolling bloom filter performance and benchmark (sipa) -- #8004 `2efe38b` signal handling: fReopenDebugLog and fRequestShutdown should be type sig_atomic_t (catilac) -- #7713 `f6598df` Fixes for verify-commits script (petertodd) -- #8412 `8360d5b` libconsensus: Expose a flag for BIP112 (jtimon) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 21E14 -- accraze -- Adam Brown -- Alexander Regueiro -- Alex Morcos -- Alfie John -- Alice Wonder -- AlSzacrel -- Andrew Chow -- Andrés G. Aragoneses -- Bob McElrath -- BtcDrak -- calebogden -- Cédric Félizard -- Chirag Davé -- Chris Moore -- Chris Stewart -- Christian von Roques -- Chris Wheeler -- Cory Fields -- crowning- -- Daniel Cousens -- Daniel Kraft -- Denis Lukianov -- Elias Rohrer -- Elliot Olds -- Eric Shaw -- error10 -- Ethan Heilman -- face -- fanquake -- Francesco 'makevoid' Canessa -- fsb4000 -- Gavin Andresen -- gladoscc -- Gregory Maxwell -- Gregory Sanders -- instagibbs -- James O'Beirne -- Jannes Faber -- Jarret Dyrbye -- Jeremy Rand -- jloughry -- jmacwhyte -- Joao Fonseca -- Johnson Lau -- Jonas Nick -- Jonas Schnelli -- Jonathan Cross -- João Barbosa -- Jorge Timón -- Kaz Wesley -- Kefkius -- kirkalx -- Krzysztof Jurewicz -- Leviathn -- lewuathe -- Luke Dashjr -- Luv Khemani -- Marcel Krüger -- Marco Falke -- Mark Friedenbach -- Matt -- Matt Bogosian -- Matt Corallo -- Matthew English -- Matthew Zipkin -- mb300sd -- Mitchell Cash -- mrbandrews -- mruddy -- Murch -- Mustafa -- Nathaniel Mahieu -- Nicolas Dorier -- Patrick Strateman -- Paul Rabahy -- paveljanik -- Pavel Janík -- Pavel Vasin -- Pedro Branco -- Peter Todd -- Philip Kaufmann -- Pieter Wuille -- Prayag Verma -- ptschip -- Puru -- randy-waterhouse -- R E Broadley -- Rusty Russell -- Suhas Daftuar -- Suriyaa Kudo -- TheLazieR Yip -- Thomas Kerin -- Tom Harding -- Tyler Hardin -- UdjinM6 -- Warren Togami -- Will Binns -- Wladimir J. van der Laan -- Yuri Zhykin - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.13.1.md b/doc/release-notes/release-notes-0.13.1.md deleted file mode 100644 index 75c2d61be8d3c..0000000000000 --- a/doc/release-notes/release-notes-0.13.1.md +++ /dev/null @@ -1,410 +0,0 @@ -Bitcoin Core version 0.13.1 is now available from: - - - -This is a new minor version release, including activation parameters for the -segwit softfork, various bugfixes and performance improvements, as well as -updated translations. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -an OS initially released in 2001. This means that not even critical security -updates will be released anymore. Without security updates, using a bitcoin -wallet on a XP machine is irresponsible at least. - -In addition to that, with 0.12.x there have been varied reports of Bitcoin Core -randomly crashing on Windows XP. It is [not clear](https://github.com/bitcoin/bitcoin/issues/7681#issuecomment-217439891) -what the source of these crashes is, but it is likely that upstream -libraries such as Qt are no longer being tested on XP. - -We do not have time nor resources to provide support for an OS that is -end-of-life. From 0.13.0 on, Windows XP is no longer supported. Users are -suggested to upgrade to a newer version of Windows, or install an alternative OS -that is supported. - -No attempt is made to prevent installing or running the software on Windows XP, -you can still do so at your own risk, but do not expect it to work: do not -report issues about Windows XP to the issue tracker. - -From 0.13.1 onwards OS X 10.7 is no longer supported. 0.13.0 was intended to work on 10.7+, -but severe issues with the libc++ version on 10.7.x keep it from running reliably. -0.13.1 now requires 10.8+, and will communicate that to 10.7 users, rather than crashing unexpectedly. - -Notable changes -=============== - -Segregated witness soft fork ----------------------------- - -Segregated witness (segwit) is a soft fork that, if activated, will -allow transaction-producing software to separate (segregate) transaction -signatures (witnesses) from the part of the data in a transaction that is -covered by the txid. This provides several immediate benefits: - -- **Elimination of unwanted transaction malleability:** Segregating the witness - allows both existing and upgraded software to calculate the transaction - identifier (txid) of transactions without referencing the witness, which can - sometimes be changed by third-parties (such as miners) or by co-signers in a - multisig spend. This solves all known cases of unwanted transaction - malleability, which is a problem that makes programming Bitcoin wallet - software more difficult and which seriously complicates the design of smart - contracts for Bitcoin. - -- **Capacity increase:** Segwit transactions contain new fields that are not - part of the data currently used to calculate the size of a block, which - allows a block containing segwit transactions to hold more data than allowed - by the current maximum block size. Estimates based on the transactions - currently found in blocks indicate that if all wallets switch to using - segwit, the network will be able to support about 70% more transactions. The - network will also be able to support more of the advanced-style payments - (such as multisig) than it can support now because of the different weighting - given to different parts of a transaction after segwit activates (see the - following section for details). - -- **Weighting data based on how it affects node performance:** Some parts of - each Bitcoin block need to be stored by nodes in order to validate future - blocks; other parts of a block can be immediately forgotten (pruned) or used - only for helping other nodes sync their copy of the block chain. One large - part of the immediately prunable data are transaction signatures (witnesses), - and segwit makes it possible to give a different "weight" to segregated - witnesses to correspond with the lower demands they place on node resources. - Specifically, each byte of a segregated witness is given a weight of 1, each - other byte in a block is given a weight of 4, and the maximum allowed weight - of a block is 4 million. Weighting the data this way better aligns the most - profitable strategy for creating blocks with the long-term costs of block - validation. - -- **Signature covers value:** A simple improvement in the way signatures are - generated in segwit simplifies the design of secure signature generators - (such as hardware wallets), reduces the amount of data the signature - generator needs to download, and allows the signature generator to operate - more quickly. This is made possible by having the generator sign the amount - of bitcoins they think they are spending, and by having full nodes refuse to - accept those signatures unless the amount of bitcoins being spent is exactly - the same as was signed. For non-segwit transactions, wallets instead had to - download the complete previous transactions being spent for every payment - they made, which could be a slow operation on hardware wallets and in other - situations where bandwidth or computation speed was constrained. - -- **Linear scaling of sighash operations:** In 2015 a block was produced that - required about 25 seconds to validate on modern hardware because of the way - transaction signature hashes are performed. Other similar blocks, or blocks - that could take even longer to validate, can still be produced today. The - problem that caused this can't be fixed in a soft fork without unwanted - side-effects, but transactions that opt-in to using segwit will now use a - different signature method that doesn't suffer from this problem and doesn't - have any unwanted side-effects. - -- **Increased security for multisig:** Bitcoin addresses (both P2PKH addresses - that start with a '1' and P2SH addresses that start with a '3') use a hash - function known as RIPEMD-160. For P2PKH addresses, this provides about 160 - bits of security---which is beyond what cryptographers believe can be broken - today. But because P2SH is more flexible, only about 80 bits of security is - provided per address. Although 80 bits is very strong security, it is within - the realm of possibility that it can be broken by a powerful adversary. - Segwit allows advanced transactions to use the SHA256 hash function instead, - which provides about 128 bits of security (that is 281 trillion times as - much security as 80 bits and is equivalent to the maximum bits of security - believed to be provided by Bitcoin's choice of parameters for its Elliptic - Curve Digital Security Algorithm [ECDSA].) - -- **More efficient almost-full-node security** Satoshi Nakamoto's original - Bitcoin paper describes a method for allowing newly-started full nodes to - skip downloading and validating some data from historic blocks that are - protected by large amounts of proof of work. Unfortunately, Nakamoto's - method can't guarantee that a newly-started node using this method will - produce an accurate copy of Bitcoin's current ledger (called the UTXO set), - making the node vulnerable to falling out of consensus with other nodes. - Although the problems with Nakamoto's method can't be fixed in a soft fork, - Segwit accomplishes something similar to his original proposal: it makes it - possible for a node to optionally skip downloading some blockchain data - (specifically, the segregated witnesses) while still ensuring that the node - can build an accurate copy of the UTXO set for the block chain with the most - proof of work. Segwit enables this capability at the consensus layer, but - note that Bitcoin Core does not provide an option to use this capability as - of this 0.13.1 release. - -- **Script versioning:** Segwit makes it easy for future soft forks to allow - Bitcoin users to individually opt-in to almost any change in the Bitcoin - Script language when those users receive new transactions. Features - currently being researched by Bitcoin Core contributors that may use this - capability include support for Schnorr signatures, which can improve the - privacy and efficiency of multisig transactions (or transactions with - multiple inputs), and Merklized Abstract Syntax Trees (MAST), which can - improve the privacy and efficiency of scripts with two or more conditions. - Other Bitcoin community members are studying several other improvements - that can be made using script versioning. - -Activation for the segwit soft fork is being managed using BIP9 -versionbits. Segwit's version bit is bit 1, and nodes will begin -tracking which blocks signal support for segwit at the beginning of the -first retarget period after segwit's start date of 15 November 2016. If -95% of blocks within a 2,016-block retarget period (about two weeks) -signal support for segwit, the soft fork will be locked in. After -another 2,016 blocks, segwit will activate. - -For more information about segwit, please see the [segwit FAQ][], the -[segwit wallet developers guide][] or BIPs [141][BIP141], [143][BIP143], -[144][BIP144], and [145][BIP145]. If you're a miner or mining pool -operator, please see the [versionbits FAQ][] for information about -signaling support for a soft fork. - -[Segwit FAQ]: https://bitcoincore.org/en/2016/01/26/segwit-benefits/ -[segwit wallet developers guide]: https://bitcoincore.org/en/segwit_wallet_dev/ -[BIP141]: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki -[BIP143]: https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki -[BIP144]: https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki -[BIP145]: https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki -[versionbits FAQ]: https://bitcoincore.org/en/2016/06/08/version-bits-miners-faq/ - - -Null dummy soft fork -------------------- - -Combined with the segwit soft fork is an additional change that turns a -long-existing network relay policy into a consensus rule. The -`OP_CHECKMULTISIG` and `OP_CHECKMULTISIGVERIFY` opcodes consume an extra -stack element ("dummy element") after signature validation. The dummy -element is not inspected in any manner, and could be replaced by any -value without invalidating the script. - -Because any value can be used for this dummy element, it's possible for -a third-party to insert data into other people's transactions, changing -the transaction's txid (called transaction malleability) and possibly -causing other problems. - -Since Bitcoin Core 0.10.0, nodes have defaulted to only relaying and -mining transactions whose dummy element was a null value (0x00, also -called OP_0). The null dummy soft fork turns this relay rule into a -consensus rule both for non-segwit transactions and segwit transactions, -so that this method of mutating transactions is permanently eliminated -from the network. - -Signaling for the null dummy soft fork is done by signaling support -for segwit, and the null dummy soft fork will activate at the same time -as segwit. - -For more information, please see [BIP147][]. - -[BIP147]: https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki - -Low-level RPC changes ---------------------- - -- `importprunedfunds` only accepts two required arguments. Some versions accept - an optional third arg, which was always ignored. Make sure to never pass more - than two arguments. - - -Linux ARM builds ----------------- - -With the 0.13.0 release, pre-built Linux ARM binaries were added to the set of -uploaded executables. Additional detail on the ARM architecture targeted by each -is provided below. - -The following extra files can be found in the download directory or torrent: - -- `bitcoin-${VERSION}-arm-linux-gnueabihf.tar.gz`: Linux binaries targeting - the 32-bit ARMv7-A architecture. -- `bitcoin-${VERSION}-aarch64-linux-gnu.tar.gz`: Linux binaries targeting - the 64-bit ARMv8-A architecture. - -ARM builds are still experimental. If you have problems on a certain device or -Linux distribution combination please report them on the bug tracker, it may be -possible to resolve them. Note that the device you use must be (backward) -compatible with the architecture targeted by the binary that you use. -For example, a Raspberry Pi 2 Model B or Raspberry Pi 3 Model B (in its 32-bit -execution state) device, can run the 32-bit ARMv7-A targeted binary. However, -no model of Raspberry Pi 1 device can run either binary because they are all -ARMv6 architecture devices that are not compatible with ARMv7-A or ARMv8-A. - -Note that Android is not considered ARM Linux in this context. The executables -are not expected to work out of the box on Android. - - -0.13.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### Consensus -- #8636 `9dfa0c8` Implement NULLDUMMY softfork (BIP147) (jl2012) -- #8848 `7a34a46` Add NULLDUMMY verify flag in bitcoinconsensus.h (jl2012) -- #8937 `8b66659` Define start and end time for segwit deployment (sipa) - -### RPC and other APIs -- #8581 `526d2b0` Drop misleading option in importprunedfunds (MarcoFalke) -- #8699 `a5ec248` Remove createwitnessaddress RPC command (jl2012) -- #8780 `794b007` Deprecate getinfo (MarcoFalke) -- #8832 `83ad563` Throw JSONRPCError when utxo set can not be read (MarcoFalke) -- #8884 `b987348` getblockchaininfo help: pruneheight is the lowest, not highest, block (luke-jr) -- #8858 `3f508ed` rpc: Generate auth cookie in hex instead of base64 (laanwj) -- #8951 `7c2bf4b` RPC/Mining: getblocktemplate: Update and fix formatting of help (luke-jr) - -### Block and transaction handling -- #8611 `a9429ca` Reduce default number of blocks to check at startup (sipa) -- #8634 `3e80ab7` Add policy: null signature for failed CHECK(MULTI)SIG (jl2012) -- #8525 `1672225` Do not store witness txn in rejection cache (sipa) -- #8499 `9777fe1` Add several policy limits and disable uncompressed keys for segwit scripts (jl2012) -- #8526 `0027672` Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH (jl2012) -- #8524 `b8c79a0` Precompute sighashes (sipa) -- #8651 `b8c79a0` Predeclare PrecomputedTransactionData as struct (sipa) - -### P2P protocol and network code -- #8740 `42ea51a` No longer send local address in addrMe (laanwj) -- #8427 `69d1cd2` Ignore `notfound` P2P messages (laanwj) -- #8573 `4f84082` Set jonasschnellis dns-seeder filter flag (jonasschnelli) -- #8712 `23feab1` Remove maxuploadtargets recommended minimum (jonasschnelli) -- #8862 `7ae6242` Fix a few cases where messages were sent after requested disconnect (theuni) -- #8393 `fe1975a` Support for compact blocks together with segwit (sipa) -- #8282 `2611ad7` Feeler connections to increase online addrs in the tried table (EthanHeilman) -- #8612 `2215c22` Check for compatibility with download in FindNextBlocksToDownload (sipa) -- #8606 `bbf379b` Fix some locks (sipa) -- #8594 `ab295bb` Do not add random inbound peers to addrman (gmaxwell) -- #8940 `5b4192b` Add x9 service bit support to dnsseed.bluematt.me, seed.bitcoinstats.com (TheBlueMatt, cdecker) -- #8944 `685e4c7` Remove bogus assert on number of oubound connections. (TheBlueMatt) -- #8949 `0dbc48a` Be more agressive in getting connections to peers with relevant services (gmaxwell) - -### Build system -- #8293 `fa5b249` Allow building libbitcoinconsensus without any univalue (luke-jr) -- #8492 `8b0bdd3` Allow building bench_bitcoin by itself (luke-jr) -- #8563 `147003c` Add configure check for -latomic (ajtowns) -- #8626 `ea51b0f` Berkeley DB v6 compatibility fix (netsafe) -- #8520 `75f2065` Remove check for `openssl/ec.h` (laanwj) - -### GUI -- #8481 `d9f0d4e` Fix minimize and close bugs (adlawren) -- #8487 `a37cec5` Persist the datadir after option reset (achow101) -- #8697 `41fd852` Fix op order to append first alert (rodasmith) -- #8678 `8e03382` Fix UI bug that could result in paying unexpected fee (jonasschnelli) -- #8911 `7634d8e` Translate all files, even if wallet disabled (laanwj) -- #8540 `1db3352` Fix random segfault when closing "Choose data directory" dialog (laanwj) -- #7579 `f1c0d78` Show network/chain errors in the GUI (jonasschnelli) - -### Wallet -- #8443 `464dedd` Trivial cleanup of HD wallet changes (jonasschnelli) -- #8539 `cb07f19` CDB: fix debug output (crowning-) -- #8664 `091cdeb` Fix segwit-related wallet bug (sdaftuar) -- #8693 `c6a6291` Add witness address to address book (instagibbs) -- #8765 `6288659` Remove "unused" ThreadFlushWalletDB from removeprunedfunds (jonasschnelli) - -### Tests and QA -- #8713 `ae8c7df` create_cache: Delete temp dir when done (MarcoFalke) -- #8716 `e34374e` Check legacy wallet as well (MarcoFalke) -- #8750 `d6ebe13` Refactor RPCTestHandler to prevent TimeoutExpired (MarcoFalke) -- #8652 `63462c2` remove root test directory for RPC tests (yurizhykin) -- #8724 `da94272` walletbackup: Sync blocks inside the loop (MarcoFalke) -- #8400 `bea02dc` enable rpcbind_test (yurizhykin) -- #8417 `f70be14` Add walletdump RPC test (including HD- & encryption-tests) (jonasschnelli) -- #8419 `a7aa3cc` Enable size accounting in mining unit tests (sdaftuar) -- #8442 `8bb1efd` Rework hd wallet dump test (MarcoFalke) -- #8528 `3606b6b` Update p2p-segwit.py to reflect correct behavior (instagibbs) -- #8531 `a27cdd8` abandonconflict: Use assert_equal (MarcoFalke) -- #8667 `6b07362` Fix SIGHASH_SINGLE bug in test_framework SignatureHash (jl2012) -- #8673 `03b0196` Fix obvious assignment/equality error in test (JeremyRubin) -- #8739 `cef633c` Fix broken sendcmpct test in p2p-compactblocks.py (sdaftuar) -- #8418 `ff893aa` Add tests for compact blocks (sdaftuar) -- #8803 `375437c` Ping regularly in p2p-segwit.py to keep connection alive (jl2012) -- #8827 `9bbe66e` Split up slow RPC calls to avoid pruning test timeouts (sdaftuar) -- #8829 `2a8bca4` Add bitcoin-tx JSON tests (jnewbery) -- #8834 `1dd1783` blockstore: Switch to dumb dbm (MarcoFalke) -- #8835 `d87227d` nulldummy.py: Don't run unused code (MarcoFalke) -- #8836 `eb18cc1` bitcoin-util-test.py should fail if the output file is empty (jnewbery) -- #8839 `31ab2f8` Avoid ConnectionResetErrors during RPC tests (laanwj) -- #8840 `cbc3fe5` Explicitly set encoding to utf8 when opening text files (laanwj) -- #8841 `3e4abb5` Fix nulldummy test (jl2012) -- #8854 `624a007` Fix race condition in p2p-compactblocks test (sdaftuar) -- #8857 `1f60d45` mininode: Only allow named args in wait_until (MarcoFalke) -- #8860 `0bee740` util: Move wait_bitcoinds() into stop_nodes() (MarcoFalke) -- #8882 `b73f065` Fix race conditions in p2p-compactblocks.py and sendheaders.py (sdaftuar) -- #8904 `cc6f551` Fix compact block shortids for a test case (dagurval) - -### Documentation -- #8754 `0e2c6bd` Target protobuf 2.6 in OS X build notes. (fanquake) -- #8461 `b17a3f9` Document return value of networkhashps for getmininginfo RPC endpoint (jlopp) -- #8512 `156e305` Corrected JSON typo on setban of net.cpp (sevastos) -- #8683 `8a7d7ff` Fix incorrect file name bitcoin.qrc (bitcoinsSG) -- #8891 `5e0dd9e` Update bips.md for Segregated Witness (fanquake) -- #8545 `863ae74` Update git-subtree-check.sh README (MarcoFalke) -- #8607 `486650a` Fix doxygen off-by-one comments, fix typos (MarcoFalke) -- #8560 `c493f43` Fix two VarInt examples in serialize.h (cbarcenas) -- #8737 `084cae9` UndoReadFromDisk works on undo files (rev), not on block files (paveljanik) -- #8625 `0a35573` Clarify statement about parallel jobs in rpc-tests.py (isle2983) -- #8624 `0e6d753` build: Mention curl (MarcoFalke) -- #8604 `b09e13c` build,doc: Update for 0.13.0+ and OpenBSD 5.9 (laanwj) -- #8939 `06d15fb` Update implemented bips for 0.13.1 (sipa) - -### Miscellaneous -- #8742 `d31ac72` Specify Protobuf version 2 in paymentrequest.proto (fanquake) -- #8414,#8558,#8676,#8700,#8701,#8702 Add missing copyright headers (isle2983, kazcw) -- #8899 `4ed2627` Fix wake from sleep issue with Boost 1.59.0 (fanquake) -- #8817 `bcf3806` update bitcoin-tx to output witness data (jnewbery) -- #8513 `4e5fc31` Fix a type error that would not compile on OSX. (JeremyRubin) -- #8392 `30eac2d` Fix several node initialization issues (sipa) -- #8548 `305d8ac` Use `__func__` to get function name for output printing (MarcoFalke) -- #8291 `a987431` [util] CopyrightHolders: Check for untranslated substitution (MarcoFalke) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- adlawren -- Alexey Vesnin -- Anders Øyvind Urke-Sætre -- Andrew Chow -- Anthony Towns -- BtcDrak -- Chris Stewart -- Christian Barcenas -- Christian Decker -- Cory Fields -- crowning- -- Dagur Valberg Johannsson -- David A. Harding -- Eric Lombrozo -- Ethan Heilman -- fanquake -- Gaurav Rana -- Gregory Maxwell -- instagibbs -- isle2983 -- Jameson Lopp -- Jeremy Rubin -- jnewbery -- Johnson Lau -- Jonas Schnelli -- jonnynewbs -- Justin Camarena -- Kaz Wesley -- leijurv -- Luke Dashjr -- MarcoFalke -- Marty Jones -- Matt Corallo -- Micha -- Michael Ford -- mruddy -- Pavel Janík -- Pieter Wuille -- rodasmith -- Sev -- Suhas Daftuar -- whythat -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.13.2.md b/doc/release-notes/release-notes-0.13.2.md deleted file mode 100644 index 45fff5c8bbdc1..0000000000000 --- a/doc/release-notes/release-notes-0.13.2.md +++ /dev/null @@ -1,178 +0,0 @@ -Bitcoin Core version 0.13.2 is now available from: - - - -This is a new minor version release, including various bugfixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -an OS initially released in 2001. This means that not even critical security -updates will be released anymore. Without security updates, using a bitcoin -wallet on a XP machine is irresponsible at least. - -In addition to that, with 0.12.x there have been varied reports of Bitcoin Core -randomly crashing on Windows XP. It is [not clear](https://github.com/bitcoin/bitcoin/issues/7681#issuecomment-217439891) -what the source of these crashes is, but it is likely that upstream -libraries such as Qt are no longer being tested on XP. - -We do not have time nor resources to provide support for an OS that is -end-of-life. From 0.13.0 on, Windows XP is no longer supported. Users are -suggested to upgrade to a newer version of Windows, or install an alternative OS -that is supported. - -No attempt is made to prevent installing or running the software on Windows XP, -you can still do so at your own risk, but do not expect it to work: do not -report issues about Windows XP to the issue tracker. - -From 0.13.1 onwards OS X 10.7 is no longer supported. 0.13.0 was intended to work on 10.7+, -but severe issues with the libc++ version on 10.7.x keep it from running reliably. -0.13.1 now requires 10.8+, and will communicate that to 10.7 users, rather than crashing unexpectedly. - -Notable changes -=============== - -Change to wallet handling of mempool rejection ------------------------------------------------ - -When a newly created transaction failed to enter the mempool due to -the limits on chains of unconfirmed transactions the sending RPC -calls would return an error. The transaction would still be queued -in the wallet and, once some of the parent transactions were -confirmed, broadcast after the software was restarted. - -This behavior has been changed to return success and to reattempt -mempool insertion at the same time transaction rebroadcast is -attempted, avoiding a need for a restart. - -Transactions in the wallet which cannot be accepted into the mempool -can be abandoned with the previously existing abandontransaction RPC -(or in the GUI via a context menu on the transaction). - - -0.13.2 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### Consensus -- #9293 `e591c10` [0.13 Backport #9053] IBD using chainwork instead of height and not using header timestamp (gmaxwell) -- #9053 `5b93eee` IBD using chainwork instead of height and not using header timestamps (gmaxwell) - -### RPC and other APIs -- #8845 `1d048b9` Don't return the address of a P2SH of a P2SH (jnewbery) -- #9041 `87fbced` keypoololdest denote Unix epoch, not GMT (s-matthew-english) -- #9122 `f82c81b` fix getnettotals RPC description about timemillis (visvirial) -- #9042 `5bcb05d` [rpc] ParseHash: Fail when length is not 64 (MarcoFalke) -- #9194 `f26dab7` Add option to return non-segwit serialization via rpc (instagibbs) -- #9347 `b711390` [0.13.2] wallet/rpc backports (MarcoFalke) -- #9292 `c365556` Complain when unknown rpcserialversion is specified (sipa) -- #9322 `49a612f` [qa] Don't set unknown rpcserialversion (MarcoFalke) - -### Block and transaction handling -- #8357 `ce0d817` [mempool] Fix relaypriority calculation error (maiiz) -- #9267 `0a4aa87` [0.13 backport #9239] Disable fee estimates for a confirm target of 1 block (morcos) -- #9196 `0c09d9f` Send tip change notification from invalidateblock (ryanofsky) - -### P2P protocol and network code -- #8995 `9ef3875` Add missing cs_main lock to ::GETBLOCKTXN processing (TheBlueMatt) -- #9234 `94531b5` torcontrol: Explicitly request RSA1024 private key (laanwj) -- #8637 `2cad5db` Compact Block Tweaks (rebase of #8235) (sipa) -- #9058 `286e548` Fixes for p2p-compactblocks.py test timeouts on travis (#8842) (ryanofsky) -- #8865 `4c71fc4` Decouple peer-processing-logic from block-connection-logic (TheBlueMatt) -- #9117 `6fe3981` net: don't send feefilter messages before the version handshake is complete (theuni) -- #9188 `ca1fd75` Make orphan parent fetching ask for witnesses (gmaxwell) -- #9052 `3a3bcbf` Use RelevantServices instead of node_network in AttemptToEvict (gmaxwell) -- #9048 `9460771` [0.13 backport #9026] Fix handling of invalid compact blocks (sdaftuar) -- #9357 `03b6f62` [0.13 backport #9352] Attempt reconstruction from all compact block announcements (sdaftuar) -- #9189 `b96a8f7` Always add default_witness_commitment with GBT client support (sipa) -- #9253 `28d0f22` Fix calculation of number of bound sockets to use (TheBlueMatt) -- #9199 `da5a16b` Always drop the least preferred HB peer when adding a new one (gmaxwell) - -### Build system -- #9169 `d1b4da9` build: fix qt5.7 build under macOS (theuni) -- #9326 `a0f7ece` Update for OpenSSL 1.1 API (gmaxwell) -- #9224 `396c405` Prevent FD_SETSIZE error building on OpenBSD (ivdsangen) - -### GUI -- #8972 `6f86b53` Make warnings label selectable (jonasschnelli) (MarcoFalke) -- #9185 `6d70a73` Fix coincontrol sort issue (jonasschnelli) -- #9094 `5f3a12c` Use correct conversion function for boost::path datadir (laanwj) -- #8908 `4a974b2` Update bitcoin-qt.desktop (s-matthew-english) -- #9190 `dc46b10` Plug many memory leaks (laanwj) - -### Wallet -- #9290 `35174a0` Make RelayWalletTransaction attempt to AcceptToMemoryPool (gmaxwell) -- #9295 `43bcfca` Bugfix: Fundrawtransaction: don't terminate when keypool is empty (jonasschnelli) -- #9302 `f5d606e` Return txid even if ATMP fails for new transaction (sipa) -- #9262 `fe39f26` Prefer coins that have fewer ancestors, sanity check txn before ATMP (instagibbs) - -### Tests and QA -- #9159 `eca9b46` Wait for specific block announcement in p2p-compactblocks (ryanofsky) -- #9186 `dccdc3a` Fix use-after-free in scheduler tests (laanwj) -- #9168 `3107280` Add assert_raises_message to check specific error message (mrbandrews) -- #9191 `29435db` 0.13.2 Backports (MarcoFalke) -- #9077 `1d4c884` Increase wallet-dump RPC timeout (ryanofsky) -- #9098 `ecd7db5` Handle zombies and cluttered tmpdirs (MarcoFalke) -- #8927 `387ec9d` Add script tests for FindAndDelete in pre-segwit and segwit scripts (jl2012) -- #9200 `eebc699` bench: Fix subtle counting issue when rescaling iteration count (laanwj) - -### Miscellaneous -- #8838 `094848b` Calculate size and weight of block correctly in CreateNewBlock() (jnewbery) -- #8920 `40169dc` Set minimum required Boost to 1.47.0 (fanquake) -- #9251 `a710a43` Improvement of documentation of command line parameter 'whitelist' (wodry) -- #8932 `106da69` Allow bitcoin-tx to create v2 transactions (btcdrak) -- #8929 `12428b4` add software-properties-common (sigwo) -- #9120 `08d1c90` bug: Missed one "return false" in recent refactoring in #9067 (UdjinM6) -- #9067 `f85ee01` Fix exit codes (UdjinM6) -- #9340 `fb987b3` [0.13] Update secp256k1 subtree (MarcoFalke) -- #9229 `b172377` Remove calls to getaddrinfo_a (TheBlueMatt) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Alex Morcos -- BtcDrak -- Cory Fields -- fanquake -- Gregory Maxwell -- Gregory Sanders -- instagibbs -- Ivo van der Sangen -- jnewbery -- Johnson Lau -- Jonas Schnelli -- Luke Dashjr -- maiiz -- MarcoFalke -- Masahiko Hyuga -- Matt Corallo -- matthias -- mrbandrews -- Pavel Janík -- Pieter Wuille -- randy-waterhouse -- Russell Yanofsky -- S. Matthew English -- Steven -- Suhas Daftuar -- UdjinM6 -- Wladimir J. van der Laan -- wodry - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.14.0.md b/doc/release-notes/release-notes-0.14.0.md deleted file mode 100644 index c41f22979b581..0000000000000 --- a/doc/release-notes/release-notes-0.14.0.md +++ /dev/null @@ -1,873 +0,0 @@ -Bitcoin Core version 0.14.0 is now available from: - - - -This is a new major version release, including new features, various bugfixes -and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -Performance Improvements --------------- - -Validation speed and network propagation performance have been greatly -improved, leading to much shorter sync and initial block download times. - -- The script signature cache has been reimplemented as a "cuckoo cache", - allowing for more signatures to be cached and faster lookups. -- Assumed-valid blocks have been introduced which allows script validation to - be skipped for ancestors of known-good blocks, without changing the security - model. See below for more details. -- In some cases, compact blocks are now relayed before being fully validated as - per BIP152. -- P2P networking has been refactored with a focus on concurrency and - throughput. Network operations are no longer bottlenecked by validation. As a - result, block fetching is several times faster than previous releases in many - cases. -- The UTXO cache now claims unused mempool memory. This speeds up initial block - download as UTXO lookups are a major bottleneck there, and there is no use for - the mempool at that stage. - - -Manual Pruning --------------- - -Bitcoin Core has supported automatically pruning the blockchain since 0.11. Pruning -the blockchain allows for significant storage space savings as the vast majority of -the downloaded data can be discarded after processing so very little of it remains -on the disk. - -Manual block pruning can now be enabled by setting `-prune=1`. Once that is set, -the RPC command `pruneblockchain` can be used to prune the blockchain up to the -specified height or timestamp. - -`getinfo` Deprecated --------------------- - -The `getinfo` RPC command has been deprecated. Each field in the RPC call -has been moved to another command's output with that command also giving -additional information that `getinfo` did not provide. The following table -shows where each field has been moved to: - -|`getinfo` field | Moved to | -|------------------|-------------------------------------------| -`"version"` | `getnetworkinfo()["version"]` -`"protocolversion"`| `getnetworkinfo()["protocolversion"]` -`"walletversion"` | `getwalletinfo()["walletversion"]` -`"balance"` | `getwalletinfo()["balance"]` -`"blocks"` | `getblockchaininfo()["blocks"]` -`"timeoffset"` | `getnetworkinfo()["timeoffset"]` -`"connections"` | `getnetworkinfo()["connections"]` -`"proxy"` | `getnetworkinfo()["networks"][0]["proxy"]` -`"difficulty"` | `getblockchaininfo()["difficulty"]` -`"testnet"` | `getblockchaininfo()["chain"] == "test"` -`"keypoololdest"` | `getwalletinfo()["keypoololdest"]` -`"keypoolsize"` | `getwalletinfo()["keypoolsize"]` -`"unlocked_until"` | `getwalletinfo()["unlocked_until"]` -`"paytxfee"` | `getwalletinfo()["paytxfee"]` -`"relayfee"` | `getnetworkinfo()["relayfee"]` -`"errors"` | `getnetworkinfo()["warnings"]` - -ZMQ On Windows --------------- - -Previously the ZeroMQ notification system was unavailable on Windows -due to various issues with ZMQ. These have been fixed upstream and -now ZMQ can be used on Windows. Please see [this document](https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md) for -help with using ZMQ in general. - -Nested RPC Commands in Debug Console ------------------------------------- - -The ability to nest RPC commands has been added to the debug console. This -allows users to have the output of a command become the input to another -command without running the commands separately. - -The nested RPC commands use bracket syntax (i.e. `getwalletinfo()`) and can -be nested (i.e. `getblock(getblockhash(1))`). Simple queries can be -done with square brackets where object values are accessed with either an -array index or a non-quoted string (i.e. `listunspent()[0][txid]`). Both -commas and spaces can be used to separate parameters in both the bracket syntax -and normal RPC command syntax. - -Network Activity Toggle ------------------------ - -A RPC command and GUI toggle have been added to enable or disable all p2p -network activity. The network status icon in the bottom right hand corner -is now the GUI toggle. Clicking the icon will either enable or disable all -p2p network activity. If network activity is disabled, the icon will -be grayed out with an X on top of it. - -Additionally the `setnetworkactive` RPC command has been added which does -the same thing as the GUI icon. The command takes one boolean parameter, -`true` enables networking and `false` disables it. - -Out-of-sync Modal Info Layer ----------------------------- - -When Bitcoin Core is out-of-sync on startup, a semi-transparent information -layer will be shown over top of the normal display. This layer contains -details about the current sync progress and estimates the amount of time -remaining to finish syncing. This layer can also be hidden and subsequently -unhidden by clicking on the progress bar at the bottom of the window. - -Support for JSON-RPC Named Arguments ------------------------------------- - -Commands sent over the JSON-RPC interface and through the `bitcoin-cli` binary -can now use named arguments. This follows the [JSON-RPC specification](http://www.jsonrpc.org/specification) -for passing parameters by-name with an object. - -`bitcoin-cli` has been updated to support this by parsing `name=value` arguments -when the `-named` option is given. - -Some examples: - - src/bitcoin-cli -named help command="help" - src/bitcoin-cli -named getblockhash height=0 - src/bitcoin-cli -named getblock blockhash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f - src/bitcoin-cli -named sendtoaddress address="(snip)" amount="1.0" subtractfeefromamount=true - -The order of arguments doesn't matter in this case. Named arguments are also -useful to leave out arguments that should stay at their default value. The -rarely-used arguments `comment` and `comment_to` to `sendtoaddress`, for example, can -be left out. However, this is not yet implemented for many RPC calls, this is -expected to land in a later release. - -The RPC server remains fully backwards compatible with positional arguments. - -Opt into RBF When Sending -------------------------- - -A new startup option, `-walletrbf`, has been added to allow users to have all -transactions sent opt into RBF support. The default value for this option is -currently `false`, so transactions will not opt into RBF by default. The new -`bumpfee` RPC can be used to replace transactions that opt into RBF. - -Sensitive Data Is No Longer Stored In Debug Console History ------------------------------------------------------------ - -The debug console maintains a history of previously entered commands that can be -accessed by pressing the Up-arrow key so that users can easily reuse previously -entered commands. Commands which have sensitive information such as passphrases and -private keys will now have a `(...)` in place of the parameters when accessed through -the history. - -Retaining the Mempool Across Restarts -------------------------------------- - -The mempool will be saved to the data directory prior to shutdown -to a `mempool.dat` file. This file preserves the mempool so that when the node -restarts the mempool can be filled with transactions without waiting for new transactions -to be created. This will also preserve any changes made to a transaction through -commands such as `prioritisetransaction` so that those changes will not be lost. - -Final Alert ------------ - -The Alert System was [disabled and deprecated](https://bitcoin.org/en/alert/2016-11-01-alert-retirement) in Bitcoin Core 0.12.1 and removed in 0.13.0. -The Alert System was retired with a maximum sequence final alert which causes any nodes -supporting the Alert System to display a static hard-coded "Alert Key Compromised" message which also -prevents any other alerts from overriding it. This final alert is hard-coded into this release -so that all old nodes receive the final alert. - -GUI Changes ------------ - - - After resetting the options by clicking the `Reset Options` button - in the options dialog or with the `-resetguioptions` startup option, - the user will be prompted to choose the data directory again. This - is to ensure that custom data directories will be kept after the - option reset which clears the custom data directory set via the choose - datadir dialog. - - - Multiple peers can now be selected in the list of peers in the debug - window. This allows for users to ban or disconnect multiple peers - simultaneously instead of banning them one at a time. - - - An indicator has been added to the bottom right hand corner of the main - window to indicate whether the wallet being used is a HD wallet. This - icon will be grayed out with an X on top of it if the wallet is not a - HD wallet. - -Low-level RPC changes ----------------------- - - - `importprunedfunds` only accepts two required arguments. Some versions accept - an optional third arg, which was always ignored. Make sure to never pass more - than two arguments. - - - The first boolean argument to `getaddednodeinfo` has been removed. This is - an incompatible change. - - - RPC command `getmininginfo` loses the "testnet" field in favor of the more - generic "chain" (which has been present for years). - - - A new RPC command `preciousblock` has been added which marks a block as - precious. A precious block will be treated as if it were received earlier - than a competing block. - - - A new RPC command `importmulti` has been added which receives an array of - JSON objects representing the intention of importing a public key, a - private key, an address and script/p2sh - - - Use of `getrawtransaction` for retrieving confirmed transactions with unspent - outputs has been deprecated. For now this will still work, but in the future - it may change to only be able to retrieve information about transactions in - the mempool or if `txindex` is enabled. - - - A new RPC command `getmemoryinfo` has been added which will return information - about the memory usage of Bitcoin Core. This was added in conjunction with - optimizations to memory management. See [Pull #8753](https://github.com/bitcoin/bitcoin/pull/8753) - for more information. - - - A new RPC command `bumpfee` has been added which allows replacing an - unconfirmed wallet transaction that signaled RBF (see the `-walletrbf` - startup option above) with a new transaction that pays a higher fee, and - should be more likely to get confirmed quickly. - -HTTP REST Changes ------------------ - - - UTXO set query (`GET /rest/getutxos//-/- - /.../-.`) responses were changed to return status - code `HTTP_BAD_REQUEST` (400) instead of `HTTP_INTERNAL_SERVER_ERROR` (500) - when requests contain invalid parameters. - -Minimum Fee Rate Policies -------------------------- - -Since the changes in 0.12 to automatically limit the size of the mempool and improve the performance of block creation in mining code it has not been important for relay nodes or miners to set `-minrelaytxfee`. With this release the following concepts that were tied to this option have been separated out: -- incremental relay fee used for calculating BIP 125 replacement and mempool limiting. (1000 satoshis/kB) -- calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB) -- minimum fee rate of a package of transactions to be included in a block created by the mining code. If miners wish to set this minimum they can use the new `-blockmintxfee` option. (defaults to 1000 satoshis/kB) - -The `-minrelaytxfee` option continues to exist but is recommended to be left unset. - -Fee Estimation Changes ----------------------- - -- Since 0.13.2 fee estimation for a confirmation target of 1 block has been - disabled. The fee slider will no longer be able to choose a target of 1 block. - This is only a minor behavior change as there was often insufficient - data for this target anyway. `estimatefee 1` will now always return -1 and - `estimatesmartfee 1` will start searching at a target of 2. - -- The default target for fee estimation is changed to 6 blocks in both the GUI - (previously 25) and for RPC calls (previously 2). - -Removal of Priority Estimation ------------------------------- - -- Estimation of "priority" needed for a transaction to be included within a target - number of blocks has been removed. The RPC calls are deprecated and will either - return -1 or 1e24 appropriately. The format for `fee_estimates.dat` has also - changed to no longer save these priority estimates. It will automatically be - converted to the new format which is not readable by prior versions of the - software. - -- Support for "priority" (coin age) transaction sorting for mining is - considered deprecated in Core and will be removed in the next major version. - This is not to be confused with the `prioritisetransaction` RPC which will remain - supported by Core for adding fee deltas to transactions. - -P2P connection management --------------------------- - -- Peers manually added through the `-addnode` option or `addnode` RPC now have their own - limit of eight connections which does not compete with other inbound or outbound - connection usage and is not subject to the limitation imposed by the `-maxconnections` - option. - -- New connections to manually added peers are performed more quickly. - -Introduction of assumed-valid blocks -------------------------------------- - -- A significant portion of the initial block download time is spent verifying - scripts/signatures. Although the verification must pass to ensure the security - of the system, no other result from this verification is needed: If the node - knew the history of a given block were valid it could skip checking scripts - for its ancestors. - -- A new configuration option 'assumevalid' is provided to express this knowledge - to the software. Unlike the 'checkpoints' in the past this setting does not - force the use of a particular chain: chains that are consistent with it are - processed quicker, but other chains are still accepted if they'd otherwise - be chosen as best. Also unlike 'checkpoints' the user can configure which - block history is assumed true, this means that even outdated software can - sync more quickly if the setting is updated by the user. - -- Because the validity of a chain history is a simple objective fact it is much - easier to review this setting. As a result the software ships with a default - value adjusted to match the current chain shortly before release. The use - of this default value can be disabled by setting -assumevalid=0 - -Fundrawtransaction change address reuse ----------------------------------------- - -- Before 0.14, `fundrawtransaction` was by default wallet stateless. In - almost all cases `fundrawtransaction` does add a change-output to the - outputs of the funded transaction. Before 0.14, the used keypool key was - never marked as change-address key and directly returned to the keypool - (leading to address reuse). Before 0.14, calling `getnewaddress` - directly after `fundrawtransaction` did generate the same address as - the change-output address. - -- Since 0.14, fundrawtransaction does reserve the change-output-key from - the keypool by default (optional by setting `reserveChangeKey`, default = - `true`) - -- Users should also consider using `getrawchangeaddress()` in conjunction - with `fundrawtransaction`'s `changeAddress` option. - -Unused mempool memory used by coincache ----------------------------------------- - -- Before 0.14, memory reserved for mempool (using the `-maxmempool` option) - went unused during initial block download, or IBD. In 0.14, the UTXO DB cache - (controlled with the `-dbcache` option) borrows memory from the mempool - when there is extra memory available. This may result in an increase in - memory usage during IBD for those previously relying on only the `-dbcache` - option to limit memory during that time. - -0.14.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, minor refactors and string updates. For convenience -in locating the code changes and accompanying discussion, both the pull request -and git merge commit are mentioned. - -### RPC and other APIs -- #8421 `b77bb95` httpserver: drop boost dependency (theuni) -- #8638 `f061415` rest.cpp: change `HTTP_INTERNAL_SERVER_ERROR` to `HTTP_BAD_REQUEST` (djpnewton) -- #8272 `91990ee` Make the dummy argument to getaddednodeinfo optional (sipa) -- #8722 `bb843ad` bitcoin-cli: More detailed error reporting (laanwj) -- #6996 `7f71a3c` Add preciousblock RPC (sipa) -- #8788 `97c7f73` Give RPC commands more information about the RPC request (jonasschnelli) -- #7948 `5d2c8e5` Augment getblockchaininfo bip9\_softforks data (mruddy) -- #8980 `0e22855` importmulti: Avoid using boost::variant::operator!=, which is only in newer boost versions (luke-jr) -- #9025 `4d8558a` Getrawtransaction should take a bool for verbose (jnewbery) -- #8811 `5754e03` Add support for JSON-RPC named arguments (laanwj) -- #9520 `2456a83` Deprecate non-txindex getrawtransaction and better warning (sipa) -- #9518 `a65ced1` Return height of last block pruned by pruneblockchain RPC (ryanofsky) -- #9222 `7cb024e` Add 'subtractFeeFromAmount' option to 'fundrawtransaction' (dooglus) -- #8456 `2ef52d3` Simplified `bumpfee` command (mrbandrews) -- #9516 `727a798` Bug-fix: listsinceblock: use fork point as reference for blocks in reorg'd chains (kallewoof) -- #9640 `7bfb770` Bumpfee: bugfixes for error handling and feerate calculation (sdaftuar) -- #9673 `8d6447e` Set correct metadata on bumpfee wallet transactions (ryanofsky) -- #9650 `40f7e27` Better handle invalid parameters to signrawtransaction (TheBlueMatt) -- #9682 `edc9e63` Require timestamps for importmulti keys (ryanofsky) -- #9108 `d8e8b06` Use importmulti timestamp when importing watch only keys (on top of #9682) (ryanofsky) -- #9756 `7a93af8` Return error when importmulti called with invalid address (ryanofsky) -- #9778 `ad168ef` Add two hour buffer to manual pruning (morcos) -- #9761 `9828f9a` Use 2 hour grace period for key timestamps in importmulti rescans (ryanofsky) -- #9474 `48d7e0d` Mark the minconf parameter to move as ignored (sipa) -- #9619 `861cb0c` Bugfix: RPC/Mining: GBT should return 1 MB sizelimit before segwit activates (luke-jr) -- #9773 `9072395` Return errors from importmulti if complete rescans are not successful (ryanofsky) - -### Block and transaction handling -- #8391 `37d83bb` Consensus: Remove ISM (NicolasDorier) -- #8365 `618c9dd` Treat high-sigop transactions as larger rather than rejecting them (sipa) -- #8814 `14b7b3f` wallet, policy: ParameterInteraction: Don't allow 0 fee (MarcoFalke) -- #8515 `9bdf526` A few mempool removal optimizations (sipa) -- #8448 `101c642` Store mempool and prioritization data to disk (sipa) -- #7730 `3c03dc2` Remove priority estimation (morcos) -- #9111 `fb15610` Remove unused variable `UNLIKELY_PCT` from fees.h (fanquake) -- #9133 `434e683` Unset fImporting for loading mempool (morcos) -- #9179 `b9a87b4` Set `DEFAULT_LIMITFREERELAY` = 0 kB/minute (MarcoFalke) -- #9239 `3fbf079` Disable fee estimates for 1-block target (morcos) -- #7562 `1eef038` Bump transaction version default to 2 (btcdrak) -- #9313,#9367 If we don't allow free txs, always send a fee filter (morcos) -- #9346 `b99a093` Batch construct batches (sipa) -- #9262 `5a70572` Prefer coins that have fewer ancestors, sanity check txn before ATMP (instagibbs) -- #9288 `1ce7ede` Fix a bug if the min fee is 0 for FeeFilterRounder (morcos) -- #9395 `0fc1c31` Add test for `-walletrejectlongchains` (morcos) -- #9107 `7dac1e5` Safer modify new coins (morcos) -- #9312 `a72f76c` Increase mempool expiry time to 2 weeks (morcos) -- #8610 `c252685` Share unused mempool memory with coincache (sipa) -- #9138 `f646275` Improve fee estimation (morcos) -- #9408 `46b249e` Allow shutdown during LoadMempool, dump only when necessary (jonasschnelli) -- #9310 `8c87f17` Assert FRESH validity in CCoinsViewCache::BatchWrite (ryanofsky) -- #7871 `e2e624d` Manual block file pruning (mrbandrews) -- #9507 `0595042` Fix use-after-free in CTxMemPool::removeConflicts() (sdaftuar) -- #9380 `dd98f04` Separate different uses of minimum fees (morcos) -- #9596 `71148b8` bugfix save feeDelta instead of priorityDelta in DumpMempool (morcos) -- #9371 `4a1dc35` Notify on removal (morcos) -- #9519 `9b4d267` Exclude RBF replacement txs from fee estimation (morcos) -- #8606 `e2a1a1e` Fix some locks (sipa) -- #8681 `6898213` Performance Regression Fix: Pre-Allocate txChanged vector (JeremyRubin) -- #8223 `744d265` c++11: Use std::unique\_ptr for block creation (domob1812) -- #9125 `7490ae8` Make CBlock a vector of shared\_ptr of CTransactions (sipa) -- #8930 `93566e0` Move orphan processing to ActivateBestChain (TheBlueMatt) -- #8580 `46904ee` Make CTransaction actually immutable (sipa) -- #9240 `a1dcf2e` Remove txConflicted (morcos) -- #8589 `e8cfe1e` Inline CTxInWitness inside CTxIn (sipa) -- #9349 `2db4cbc` Make CScript (and prevector) c++11 movable (sipa) -- #9252 `ce5c1f4` Release cs\_main before calling ProcessNewBlock, or processing headers (cmpctblock handling) (sdaftuar) -- #9283 `869781c` A few more CTransactionRef optimizations (sipa) -- #9499 `9c9af5a` Use recent-rejects, orphans, and recently-replaced txn for compact-block-reconstruction (TheBlueMatt) -- #9813 `3972a8e` Read/write mempool.dat as a binary (paveljanik) - -### P2P protocol and network code -- #8128 `1030fa7` Turn net structures into dumb storage classes (theuni) -- #8282 `026c6ed` Feeler connections to increase online addrs in the tried table (EthanHeilman) -- #8462 `53f8f22` Move AdvertiseLocal debug output to net category (Mirobit) -- #8612 `84decb5` Check for compatibility with download in FindNextBlocksToDownload (sipa) -- #8594 `5b2ea29` Do not add random inbound peers to addrman (gmaxwell) -- #8085 `6423116` Begin encapsulation (theuni) -- #8715 `881d7ea` only delete CConnman if it's been created (theuni) -- #8707 `f07424a` Fix maxuploadtarget setting (theuni) -- #8661 `d2e4655` Do not set an addr time penalty when a peer advertises itself (gmaxwell) -- #8822 `9bc6a6b` Consistent checksum handling (laanwj) -- #8936 `1230890` Report NodeId in misbehaving debug (rebroad) -- #8968 `3cf496d` Don't hold cs\_main when calling ProcessNewBlock from a cmpctblock (TheBlueMatt) -- #9002 `e1d1f57` Make connect=0 disable automatic outbound connections (gmaxwell) -- #9050 `fcf61b8` Make a few values immutable, and use deterministic randomness for the localnonce (theuni) -- #8969 `3665483` Decouple peer-processing-logic from block-connection-logic (#2) (TheBlueMatt) -- #8708 `c8c572f` have CConnman handle message sending (theuni) -- #8709 `1e50d22` Allow filterclear messages for enabling TX relay only (rebroad) -- #9045 `9f554e0` Hash P2P messages as they are received instead of at process-time (TheBlueMatt) -- #9026 `dc6b940` Fix handling of invalid compact blocks (sdaftuar) -- #8996 `ab914a6` Network activity toggle (luke-jr) -- #9131 `62af164` fNetworkActive is not protected by a lock, use an atomic (jonasschnelli) -- #8872 `0c577f2` Remove block-request logic from INV message processing (TheBlueMatt) -- #8690 `791b58d` Do not fully sort all nodes for addr relay (sipa) -- #9128 `76fec09` Decouple CConnman and message serialization (theuni) -- #9226 `3bf06e9` Remove fNetworkNode and pnodeLocalHost (gmaxwell) -- #9352 `a7f7651` Attempt reconstruction from all compact block announcements (sdaftuar) -- #9319 `a55716a` Break addnode out from the outbound connection limits (gmaxwell) -- #9261 `2742568` Add unstored orphans with rejected parents to recentRejects (morcos) -- #9441 `8b66bf7` Massive speedup. Net locks overhaul (theuni) -- #9375 `3908fc4` Relay compact block messages prior to full block connection (TheBlueMatt) -- #9400 `8a445c5` Set peers as HB peers upon full block validation (instagibbs) -- #9561 `6696b46` Wake message handling thread when we receive a new block (TheBlueMatt) -- #9535 `82274c0` Split CNode::cs\_vSend: message processing and message sending (TheBlueMatt) -- #9606 `3f9f962` Consistently use GetTimeMicros() for inactivity checks (sdaftuar) -- #9594 `fd70211` Send final alert message to older peers after connecting (gmaxwell) -- #9626 `36966a1` Clean up a few CConnman cs\_vNodes/CNode things (TheBlueMatt) -- #9609 `4966917` Fix remaining net assertions (theuni) -- #9671 `7821db3` Fix super-unlikely race introduced in 236618061a445d2cb11e72 (TheBlueMatt) -- #9730 `33f3b21` Remove bitseed.xf2.org form the dns seed list (jonasschnelli) -- #9698 `2447c10` Fix socket close race (theuni) -- #9708 `a06ede9` Clean up all known races/platform-specific UB at the time PR was opened (TheBlueMatt) -- #9715 `b08656e` Disconnect peers which we do not receive VERACKs from within 60 sec (TheBlueMatt) -- #9720 `e87ce95` Fix banning and disallow sending messages before receiving verack (theuni) -- #9268 `09c4fd1` Fix rounding privacy leak introduced in #9260 (TheBlueMatt) -- #9075 `9346f84` Decouple peer-processing-logic from block-connection-logic (#3) (TheBlueMatt) -- #8688 `047ded0` Move static global randomizer seeds into CConnman (sipa) -- #9289 `d9ae1ce` net: drop boost::thread\_group (theuni) - -### Validation -- #9014 `d04aeba` Fix block-connection performance regression (TheBlueMatt) -- #9299 `d52ce89` Remove no longer needed check for premature v2 txs (morcos) -- #9273 `b68685a` Remove unused `CDiskBlockPos*` argument from ProcessNewBlock (TheBlueMatt) -- #8895 `b83264d` Better SigCache Implementation (JeremyRubin) -- #9490 `e126d0c` Replace FindLatestBefore used by importmulti with FindEarliestAtLeast (gmaxwell) -- #9484 `812714f` Introduce assumevalid setting to skip validation presumed valid scripts (gmaxwell) -- #9511 `7884956` Don't overwrite validation state with corruption check (morcos) -- #9765 `1e92e04` Harden against mistakes handling invalid blocks (sdaftuar) -- #9779 `3c02b95` Update nMinimumChainWork and defaultAssumeValid (gmaxwell) -- #8524 `19b0f33` Precompute sighashes (sipa) -- #9791 `1825a03` Avoid VLA in hash.h (sipa) - -### Build system -- #8238 `6caf3ee` ZeroMQ 4.1.5 && ZMQ on Windows (fanquake) -- #8520 `b40e19c` Remove check for `openssl/ec.h` (laanwj) -- #8617 `de07fdc` Include instructions to extract Mac OS X SDK on Linux using 7zip and SleuthKit (luke-jr) -- #8566 `7b98895` Easy to use gitian building script (achow101) -- #8604 `f256843` build,doc: Update for 0.13.0+ and OpenBSD 5.9 (laanwj) -- #8640 `2663e51` depends: Remove Qt46 package (fanquake) -- #8645 `8ea4440` Remove unused Qt 4.6 patch (droark) -- #8608 `7e9ab95` Install manpages via make install, also add some autogenerated manpages (nomnombtc) -- #8781 `ca69ef4` contrib: delete `qt_translations.py` (MarcoFalke) -- #8783 `64dc645` share: remove qt/protobuf.pri (MarcoFalke) -- #8423 `3166dff` depends: expat 2.2.0, ccache 3.3.1, fontconfig 2.12.1 (fanquake) -- #8791 `b694b0d` travis: cross-mac: explicitly enable gui (MarcoFalke) -- #8820 `dc64141` depends: Fix Qt compilation with Xcode 8 (fanquake) -- #8730 `489a6ab` depends: Add libevent compatibility patch for windows (laanwj) -- #8819 `c841816` depends: Boost 1.61.0 (fanquake) -- #8826 `f560d95` Do not include `env_win.cc` on non-Windows systems (paveljanik) -- #8948 `e077e00` Reorder Windows gitian build order to match Linux (Michagogo) -- #8568 `078900d` new var `DIST_CONTRIB` adds useful things for packagers from contrib (nomnombtc) -- #9114 `21e6c6b` depends: Set `OSX_MIN_VERSION` to 10.8 (fanquake) -- #9140 `018a4eb` Bugfix: Correctly replace generated headers and fail cleanly (luke-jr) -- #9156 `a8b2a82` Add compile and link options echo to configure (jonasschnelli) -- #9393 `03d85f6` Include cuckoocache header in Makefile (MarcoFalke) -- #9420 `bebe369` Fix linker error when configured with --enable-lcov (droark) -- #9412 `53442af` Fix 'make deploy' for OSX (jonasschnelli) -- #9475 `7014506` Let autoconf detect presence of `EVP_MD_CTX_new` (luke-jr) -- #9513 `bbf193f` Fix qt distdir builds (theuni) -- #9471 `ca615e6` depends: libevent 2.1.7rc (fanquake) -- #9468 `f9117f2` depends: Dependency updates for 0.14.0 (fanquake) -- #9469 `01c4576` depends: Qt 5.7.1 (fanquake) -- #9574 `5ac6687` depends: Fix QT build on OSX (fanquake) -- #9646 `720b579` depends: Fix cross build for qt5.7 (theuni) -- #9705 `6a55515` Add options to override BDB cflags/libs (laanwj) -- #8249 `4e1567a` Enable (and check for) 64-bit ASLR on Windows (laanwj) -- #9758 `476cc47` Selectively suppress deprecation warnings (jonasschnelli) -- #9783 `6d61a2b` release: bump gitian descriptors for a new 0.14 package cache (theuni) -- #9789 `749fe95` build: add --enable-werror and warn on vla's (theuni) -- #9831 `99fd85c` build: force a c++ standard to be specified (theuni) - -### GUI -- #8192 `c503863` Remove URLs from About dialog translations (fanquake) -- #8540 `36404ae` Fix random segfault when closing "Choose data directory" dialog (laanwj) -- #8517 `2468292` Show wallet HD state in statusbar (jonasschnelli) -- #8463 `62a5a8a` Remove Priority from coincontrol dialog (MarcoFalke) -- #7579 `0606f95` Show network/chain errors in the GUI (jonasschnelli) -- #8583 `c19f8a4` Show XTHIN in GUI (rebroad) -- #7783 `4335d5a` RPC-Console: support nested commands and simple value queries (jonasschnelli) -- #8672 `6052d50` Show transaction size in transaction details window (Cocosoft) -- #8777 `fec6af7` WalletModel: Expose disablewallet (MarcoFalke) -- #8371 `24f72e9` Add out-of-sync modal info layer (jonasschnelli) -- #8885 `b2fec4e` Fix ban from qt console (theuni) -- #8821 `bf8e68a` sync-overlay: Don't block during reindex (MarcoFalke) -- #8906 `088d1f4` sync-overlay: Don't show progress twice (MarcoFalke) -- #8918 `47ace42` Add "Copy URI" to payment request context menu (luke-jr) -- #8925 `f628d9a` Display minimum ping in debug window (rebroad) -- #8774 `3e942a7` Qt refactors to better abstract wallet access (luke-jr) -- #8985 `7b1bfa3` Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip() (jonasschnelli) -- #8989 `d2143dc` Overhaul smart-fee slider, adjust default confirmation target (jonasschnelli) -- #9043 `273bde3` Return useful error message on ATMP failure (MarcoFalke) -- #9088 `4e57824` Reduce ambiguity of warning message (rebroad) -- #8874 `e984730` Multiple Selection for peer and ban tables (achow101) -- #9145 `924745d` Make network disabled icon 50% opaque (MarcoFalke) -- #9130 `ac489b2` Mention the new network toggle functionality in the tooltip (paveljanik) -- #9218 `4d955fc` Show progress overlay when clicking spinner icon (laanwj) -- #9280 `e15660c` Show ModalOverlay by pressing the progress bar, allow hiding (jonasschnelli) -- #9296 `fde7d99` Fix missed change to WalletTx structure (morcos) -- #9266 `2044e37` Bugfix: Qt/RPCConsole: Put column enum in the right places (luke-jr) -- #9255 `9851a84` layoutAboutToChange signal is called layoutAboutToBeChanged (laanwj) -- #9330 `47e6a19` Console: add security warning (jonasschnelli) -- #9329 `db45ad8` Console: allow empty arguments (jonasschnelli) -- #8877 `6dc4c43` Qt RPC console: history sensitive-data filter, and saving input line when browsing history (luke-jr) -- #9462 `649cf5f` Do not translate tilde character (MarcoFalke) -- #9457 `123ea73` Select more files for translation (MarcoFalke) -- #9413 `fd7d8c7` CoinControl: Allow non-wallet owned change addresses (jonasschnelli) -- #9461 `b250686` Improve progress display during headers-sync and peer-finding (jonasschnelli) -- #9588 `5086452` Use nPowTargetSpacing constant (MarcoFalke) -- #9637 `d9e4d1d` Fix transaction details output-index to reflect vout index (jonasschnelli) -- #9718 `36f9d3a` Qt/Intro: Various fixes (luke-jr) -- #9735 `ec66d06` devtools: Handle Qt formatting characters edge-case in update-translations.py (laanwj) -- #9755 `a441db0` Bugfix: Qt/Options: Restore persistent "restart required" notice (luke-jr) -- #9817 `7d75a5a` Fix segfault crash when shutdown the GUI in disablewallet mode (jonasschnelli) - -### Wallet -- #8152 `b9c1cd8` Remove `CWalletDB*` parameter from CWallet::AddToWallet (pstratem) -- #8432 `c7e05b3` Make CWallet::fFileBacked private (pstratem) -- #8445 `f916700` Move CWallet::setKeyPool to private section of CWallet (pstratem) -- #8564 `0168019` Remove unused code/conditions in ReadAtCursor (jonasschnelli) -- #8601 `37ac678` Add option to opt into full-RBF when sending funds (rebase, original by petertodd) (laanwj) -- #8494 `a5b20ed` init, wallet: ParameterInteraction() iff wallet enabled (MarcoFalke) -- #8760 `02ac669` init: Get rid of some `ENABLE_WALLET` (MarcoFalke) -- #8696 `a1f8d3e` Wallet: Remove last external reference to CWalletDB (pstratem) -- #8768 `886e8c9` init: Get rid of fDisableWallet (MarcoFalke) -- #8486 `ab0b411` Add high transaction fee warnings (MarcoFalke) -- #8851 `940748b` Move key derivation logic from GenerateNewKey to DeriveNewChildKey (pstratem) -- #8287 `e10af96` Set fLimitFree = true (MarcoFalke) -- #8928 `c587577` Fix init segfault where InitLoadWallet() calls ATMP before genesis (TheBlueMatt) -- #7551 `f2d7056` Add importmulti RPC call (pedrobranco) -- #9016 `0dcb888` Return useful error message on ATMP failure (instagibbs) -- #8753 `f8723d2` Locked memory manager (laanwj) -- #8828 `a4fd8df` Move CWalletDB::ReorderTransactions to CWallet (pstratem) -- #8977 `6a1343f` Refactor wallet/init interaction (Reaccept wtx, flush thread) (jonasschnelli) -- #9036 `ed0cc50` Change default confirm target from 2 to 6 (laanwj) -- #9071 `d1871da` Declare wallet.h functions inline (sipa) -- #9132 `f54e460` Make strWalletFile const (jonasschnelli) -- #9141 `5ea5e04` Remove unnecessary calls to CheckFinalTx (jonasschnelli) -- #9165 `c01f16a` SendMoney: use already-calculated balance (instagibbs) -- #9311 `a336d13` Flush wallet after abandontransaction (morcos) -- #8717 `38e4887` Addition of ImmatureCreditCached to MarkDirty() (spencerlievens) -- #9446 `510c0d9` SetMerkleBranch: remove unused code, remove cs\_main lock requirement (jonasschnelli) -- #8776 `2a524b8` Wallet refactoring leading up to multiwallet (luke-jr) -- #9465 `a7d55c9` Do not perform ECDSA signing in the fee calculation inner loop (gmaxwell) -- #9404 `12e3112` Smarter coordination of change and fee in CreateTransaction (morcos) -- #9377 `fb75cd0` fundrawtransaction: Keep change-output keys by default, make it optional (jonasschnelli) -- #9578 `923dc44` Add missing mempool lock for CalculateMemPoolAncestors (TheBlueMatt) -- #9227 `02464da` Make nWalletDBUpdated atomic to avoid a potential race (pstratem) -- #9764 `f8af89a` Prevent "overrides a member function but is not marked 'override'" warnings (laanwj) -- #9771 `e43a585` Add missing cs\_wallet lock that triggers new lock held assertion (ryanofsky) -- #9316 `3097ea4` Disable free transactions when relay is disabled (MarcoFalke) -- #9615 `d2c9e4d` Wallet incremental fee (morcos) -- #9760 `40c754c` Remove importmulti always-true check (ryanofsky) - -### Tests and QA -- #8270 `6e5e5ab` Tests: Use portable #! in python scripts (/usr/bin/env) (ChoHag) -- #8534,#8504 Remove java comparison tool (laanwj,MarcoFalke) -- #8482 `740cff5` Use single cache dir for chains (MarcoFalke) -- #8450 `21857d2` Replace `rpc_wallet_tests.cpp` with python RPC unit tests (pstratem) -- #8671 `ddc3080` Minimal fix to slow prevector tests as stopgap measure (JeremyRubin) -- #8680 `666eaf0` Address Travis spurious failures (theuni) -- #8789 `e31a43c` pull-tester: Only print output when failed (MarcoFalke) -- #8810 `14e8f99` tests: Add exception error message for JSONRPCException (laanwj) -- #8830 `ef0801b` test: Add option to run bitcoin-util-test.py manually (jnewbery) -- #8881 `e66cc1d` Add some verbose logging to bitcoin-util-test.py (jnewbery) -- #8922 `0329511` Send segwit-encoded blocktxn messages in p2p-compactblocks (TheBlueMatt) -- #8873 `74dc388` Add microbenchmarks to profile more code paths (ryanofsky) -- #9032 `6a8be7b` test: Add format-dependent comparison to bctest (laanwj) -- #9023 `774db92` Add logging to bitcoin-util-test.py (jnewbery) -- #9065 `c9bdf9a` Merge `doc/unit-tests.md` into `src/test/README.md` (laanwj) -- #9069 `ed64bce` Clean up bctest.py and bitcoin-util-test.py (jnewbery) -- #9095 `b8f43e3` test: Fix test\_random includes (MarcoFalke) -- #8894 `faec09b` Testing: Include fRelay in mininode version messages (jnewbery) -- #9097 `e536499` Rework `sync_*` and preciousblock.py (MarcoFalke) -- #9049 `71bc39e` Remove duplicatable duplicate-input check from CheckTransaction (TheBlueMatt) -- #9136 `b422913` sync\_blocks cleanup (ryanofsky) -- #9151 `4333b1c` proxy\_test: Calculate hardcoded port numbers (MarcoFalke) -- #9206 `e662d28` Make test constant consistent with consensus.h (btcdrak) -- #9139 `0de7fd3` Change sync\_blocks to pick smarter maxheight (on top of #9196) (ryanofsky) -- #9100 `97ec6e5` tx\_valid: re-order inputs to how they are encoded (dcousens) -- #9202 `e56cf67` bench: Add support for measuring CPU cycles (laanwj) -- #9223 `5412c08` unification of Bloom filter representation (s-matthew-english) -- #9257 `d7ba4a2` Dump debug logs on travis failures (sdaftuar) -- #9221 `9e4bb31` Get rid of duplicate code (MarcoFalke) -- #9274 `919db03` Use cached utxo set to fix performance regression (MarcoFalke) -- #9276 `ea33f19` Some minor testing cleanups (morcos) -- #9291 `8601784` Remove mapOrphanTransactionsByPrev from DoS\_tests (sipa) -- #9309 `76fcd9d` Wallet needs to stay unlocked for whole test (morcos) -- #9172 `5bc209c` Resurrect pstratem's "Simple fuzzing framework" (laanwj) -- #9331 `c6fd923` Add test for rescan feature of wallet key import RPCs (ryanofsky) -- #9354 `b416095` Make fuzzer actually test CTxOutCompressor (sipa) -- #9390,#9416 travis: make distdir (MarcoFalke) -- #9308 `0698639` test: Add CCoinsViewCache Access/Modify/Write tests (ryanofsky) -- #9406 `0f921e6` Re-enable a blank v1 Tx JSON test (droark) -- #9435 `dbc8a8c` Removed unused variable in test, fixing warning (ryanofsky) -- #9436 `dce853e` test: Include tx data in `EXTRA_DIST` (MarcoFalke) -- #9525 `02e5308` test: Include tx data in `EXTRA_DIST` (MarcoFalke) -- #9498 `054d664` Basic CCheckQueue Benchmarks (JeremyRubin) -- #9554 `0b96abc` test: Avoid potential NULL pointer dereference in `addrman_tests.cpp` (practicalswift) -- #9628 `f895023` Increase a sync\_blocks timeout in pruning.py (sdaftuar) -- #9638 `a7ea2f8` Actually test assertions in pruning.py (MarcoFalke) -- #9647 `e99f0d7` Skip RAII event tests if libevent is built without `event_set_mem_functions` (luke-jr) -- #9691 `fc67cd2` Init ECC context for `test_bitcoin_fuzzy` (gmaxwell) -- #9712 `d304fef` bench: Fix initialization order in registration (laanwj) -- #9707 `b860915` Fix RPC failure testing (jnewbery) -- #9269 `43e8150` Align struct COrphan definition (sipa) -- #9820 `599c69a` Fix pruning test broken by 2 hour manual prune window (ryanofsky) -- #9824 `260c71c` qa: Check return code when stopping nodes (MarcoFalke) -- #9875 `50953c2` tests: Fix dangling pwalletMain pointer in wallet tests (laanwj) -- #9839 `eddaa6b` [qa] Make import-rescan.py watchonly check reliable (ryanofsky) - -### Documentation -- #8332 `806b9e7` Clarify witness branches in transaction.h serialization (dcousens) -- #8935 `0306978` Documentation: Building on Windows with WSL (pooleja) -- #9144 `c98f6b3` Correct waitforblockheight example help text (fanquake) -- #9407 `041331e` Added missing colons in when running help command (anditto) -- #9378 `870cd2b` Add documentation for CWalletTx::fFromMe member (ryanofsky) -- #9297 `0b73807` Various RPC help outputs updated (Mirobit) -- #9613 `07421cf` Clarify getbalance help string to explain interaction with bumpfee (ryanofsky) -- #9663 `e30d928` Clarify listunspent amount description (instagibbs) -- #9396 `d65a13b` Updated listsinceblock rpc documentation (accraze) -- #8747 `ce43630` rpc: Fix transaction size comments and RPC help text (jnewbery) -- #8058 `bbd9740` Doc: Add issue template (AmirAbrams) -- #8567 `85d4e21` Add default port numbers to REST doc (djpnewton) -- #8624 `89de153` build: Mention curl (MarcoFalke) -- #8786 `9da7366` Mandatory copyright agreement (achow101) -- #8823 `7b05af6` Add privacy recommendation when running hidden service (laanwj) -- #9433 `caa2f10` Update the Windows build notes (droark) -- #8879 `f928050` Rework docs (MarcoFalke) -- #8887 `61d191f` Improve GitHub issue template (fanquake) -- #8787 `279bbad` Add missing autogen to example builds (AmirAbrams) -- #8892 `d270c30` Add build instructions for FreeBSD (laanwj) -- #8890 `c71a654` Update Doxygen configuration file (fanquake) -- #9207 `fa1f944` Move comments above bash command in build-unix (AmirAbrams) -- #9219 `c4522e7` Improve windows build instructions using Linux subsystem (laanwj) -- #8954 `932d02a` contrib: Add README for pgp keys (MarcoFalke) -- #9093 `2fae5b9` release-process: Mention GitHub release and archived release notes (MarcoFalke) -- #8743 `bae178f` Remove old manpages from contrib/debian in favour of doc/man (fanquake) -- #9550 `4105cb6` Trim down the XP notice and say more about what we support (gmaxwell) -- #9246 `9851498` Developer docs about existing subtrees (gmaxwell) -- #9401 `c2ea1e6` Make rpcauth help message clearer, add example in example .conf (instagibbs) -- #9022,#9033 Document dropping OS X 10.7 support (fanquake, MarcoFalke) -- #8771 `bc9e3ab` contributing: Mention not to open several pulls (luke-jr) -- #8852 `7b784cc` Mention Gitian building script in doc (Laudaa) (laanwj) -- #8915 `03dd707` Add copyright/patent issues to possible NACK reasons (petertodd) -- #8965 `23e03f8` Mention that PPA doesn't support Debian (anduck) -- #9115 `bfc7aad` Mention reporting security issues responsibly (paveljanik) -- #9840 `08e0690` Update sendfrom RPC help to correct coin selection misconception (ryanofsky) -- #9865 `289204f` Change bitcoin address in RPC help message (marijnfs) - -### Miscellaneous -- #8274 `7a2d402` util: Update tinyformat (laanwj) -- #8291 `5cac8b1` util: CopyrightHolders: Check for untranslated substitution (MarcoFalke) -- #8557 `44691f3` contrib: Rework verifybinaries (MarcoFalke) -- #8621 `e8ed6eb` contrib: python: Don't use shell=True (MarcoFalke) -- #8813 `fb24d7e` bitcoind: Daemonize using daemon(3) (laanwj) -- #9004 `67728a3` Clarify `listenonion` (unsystemizer) -- #8674 `bae81b8` tools for analyzing, updating and adding copyright headers in source files (isle2983) -- #8976 `8c6218a` libconsensus: Add input validation of flags (laanwj) -- #9112 `46027e8` Avoid ugly exception in log on unknown inv type (laanwj) -- #8837 `2108911` Allow bitcoin-tx to parse partial transactions (jnewbery) -- #9204 `74ced54` Clarify CreateTransaction error messages (instagibbs) -- #9265 `31bcc66` bitcoin-cli: Make error message less confusing (laanwj) -- #9303 `72bf1b3` Update comments in ctaes (sipa) -- #9417 `c4b7d4f` Do not evaluate hidden LogPrint arguments (sipa) -- #9506 `593a00c` RFC: Improve style for if indentation (sipa) -- #8883 `d5d4ad8` Add all standard TXO types to bitcoin-tx (jnewbery) -- #9531 `23281a4` Release notes for estimation changes (morcos) -- #9486 `f62bc10` Make peer=%d log prints consistent (TheBlueMatt) -- #9552 `41cb05c` Add IPv6 support to qos.sh (jamesmacwhite) -- #9542 `e9e7993` Docs: Update CONTRIBUTING.md (jnewbery) -- #9649 `53ab12d` Remove unused clang format dev script (MarcoFalke) -- #9625 `77bd8c4` Increase minimum debug.log size to 10MB after shrink (morcos) -- #9070 `7b22e50` Lockedpool fixes (kazcw) -- #8779 `7008e28` contrib: Delete spendfrom (MarcoFalke) -- #9587,#8793,#9496,#8191,#8109,#8655,#8472,#8677,#8981,#9124 Avoid shadowing of variables (paveljanik) -- #9063 `f2a6e82` Use deprecated `MAP_ANON` if `MAP_ANONYMOUS` is not defined (paveljanik) -- #9060 `1107653` Fix bloom filter init to isEmpty = true (robmcl4) -- #8613 `613bda4` LevelDB 1.19 (sipa) -- #9225 `5488514` Fix some benign races (TheBlueMatt) -- #8736 `5fa7b07` base58: Improve DecodeBase58 performance (wjx) -- #9039 `e81df49` Various serialization simplifcations and optimizations (sipa) -- #9010 `a143b88` Split up AppInit2 into multiple phases, daemonize after datadir lock errors (laanwj) -- #9230 `c79e52a` Fix some benign races in timestamp logging (TheBlueMatt) -- #9183,#9260 Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp}) (TheBlueMatt) -- #9236 `7f72568` Fix races for strMiscWarning and `fLargeWork*Found`, make QT runawayException use GetWarnings (gmaxwell) -- #9243 `7aa7004` Clean up mapArgs and mapMultiArgs Usage (TheBlueMatt) -- #9387 `cfe41d7` RAII of libevent stuff using unique ptrs with deleters (kallewoof) -- #9472 `fac0f30` Disentangle progress estimation from checkpoints and update it (sipa) -- #9512 `6012967` Fix various things -fsanitize complains about (sipa) -- #9373,#9580 Various linearization script issues (droark) -- #9674 `dd163f5` Lock debugging: Always enforce strict lock ordering (try or not) (TheBlueMatt) -- #8453,#9334 Update to latest libsecp256k1 (laanwj,sipa) -- #9656 `7c93952` Check verify-commits on pushes to master (TheBlueMatt) -- #9679 `a351162` Access WorkQueue::running only within the cs lock (TheBlueMatt) -- #9777 `8dee822` Handle unusual maxsigcachesize gracefully (jnewbery) -- #8863,#8807 univalue: Pull subtree (MarcoFalke) -- #9798 `e22c067` Fix Issue #9775 (Check returned value of fopen) (kirit93) -- #9856 `69832aa` Terminate immediately when allocation fails (theuni) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- accraze -- adlawren -- Alex Morcos -- Alexey Vesnin -- Amir Abrams -- Anders Øyvind Urke-Sætre -- Anditto Heristyo -- Andrew Chow -- anduck -- Anthony Towns -- Brian Deery -- BtcDrak -- Chris Moore -- Chris Stewart -- Christian Barcenas -- Christian Decker -- Cory Fields -- crowning- -- CryptAxe -- CryptoVote -- Dagur Valberg Johannsson -- Daniel Cousens -- Daniel Kraft -- Derek Miller -- djpnewton -- Don Patterson -- Doug -- Douglas Roark -- Ethan Heilman -- fsb4000 -- Gaurav Rana -- Geoffrey Tsui -- Greg Walker -- Gregory Maxwell -- Gregory Sanders -- Hampus Sjöberg -- isle2983 -- Ivo van der Sangen -- James White -- Jameson Lopp -- Jeremy Rubin -- Jiaxing Wang -- jnewbery -- John Newbery -- Johnson Lau -- Jon Lund Steffensen -- Jonas Schnelli -- jonnynewbs -- Jorge Timón -- Justin Camarena -- Karl-Johan Alm -- Kaz Wesley -- kirit93 -- Koki Takahashi -- Lauda -- leijurv -- lizhi -- Luke Dashjr -- maiiz -- MarcoFalke -- Marijn Stollenga -- Marty Jones -- Masahiko Hyuga -- Matt Corallo -- Matthew King -- matthias -- Micha -- Michael Ford -- Michael Rotarius -- Mitchell Cash -- mrbandrews -- mruddy -- Nicolas DORIER -- nomnombtc -- Patrick Strateman -- Pavel Janík -- Pedro Branco -- Peter Todd -- Pieter Wuille -- poole\_party -- practicalswift -- R E Broadley -- randy-waterhouse -- Richard Kiss -- Robert McLaughlin -- rodasmith -- Russell Yanofsky -- S. Matthew English -- Sev -- Spencer Lievens -- Stanislas Marion -- Steven -- Suhas Daftuar -- Thomas Snider -- UdjinM6 -- unsystemizer -- whythat -- Will Binns -- Wladimir J. van der Laan -- wodry -- Zak Wilcox - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.14.1.md b/doc/release-notes/release-notes-0.14.1.md deleted file mode 100644 index ef072afd4d7fb..0000000000000 --- a/doc/release-notes/release-notes-0.14.1.md +++ /dev/null @@ -1,143 +0,0 @@ -Bitcoin Core version 0.14.1 is now available from: - - - -This is a new minor version release, including various bugfixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -RPC changes ------------ - -- The first positional argument of `createrawtransaction` was renamed from - `transactions` to `inputs`. - -- The argument of `disconnectnode` was renamed from `node` to `address`. - -These interface changes break compatibility with 0.14.0, when the named -arguments functionality, introduced in 0.14.0, is used. Client software -using these calls with named arguments needs to be updated. - -Mining ------- - -In previous versions, getblocktemplate required segwit support from downstream -clients/miners once the feature activated on the network. In this version, it -now supports non-segwit clients even after activation, by removing all segwit -transactions from the returned block template. This allows non-segwit miners to -continue functioning correctly even after segwit has activated. - -Due to the limitations in previous versions, getblocktemplate also recommended -non-segwit clients to not signal for the segwit version-bit. Since this is no -longer an issue, getblocktemplate now always recommends signalling segwit for -all miners. This is safe because ability to enforce the rule is the only -required criteria for safe activation, not actually producing segwit-enabled -blocks. - -UTXO memory accounting ----------------------- - -Memory usage for the UTXO cache is being calculated more accurately, so that -the configured limit (`-dbcache`) will be respected when memory usage peaks -during cache flushes. The memory accounting in prior releases is estimated to -only account for half the actual peak utilization. - -The default `-dbcache` has also been changed in this release to 450MiB. Users -who currently set `-dbcache` to a high value (e.g. to keep the UTXO more fully -cached in memory) should consider increasing this setting in order to achieve -the same cache performance as prior releases. Users on low-memory systems -(such as systems with 1GB or less) should consider specifying a lower value for -this parameter. - -Additional information relating to running on low-memory systems can be found -here: -[reducing-bitcoind-memory-usage.md](https://gist.github.com/laanwj/efe29c7661ce9b6620a7). - -0.14.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #10084 `142fbb2` Rename first named arg of createrawtransaction (MarcoFalke) -- #10139 `f15268d` Remove auth cookie on shutdown (practicalswift) -- #10146 `2fea10a` Better error handling for submitblock (rawodb, gmaxwell) -- #10144 `d947afc` Prioritisetransaction wasn't always updating ancestor fee (sdaftuar) -- #10204 `3c79602` Rename disconnectnode argument (jnewbery) - -### Block and transaction handling -- #10126 `0b5e162` Compensate for memory peak at flush time (sipa) -- #9912 `fc3d7db` Optimize GetWitnessHash() for non-segwit transactions (sdaftuar) -- #10133 `ab864d3` Clean up calculations of pcoinsTip memory usage (morcos) - -### P2P protocol and network code -- #9953/#10013 `d2548a4` Fix shutdown hang with >= 8 -addnodes set (TheBlueMatt) -- #10176 `30fa231` net: gracefully handle NodeId wrapping (theuni) - -### Build system -- #9973 `e9611d1` depends: fix zlib build on osx (theuni) - -### GUI -- #10060 `ddc2dd1` Ensure an item exists on the rpcconsole stack before adding (achow101) - -### Mining -- #9955/#10006 `569596c` Don't require segwit in getblocktemplate for segwit signalling or mining (sdaftuar) -- #9959/#10127 `b5c3440` Prevent slowdown in CreateNewBlock on large mempools (sdaftuar) - -### Tests and QA -- #10157 `55f641c` Fix the `mempool_packages.py` test (sdaftuar) - -### Miscellaneous -- #10037 `4d8e660` Trivial: Fix typo in help getrawtransaction RPC (keystrike) -- #10120 `e4c9a90` util: Work around (virtual) memory exhaustion on 32-bit w/ glibc (laanwj) -- #10130 `ecc5232` bitcoin-tx input verification (awemany, jnewbery) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Alex Morcos -- Andrew Chow -- Awemany -- Cory Fields -- Gregory Maxwell -- James Evans -- John Newbery -- MarcoFalke -- Matt Corallo -- Pieter Wuille -- practicalswift -- rawodb -- Suhas Daftuar -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). - diff --git a/doc/release-notes/release-notes-0.14.2.md b/doc/release-notes/release-notes-0.14.2.md deleted file mode 100644 index 0ad554b7738c1..0000000000000 --- a/doc/release-notes/release-notes-0.14.2.md +++ /dev/null @@ -1,102 +0,0 @@ -Bitcoin Core version 0.14.2 is now available from: - - - -This is a new minor version release, including various bugfixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -miniupnp CVE-2017-8798 ----------------------------- - -Bundled miniupnpc was updated to 2.0.20170509. This fixes an integer signedness error -(present in MiniUPnPc v1.4.20101221 through v2.0) that allows remote attackers -(within the LAN) to cause a denial of service or possibly have unspecified -other impact. - -This only affects users that have explicitly enabled UPnP through the GUI -setting or through the `-upnp` option, as since the last UPnP vulnerability -(in Bitcoin Core 0.10.3) it has been disabled by default. - -If you use this option, it is recommended to upgrade to this version as soon as -possible. - -Known Bugs -========== - -Since 0.14.0 the approximate transaction fee shown in Bitcoin-Qt when using coin -control and smart fee estimation does not reflect any change in target from the -smart fee slider. It will only present an approximate fee calculated using the -default target. The fee calculated using the correct target is still applied to -the transaction and shown in the final send confirmation dialog. - -0.14.2 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #10410 `321419b` Fix importwallet edge case rescan bug (ryanofsky) - -### P2P protocol and network code -- #10424 `37a8fc5` Populate services in GetLocalAddress (morcos) -- #10441 `9e3ad50` Only enforce expected services for half of outgoing connections (theuni) - -### Build system -- #10414 `ffb0c4b` miniupnpc 2.0.20170509 (fanquake) -- #10228 `ae479bc` Regenerate bitcoin-config.h as necessary (theuni) - -### Miscellaneous -- #10245 `44a17f2` Minor fix in build documentation for FreeBSD 11 (shigeya) -- #10215 `0aee4a1` Check interruptNet during dnsseed lookups (TheBlueMatt) - -### GUI -- #10231 `1e936d7` Reduce a significant cs_main lock freeze (jonasschnelli) - -### Wallet -- #10294 `1847642` Unset change position when there is no change (instagibbs) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Alex Morcos -- Cory Fields -- fanquake -- Gregory Sanders -- Jonas Schnelli -- Matt Corallo -- Russell Yanofsky -- Shigeya Suzuki -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). - diff --git a/doc/release-notes/release-notes-0.14.3.md b/doc/release-notes/release-notes-0.14.3.md deleted file mode 100644 index 8259152f0ba1d..0000000000000 --- a/doc/release-notes/release-notes-0.14.3.md +++ /dev/null @@ -1,118 +0,0 @@ -Bitcoin Core version *0.14.3* is now available from: - - - -This is a new minor version release, including various bugfixes and -performance improvements. - -Please report bugs using the issue tracker at github: - - - -To receive security and update notifications, please subscribe to: - - - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -Denial-of-Service vulnerability CVE-2018-17144 - ------------------------------- - -A denial-of-service vulnerability exploitable by miners has been discovered in -Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of -the vulnerable versions to 0.14.3, 0.15.2 or 0.16.3 as soon as possible. - -Known Bugs -========== - -Since 0.14.0 the approximate transaction fee shown in Bitcoin-Qt when using coin -control and smart fee estimation does not reflect any change in target from the -smart fee slider. It will only present an approximate fee calculated using the -default target. The fee calculated using the correct target is still applied to -the transaction and shown in the final send confirmation dialog. - -0.14.3 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### Consensus -- #14247 `52965fb` Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar) - -### RPC and other APIs - -- #10445 `87a21d5` Fix: make CCoinsViewDbCursor::Seek work for missing keys (Pieter Wuille, Gregory Maxwell) -- #9853 Return correct error codes in setban(), fundrawtransaction(), removeprunedfunds(), bumpfee(), blockchain.cpp (John Newbery) - - -### P2P protocol and network code - -- #10234 `d289b56` [net] listbanned RPC and QT should show correct banned subnets (John Newbery) - -### Build system - - -### Miscellaneous - -- #10451 `3612219` contrib/init/bitcoind.openrcconf: Don't disable wallet by default (Luke Dashjr) -- #10250 `e23cef0` Fix some empty vector references (Pieter Wuille) -- #10196 `d28d583` PrioritiseTransaction updates the mempool tx counter (Suhas Daftuar) -- #9497 `e207342` Fix CCheckQueue IsIdle (potential) race condition and remove dangerous constructors. (Jeremy Rubin) - -### GUI - -- #9481 `7abe7bb` Give fallback fee a reasonable indent (Luke Dashjr) -- #9481 `3e4d7bf` Qt/Send: Figure a decent warning colour from theme (Luke Dashjr) -- #9481 `e207342` Show more significant warning if we fall back to the default fee (Jonas Schnelli) - -### Wallet - -- #10308 `28b8b8b` Securely erase potentially sensitive keys/values (tjps) -- #10265 `ff13f59` Make sure pindex is non-null before possibly referencing in LogPrintf call. (Karl-Johan Alm) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Cory Fields -- CryptAxe -- fanquake -- Jeremy Rubin -- John Newbery -- Jonas Schnelli -- Gregory Maxwell -- Karl-Johan Alm -- Luke Dashjr -- MarcoFalke -- Matt Corallo -- Mikerah -- Pieter Wuille -- practicalswift -- Suhas Daftuar -- Thomas Snider -- Tjps -- Wladimir J. van der Laan - -And to those that reported security issues: - -- awemany (for CVE-2018-17144, previously credited as "anonymous reporter") - diff --git a/doc/release-notes/release-notes-0.15.0.1.md b/doc/release-notes/release-notes-0.15.0.1.md deleted file mode 100644 index 53ab02cbb0242..0000000000000 --- a/doc/release-notes/release-notes-0.15.0.1.md +++ /dev/null @@ -1,87 +0,0 @@ -Bitcoin Core version *0.15.0.1* is now available from: - - - -and - - - -This is a minor bug fix for 0.15.0. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or higher, your chainstate database will -be converted to a new format, which will take anywhere from a few minutes to -half an hour, depending on the speed of your machine. - -The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a -downgrade from version 0.15.0 or upgrade to version 0.15.0 will cause all fee -estimates to be discarded. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -GUI startup crash issue -------------------------- - -After upgrade to 0.15.0, some clients would crash at startup because a custom -fee setting was configured that no longer exists in the GUI. This is a minimal -patch to avoid this issue from occuring. - -0.15.0.1 Change log -==================== - -- #11332 `46c8d23` Fix possible crash with invalid nCustomFeeRadio in QSettings (achow101, TheBlueMatt) - -Also the manpages were updated, as this was forgotten for 0.15.0. - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- Matt Corallo -- Jonas Schnelli -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.15.0.md b/doc/release-notes/release-notes-0.15.0.md deleted file mode 100644 index 3d000e94d59c9..0000000000000 --- a/doc/release-notes/release-notes-0.15.0.md +++ /dev/null @@ -1,878 +0,0 @@ -Bitcoin Core version *0.15.0* is now available from: - - - -This is a new major version release, including new features, various bugfixes -and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a -downgrade from version 0.15.0 or upgrade to version 0.15.0 will cause all fee -estimates to be discarded. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notes for 0.15.0 -================ - -Current SegWit support ----------------------- - -Version 0.15.0 supports adding a segregated witness address via the `addwitnessaddress` RPC, but -please note that this is a testing/expert RPC, which does not guarantee recovery from backup. Only use -this RPC if you know what you are doing. More complete wallet support for segregated witness is coming -in a next version. - -Rescanning with encrypted wallets ---------------------------------- - -As in previous versions, when using an encrypted HD wallet, the keypool cannot be topped up without unlocking -the wallet. This means that currently, in order to recover from a backup of an encrypted HD wallet, the user -must unlock the wallet with a really long timeout and manually trigger a rescan, otherwise they risk missing -some keys when auto-topup cannot run. Unfortunately there is no `rescan` RPC in this version, that will be -included in a future version, so for now a rescan can be triggered using one of the `import*` commands, using -a dummy address generated by another (trusted) wallet. - -Notable changes -=============== - -Performance Improvements ------------------------- - -Version 0.15 contains a number of significant performance improvements, which make -Initial Block Download, startup, transaction and block validation much faster: - -- The chainstate database (which is used for tracking UTXOs) has been changed - from a per-transaction model to a per-output model (See [PR 10195](https://github.com/bitcoin/bitcoin/pull/10195)). Advantages of this model - are that it: - - avoids the CPU overhead of deserializing and serializing the unused outputs; - - has more predictable memory usage; - - uses simpler code; - - is adaptable to various future cache flushing strategies. - - As a result, validating the blockchain during Initial Block Download (IBD) and reindex - is ~30-40% faster, uses 10-20% less memory, and flushes to disk far less frequently. - The only downside is that the on-disk database is 15% larger. During the conversion from the previous format - a few extra gigabytes may be used. -- Earlier versions experienced a spike in memory usage while flushing UTXO updates to disk. - As a result, only half of the available memory was actually used as cache, and the other half was - reserved to accommodate flushing. This is no longer the case (See [PR 10148](https://github.com/bitcoin/bitcoin/pull/10148)), and the entirety of - the available cache (see `-dbcache`) is now actually used as cache. This reduces the flushing - frequency by a factor 2 or more. -- In previous versions, signature validation for transactions has been cached when the - transaction is accepted to the mempool. Version 0.15 extends this to cache the entire script - validity (See [PR 10192](https://github.com/bitcoin/bitcoin/pull/10192)). This means that if a transaction in a block has already been accepted to the - mempool, the scriptSig does not need to be re-evaluated. Empirical tests show that - this results in new block validation being 40-50% faster. -- LevelDB has been upgraded to version 1.20 (See [PR 10544](https://github.com/bitcoin/bitcoin/pull/10544)). This version contains hardware acceleration for CRC - on architectures supporting SSE 4.2. As a result, synchronization and block validation are now faster. -- SHA256 hashing has been optimized for architectures supporting SSE 4 (See [PR 10821](https://github.com/bitcoin/bitcoin/pull/10821)). SHA256 is around - 50% faster on supported hardware, which results in around 5% faster IBD and block - validation. In version 0.15, SHA256 hardware optimization is disabled in release builds by - default, but can be enabled by using `--enable-experimental-asm` when building. -- Refill of the keypool no longer flushes the wallet between each key which resulted in a ~20x speedup in creating a new wallet. Part of this speedup was used to increase the default keypool to 1000 keys to make recovery more robust. (See [PR 10831](https://github.com/bitcoin/bitcoin/pull/10831)). - -Fee Estimation Improvements ---------------------------- - -Fee estimation has been significantly improved in version 0.15, with more accurate fee estimates used by the wallet and a wider range of options for advanced users of the `estimatesmartfee` and `estimaterawfee` RPCs (See [PR 10199](https://github.com/bitcoin/bitcoin/pull/10199)). - -### Changes to internal logic and wallet behavior - -- Internally, estimates are now tracked on 3 different time horizons. This allows for longer targets and means estimates adjust more quickly to changes in conditions. -- Estimates can now be *conservative* or *economical*. *Conservative* estimates use longer time horizons to produce an estimate which is less susceptible to rapid changes in fee conditions. *Economical* estimates use shorter time horizons and will be more affected by short-term changes in fee conditions. Economical estimates may be considerably lower during periods of low transaction activity (for example over weekends), but may result in transactions being unconfirmed if prevailing fees increase rapidly. -- By default, the wallet will use conservative fee estimates to increase the reliability of transactions being confirmed within the desired target. For transactions that are marked as replaceable, the wallet will use an economical estimate by default, since the fee can be 'bumped' if the fee conditions change rapidly (See [PR 10589](https://github.com/bitcoin/bitcoin/pull/10589)). -- Estimates can now be made for confirmation targets up to 1008 blocks (one week). -- More data on historical fee rates is stored, leading to more precise fee estimates. -- Transactions which leave the mempool due to eviction or other non-confirmed reasons are now taken into account by the fee estimation logic, leading to more accurate fee estimates. -- The fee estimation logic will make sure enough data has been gathered to return a meaningful estimate. If there is insufficient data, a fallback default fee is used. - -### Changes to fee estimate RPCs - -- The `estimatefee` RPC is now deprecated in favor of using only `estimatesmartfee` (which is the implementation used by the GUI) -- The `estimatesmartfee` RPC interface has been changed (See [PR 10707](https://github.com/bitcoin/bitcoin/pull/10707)): - - The `nblocks` argument has been renamed to `conf_target` (to be consistent with other RPC methods). - - An `estimate_mode` argument has been added. This argument takes one of the following strings: `CONSERVATIVE`, `ECONOMICAL` or `UNSET` (which defaults to `CONSERVATIVE`). - - The RPC return object now contains an `errors` member, which returns errors encountered during processing. - - If Bitcoin Core has not been running for long enough and has not seen enough blocks or transactions to produce an accurate fee estimation, an error will be returned (previously a value of -1 was used to indicate an error, which could be confused for a feerate). -- A new `estimaterawfee` RPC is added to provide raw fee data. External clients can query and use this data in their own fee estimation logic. - -Multi-wallet support --------------------- - -Bitcoin Core now supports loading multiple, separate wallets (See [PR 8694](https://github.com/bitcoin/bitcoin/pull/8694), [PR 10849](https://github.com/bitcoin/bitcoin/pull/10849)). The wallets are completely separated, with individual balances, keys and received transactions. - -Multi-wallet is enabled by using more than one `-wallet` argument when starting Bitcoin, either on the command line or in the Bitcoin config file. - -**In Bitcoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions.** GUI selectable multiple wallets will be supported in a future version. However, even in 0.15 other loaded wallets will remain synchronized to the node's current tip in the background. This can be useful if running a pruned node, since loading a wallet where the most recent sync is beyond the pruned height results in having to download and revalidate the whole blockchain. Continuing to synchronize all wallets in the background avoids this problem. - -Bitcoin Core 0.15.0 contains the following changes to the RPC interface and `bitcoin-cli` for multi-wallet: - -* When running Bitcoin Core with a single wallet, there are **no** changes to the RPC interface or `bitcoin-cli`. All RPC calls and `bitcoin-cli` commands continue to work as before. -* When running Bitcoin Core with multi-wallet, all *node-level* RPC methods continue to work as before. HTTP RPC requests should be send to the normal `:` endpoint, and `bitcoin-cli` commands should be run as before. A *node-level* RPC method is any method which does not require access to the wallet. -* When running Bitcoin Core with multi-wallet, *wallet-level* RPC methods must specify the wallet for which they're intended in every request. HTTP RPC requests should be send to the `:/wallet/` endpoint, for example `127.0.0.1:8332/wallet/wallet1.dat`. `bitcoin-cli` commands should be run with a `-rpcwallet` option, for example `bitcoin-cli -rpcwallet=wallet1.dat getbalance`. -* A new *node-level* `listwallets` RPC method is added to display which wallets are currently loaded. The names returned by this method are the same as those used in the HTTP endpoint and for the `rpcwallet` argument. - -Note that while multi-wallet is now fully supported, the RPC multi-wallet interface should be considered unstable for version 0.15.0, and there may backwards-incompatible changes in future versions. - -Replace-by-fee control in the GUI ---------------------------------- - -Bitcoin Core has supported creating opt-in replace-by-fee (RBF) transactions -since version 0.12.0, and since version 0.14.0 has included a `bumpfee` RPC method to -replace unconfirmed opt-in RBF transactions with a new transaction that pays -a higher fee. - -In version 0.15, creating an opt-in RBF transaction and replacing the unconfirmed -transaction with a higher-fee transaction are both supported in the GUI (See [PR 9592](https://github.com/bitcoin/bitcoin/pull/9592)). - -Removal of Coin Age Priority ----------------------------- - -In previous versions of Bitcoin Core, a portion of each block could be reserved for transactions based on the age and value of UTXOs they spent. This concept (Coin Age Priority) is a policy choice by miners, and there are no consensus rules around the inclusion of Coin Age Priority transactions in blocks. In practice, only a few miners continue to use Coin Age Priority for transaction selection in blocks. Bitcoin Core 0.15 removes all remaining support for Coin Age Priority (See [PR 9602](https://github.com/bitcoin/bitcoin/pull/9602)). This has the following implications: - -- The concept of *free transactions* has been removed. High Coin Age Priority transactions would previously be allowed to be relayed even if they didn't attach a miner fee. This is no longer possible since there is no concept of Coin Age Priority. The `-limitfreerelay` and `-relaypriority` options which controlled relay of free transactions have therefore been removed. -- The `-sendfreetransactions` option has been removed, since almost all miners do not include transactions which do not attach a transaction fee. -- The `-blockprioritysize` option has been removed. -- The `estimatepriority` and `estimatesmartpriority` RPCs have been removed. -- The `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry` and `getrawmempool` RPCs no longer return `startingpriority` and `currentpriority`. -- The `prioritisetransaction` RPC no longer takes a `priority_delta` argument, which is replaced by a `dummy` argument for backwards compatibility with clients using positional arguments. The RPC is still used to change the apparent fee-rate of the transaction by using the `fee_delta` argument. -- `-minrelaytxfee` can now be set to 0. If `minrelaytxfee` is set, then fees smaller than `minrelaytxfee` (per kB) are rejected from relaying, mining and transaction creation. This defaults to 1000 satoshi/kB. -- The `-printpriority` option has been updated to only output the fee rate and hash of transactions included in a block by the mining code. - -Mempool Persistence Across Restarts ------------------------------------ - -Version 0.14 introduced mempool persistence across restarts (the mempool is saved to a `mempool.dat` file in the data directory prior to shutdown and restores the mempool when the node is restarted). Version 0.15 allows this feature to be switched on or off using the `-persistmempool` command-line option (See [PR 9966](https://github.com/bitcoin/bitcoin/pull/9966)). By default, the option is set to true, and the mempool is saved on shutdown and reloaded on startup. If set to false, the `mempool.dat` file will not be loaded on startup or saved on shutdown. - -New RPC methods ---------------- - -Version 0.15 introduces several new RPC methods: - -- `abortrescan` stops current wallet rescan, e.g. when triggered by an `importprivkey` call (See [PR 10208](https://github.com/bitcoin/bitcoin/pull/10208)). -- `combinerawtransaction` accepts a JSON array of raw transactions and combines them into a single raw transaction (See [PR 10571](https://github.com/bitcoin/bitcoin/pull/10571)). -- `estimaterawfee` returns raw fee data so that customized logic can be implemented to analyze the data and calculate estimates. See [Fee Estimation Improvements](#fee-estimation-improvements) for full details on changes to the fee estimation logic and interface. -- `getchaintxstats` returns statistics about the total number and rate of transactions - in the chain (See [PR 9733](https://github.com/bitcoin/bitcoin/pull/9733)). -- `listwallets` lists wallets which are currently loaded. See the *Multi-wallet* section - of these release notes for full details (See [Multi-wallet support](#multi-wallet-support)). -- `uptime` returns the total runtime of the `bitcoind` server since its last start (See [PR 10400](https://github.com/bitcoin/bitcoin/pull/10400)). - -Low-level RPC changes ---------------------- - -- When using Bitcoin Core in multi-wallet mode, RPC requests for wallet methods must specify - the wallet that they're intended for. See [Multi-wallet support](#multi-wallet-support) for full details. - -- The new database model no longer stores information about transaction - versions of unspent outputs (See [Performance improvements](#performance-improvements)). This means that: - - The `gettxout` RPC no longer has a `version` field in the response. - - The `gettxoutsetinfo` RPC reports `hash_serialized_2` instead of `hash_serialized`, - which does not commit to the transaction versions of unspent outputs, but does - commit to the height and coinbase information. - - The `getutxos` REST path no longer reports the `txvers` field in JSON format, - and always reports 0 for transaction versions in the binary format - -- The `estimatefee` RPC is deprecated. Clients should switch to using the `estimatesmartfee` RPC, which returns better fee estimates. See [Fee Estimation Improvements](#fee-estimation-improvements) for full details on changes to the fee estimation logic and interface. - -- The `gettxoutsetinfo` response now contains `disk_size` and `bogosize` instead of - `bytes_serialized`. The first is a more accurate estimate of actual disk usage, but - is not deterministic. The second is unrelated to disk usage, but is a - database-independent metric of UTXO set size: it counts every UTXO entry as 50 + the - length of its scriptPubKey (See [PR 10426](https://github.com/bitcoin/bitcoin/pull/10426)). - -- `signrawtransaction` can no longer be used to combine multiple transactions into a single transaction. Instead, use the new `combinerawtransaction` RPC (See [PR 10571](https://github.com/bitcoin/bitcoin/pull/10571)). - -- `fundrawtransaction` no longer accepts a `reserveChangeKey` option. This option used to allow RPC users to fund a raw transaction using an key from the keypool for the change address without removing it from the available keys in the keypool. The key could then be re-used for a `getnewaddress` call, which could potentially result in confusing or dangerous behaviour (See [PR 10784](https://github.com/bitcoin/bitcoin/pull/10784)). - -- `estimatepriority` and `estimatesmartpriority` have been removed. See [Removal of Coin Age Priority](#removal-of-coin-age-priority). - -- The `listunspent` RPC now takes a `query_options` argument (see [PR 8952](https://github.com/bitcoin/bitcoin/pull/8952)), which is a JSON object - containing one or more of the following members: - - `minimumAmount` - a number specifying the minimum value of each UTXO - - `maximumAmount` - a number specifying the maximum value of each UTXO - - `maximumCount` - a number specifying the minimum number of UTXOs - - `minimumSumAmount` - a number specifying the minimum sum value of all UTXOs - -- The `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry` and `getrawmempool` RPCs no longer return `startingpriority` and `currentpriority`. See [Removal of Coin Age Priority](#removal-of-coin-age-priority). - -- The `dumpwallet` RPC now returns the full absolute path to the dumped wallet. It - used to return no value, even if successful (See [PR 9740](https://github.com/bitcoin/bitcoin/pull/9740)). - -- In the `getpeerinfo` RPC, the return object for each peer now returns an `addrbind` member, which contains the ip address and port of the connection to the peer. This is in addition to the `addrlocal` member which contains the ip address and port of the local node as reported by the peer (See [PR 10478](https://github.com/bitcoin/bitcoin/pull/10478)). - -- The `disconnectnode` RPC can now disconnect a node specified by node ID (as well as by IP address/port). To disconnect a node based on node ID, call the RPC with the new `nodeid` argument (See [PR 10143](https://github.com/bitcoin/bitcoin/pull/10143)). - -- The second argument in `prioritisetransaction` has been renamed from `priority_delta` to `dummy` since Bitcoin Core no longer has a concept of coin age priority. The `dummy` argument has no functional effect, but is retained for positional argument compatibility. See [Removal of Coin Age Priority](#removal-of-coin-age-priority). - -- The `resendwallettransactions` RPC throws an error if the `-walletbroadcast` option is set to false (See [PR 10995](https://github.com/bitcoin/bitcoin/pull/10995)). - -- The second argument in the `submitblock` RPC argument has been renamed from `parameters` to `dummy`. This argument never had any effect, and the renaming is simply to communicate this fact to the user (See [PR 10191](https://github.com/bitcoin/bitcoin/pull/10191)) - (Clients should, however, use positional arguments for `submitblock` in order to be compatible with BIP 22.) - -- The `verbose` argument of `getblock` has been renamed to `verbosity` and now takes an integer from 0 to 2. Verbose level 0 is equivalent to `verbose=false`. Verbose level 1 is equivalent to `verbose=true`. Verbose level 2 will give the full transaction details of each transaction in the output as given by `getrawtransaction`. The old behavior of using the `verbose` named argument and a boolean value is still maintained for compatibility. - -- Error codes have been updated to be more accurate for the following error cases (See [PR 9853](https://github.com/bitcoin/bitcoin/pull/9853)): - - `getblock` now returns RPC_MISC_ERROR if the block can't be found on disk (for - example if the block has been pruned). Previously returned RPC_INTERNAL_ERROR. - - `pruneblockchain` now returns RPC_MISC_ERROR if the blocks cannot be pruned - because the node is not in pruned mode. Previously returned RPC_METHOD_NOT_FOUND. - - `pruneblockchain` now returns RPC_INVALID_PARAMETER if the blocks cannot be pruned - because the supplied timestamp is too late. Previously returned RPC_INTERNAL_ERROR. - - `pruneblockchain` now returns RPC_MISC_ERROR if the blocks cannot be pruned - because the blockchain is too short. Previously returned RPC_INTERNAL_ERROR. - - `setban` now returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the supplied IP address - or subnet is invalid. Previously returned RPC_CLIENT_NODE_ALREADY_ADDED. - - `setban` now returns RPC_CLIENT_INVALID_IP_OR_SUBNET if the user tries to unban - a node that has not previously been banned. Previously returned RPC_MISC_ERROR. - - `removeprunedfunds` now returns RPC_WALLET_ERROR if `bitcoind` is unable to remove - the transaction. Previously returned RPC_INTERNAL_ERROR. - - `removeprunedfunds` now returns RPC_INVALID_PARAMETER if the transaction does not - exist in the wallet. Previously returned RPC_INTERNAL_ERROR. - - `fundrawtransaction` now returns RPC_INVALID_ADDRESS_OR_KEY if an invalid change - address is provided. Previously returned RPC_INVALID_PARAMETER. - - `fundrawtransaction` now returns RPC_WALLET_ERROR if `bitcoind` is unable to create - the transaction. The error message provides further details. Previously returned - RPC_INTERNAL_ERROR. - - `bumpfee` now returns RPC_INVALID_PARAMETER if the provided transaction has - descendants in the wallet. Previously returned RPC_MISC_ERROR. - - `bumpfee` now returns RPC_INVALID_PARAMETER if the provided transaction has - descendants in the mempool. Previously returned RPC_MISC_ERROR. - - `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has - has been mined or conflicts with a mined transaction. Previously returned - RPC_INVALID_ADDRESS_OR_KEY. - - `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction is not - BIP 125 replaceable. Previously returned RPC_INVALID_ADDRESS_OR_KEY. - - `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has already - been bumped by a different transaction. Previously returned RPC_INVALID_REQUEST. - - `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction contains - inputs which don't belong to this wallet. Previously returned RPC_INVALID_ADDRESS_OR_KEY. - - `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has multiple change - outputs. Previously returned RPC_MISC_ERROR. - - `bumpfee` now returns RPC_WALLET_ERROR if the provided transaction has no change - output. Previously returned RPC_MISC_ERROR. - - `bumpfee` now returns RPC_WALLET_ERROR if the fee is too high. Previously returned - RPC_MISC_ERROR. - - `bumpfee` now returns RPC_WALLET_ERROR if the fee is too low. Previously returned - RPC_MISC_ERROR. - - `bumpfee` now returns RPC_WALLET_ERROR if the change output is too small to bump the - fee. Previously returned RPC_MISC_ERROR. - -0.15.0 Change log -================= - -### RPC and other APIs -- #9485 `61a640e` ZMQ example using python3 and asyncio (mcelrath) -- #9894 `0496e15` remove 'label' filter for rpc command help (instagibbs) -- #9853 `02bd6e9` Fix error codes from various RPCs (jnewbery) -- #9842 `598ef9c` Fix RPC failure testing (continuation of #9707) (jnewbery) -- #10038 `d34995a` Add mallocinfo mode to `getmemoryinfo` RPC (laanwj) -- #9500 `3568b30` [Qt][RPC] Autocomplete commands for 'help' command in debug console (achow101) -- #10056 `e6156a0` [zmq] Call va_end() on va_start()ed args (kallewoof) -- #10086 `7438cea` Trivial: move rpcserialversion into RPC option group (jlopp) -- #10150 `350b224` [rpc] Add logging rpc (jnewbery) -- #10208 `393160c` [wallet] Rescan abortability (kallewoof) -- #10143 `a987def` [net] Allow disconnectnode RPC to be called with node id (jnewbery) -- #10281 `0e8499c` doc: Add RPC interface guidelines (laanwj) -- #9733 `d4732f3` Add getchaintxstats RPC (sipa) -- #10310 `f4b15e2` [doc] Add hint about getmempoolentry to getrawmempool help (kallewoof) -- #8704 `96c850c` [RPC] Transaction details in getblock (achow101) -- #8952 `9390845` Add query options to listunspent RPC call (pedrobranco) -- #10413 `08ac35a` Fix docs (there's no rpc command setpaytxfee) (RHavar) -- #8384 `e317c0d` Add witness data output to TxInError messages (instagibbs) -- #9571 `4677151` RPC: getblockchaininfo returns BIP signaling statistics (pinheadmz) -- #10450 `ef2d062` Fix bumpfee rpc "errors" return value (ryanofsky) -- #10475 `39039b1` [RPC] getmempoolinfo mempoolminfee is a BTC/KB feerate (instagibbs) -- #10478 `296928e` rpc: Add listen address to incoming connections in `getpeerinfo` (laanwj) -- #10403 `08d0390` Fix importmulti failure to return rescan errors (ryanofsky) -- #9740 `9fec4da` Add friendly output to dumpwallet (aideca) -- #10426 `16f6c98` Replace bytes_serialized with bogosize (sipa) -- #10252 `980deaf` RPC/Mining: Restore API compatibility for prioritisetransaction (luke-jr) -- #9672 `46311e7` Opt-into-RBF for RPC & bitcoin-tx (luke-jr) -- #10481 `9c248e3` Decodehextx scripts sanity check (achow101) -- #10488 `fa1f106` Note that the prioritizetransaction dummy value is deprecated, and has no meaning (TheBlueMatt) -- #9738 `c94b89e` gettxoutproof() should return consistent result (jnewbery) -- #10191 `00350bd` [trivial] Rename unused RPC arguments 'dummy' (jnewbery) -- #10627 `b62b4c8` fixed listunspent rpc convert parameter (tnakagawa) -- #10412 `bef02fb` Improve wallet rescan API (ryanofsky) -- #10400 `1680ee0` [RPC] Add an uptime command that displays the amount of time (in seconds) bitcoind has been running (rvelhote) -- #10683 `d81bec7` rpc: Move the `generate` RPC call to rpcwallet (laanwj) -- #10710 `30bc0f6` REST/RPC example update (Mirobit) -- #10747 `9edda0c` [rpc] fix verbose argument for getblock in bitcoin-cli (jnewbery) -- #10589 `104f5f2` More economical fee estimates for RBF and RPC options to control (morcos) -- #10543 `b27b004` Change API to estimaterawfee (morcos) -- #10807 `afd2fca` getbalance example covers at least 6 confirms (instagibbs) -- #10707 `75b5643` Better API for estimatesmartfee RPC (morcos) -- #10784 `9e8d6a3` Do not allow users to get keys from keypool without reserving them (TheBlueMatt) -- #10857 `d445a2c` [RPC] Add a deprecation warning to getinfo's output (achow101) -- #10571 `adf170d` [RPC]Move transaction combining from signrawtransaction to new RPC (achow101) -- #10783 `041dad9` [RPC] Various rpc argument fixes (instagibbs) -- #9622 `6ef3c7e` [rpc] listsinceblock should include lost transactions when parameter is a reorg'd block (kallewoof) -- #10799 `8537187` Prevent user from specifying conflicting parameters to fundrawtx (TheBlueMatt) -- #10931 `0b11a07` Fix misleading "Method not found" multiwallet errors (ryanofsky) -- #10788 `f66c596` [RPC] Fix addwitnessaddress by replacing ismine with producesignature (achow101) -- #10999 `627c3c0` Fix amounts formatting in `decoderawtransaction` (laanwj) -- #11002 `4268426` [wallet] return correct error code from resendwallettransaction (jnewbery) -- #11029 `96a63a3` [RPC] trivial: gettxout no longer shows version of tx (FelixWeis) -- #11083 `6c2b008` Fix combinerawtransaction RPC help result section (jonasnick) -- #11027 `07164bb` [RPC] Only return hex field once in getrawtransaction (achow101) -- #10698 `5af6572` Be consistent in calling transactions "replaceable" for Opt-In RBF (TheBlueMatt) - -### Block and transaction handling -- #9801 `a8c5751` Removed redundant parameter from mempool.PrioritiseTransaction (gubatron) -- #9819 `1efc99c` Remove harmless read of unusued priority estimates (morcos) -- #9822 `b7547fa` Remove block file location upgrade code (benma) -- #9602 `30ff3a2` Remove coin age priority and free transactions - implementation (morcos) -- #9548 `47510ad` Remove min reasonable fee (morcos) -- #10249 `c73af54` Switch CCoinsMap from boost to std unordered_map (sipa) -- #9966 `2a183de` Control mempool persistence using a command line parameter (jnewbery) -- #10199 `318ea50` Better fee estimates (morcos) -- #10196 `bee3529` Bugfix: PrioritiseTransaction updates the mempool tx counter (sdaftuar) -- #10195 `1088b02` Switch chainstate db and cache to per-txout model (sipa) -- #10284 `c2ab38b` Always log debug information for fee calculation in CreateTransaction (morcos) -- #10503 `efbcf2b` Use REJECT_DUPLICATE for already known and conflicted txn (sipa) -- #10537 `b3eb0d6` Few Minor per-utxo assert-semantics re-adds and tweak (TheBlueMatt) -- #10626 `8c841a3` doc: Remove outdated minrelaytxfee comment (MarcoFalke) -- #10559 `234ffc6` Change semantics of HaveCoinInCache to match HaveCoin (morcos) -- #10581 `7878353` Simplify return values of GetCoin/HaveCoin(InCache) (sipa) -- #10684 `a381f6a` Remove no longer used mempool.exists(outpoint) (morcos) -- #10148 `d4e551a` Use non-atomic flushing with block replay (sipa) -- #10685 `30c2130` Clarify CCoinsViewMemPool documentation (TheBlueMatt) -- #10558 `90a002e` Address nits from per-utxo change (morcos) -- #10706 `6859ad2` Improve wallet fee logic and fix GUI bugs (morcos) -- #10526 `754aa02` Force on-the-fly compaction during pertxout upgrade (sipa) -- #10985 `d896d5c` Add undocumented -forcecompactdb to force LevelDB compactions (sipa) -- #10292 `e4bbd3d` Improved efficiency in COutPoint constructors (mm-s) -- #10290 `8d6d43e` Add -stopatheight for benchmarking (sipa) - -### P2P protocol and network code -- #9726 `7639d38` netbase: Do not print an error on connection timeouts through proxy (laanwj) -- #9805 `5b583ef` Add seed.btc.petertodd.org to mainnet DNS seeds (petertodd) -- #9861 `22f609f` Trivial: Debug log ambiguity fix for peer addrs (keystrike) -- #9774 `90cb2a2` Enable host lookups for -proxy and -onion parameters (jmcorgan) -- #9558 `7b585cf` Clarify assumptions made about when BlockCheck is called (TheBlueMatt) -- #10135 `e19586a` [p2p] Send the correct error code in reject messages (jnewbery) -- #9665 `eab00d9` Use cached [compact] blocks to respond to getdata messages (TheBlueMatt) -- #10215 `a077a90` Check interruptNet during dnsseed lookups (TheBlueMatt) -- #10234 `faf2dea` [net] listbanned RPC and QT should show correct banned subnets (jnewbery) -- #10134 `314ebdf` [qa] Fixes segwit block relay test after inv-direct-fetch was disabled (sdaftuar) -- #10351 `3f57c55` removed unused code in INV message (Greg-Griffith) -- #10061 `ae78609` [net] Added SetSocketNoDelay() utility function (tjps) -- #10408 `28c6e8d` Net: Improvements to Tor control port parser (str4d) -- #10460 `5c63d66` Broadcast address every day, not 9 hours (sipa) -- #10471 `400fdd0` Denote functions CNode::GetRecvVersion() and CNode::GetRefCount() as const (pavlosantoniou) -- #10345 `67700b3` [P2P] Timeout for headers sync (sdaftuar) -- #10564 `8d9f45e` Return early in IsBanned (gmaxwell) -- #10587 `de8db47` Net: Fix resource leak in ReadBinaryFile(...) (practicalswift) -- #9549 `b33ca14` [net] Avoid possibility of NULL pointer dereference in MarkBlockAsInFlight(...) (practicalswift) -- #10446 `2772dc9` net: avoid extra dns query per seed (theuni) -- #10824 `9dd6a2b` Avoid unnecessary work in SetNetworkActive (promag) -- #10948 `df3a6f4` p2p: Hardcoded seeds update pre-0.15 branch (laanwj) -- #10977 `02f4c4a` [net] Fix use of uninitialized value in getnetworkinfo(const JSONRPCRequest&) (practicalswift) -- #10982 `c8b62c7` Disconnect network service bits 6 and 8 until Aug 1, 2018 (TheBlueMatt) -- #11012 `0e5cff6` Make sure to clean up mapBlockSource if we've already seen the block (theuni) - -### Validation -- #9725 `67023e9` CValidationInterface Cleanups (TheBlueMatt) -- #10178 `2584925` Remove CValidationInterface::UpdatedTransaction (TheBlueMatt) -- #10201 `a6548a4` pass Consensus::Params& to functions in validation.cpp and make them static (mariodian) -- #10297 `431a548` Simplify DisconnectBlock arguments/return value (sipa) -- #10464 `f94b7d5` Introduce static DoWarning (simplify UpdateTip) (jtimon) -- #10569 `2e7d8f8` Fix stopatheight (achow101) -- #10192 `2935b46` Cache full script execution results in addition to signatures (TheBlueMatt) -- #10179 `21ed30a` Give CValidationInterface Support for calling notifications on the CScheduler Thread (TheBlueMatt) -- #10557 `66270a4` Make check to distinguish between orphan txs and old txs more efficient (morcos) -- #10775 `7c2400c` nCheckDepth chain height fix (romanornr) -- #10821 `16240f4` Add SSE4 optimized SHA256 (sipa) -- #10854 `04d395e` Avoid using sizes on non-fixed-width types to derive protocol constants (gmaxwell) -- #10945 `2a50b11` Update defaultAssumeValid according to release-process.md (gmaxwell) -- #10986 `2361208` Update chain transaction statistics (sipa) -- #11028 `6bdf4b3` Avoid masking of difficulty adjustment errors by checkpoints (sipa) -- #9533 `cb598cf` Allow non-power-of-2 signature cache sizes (sipa) -- #9208 `acd9957` Improve DisconnectTip performance (sdaftuar) -- #10618 `f90603a` Remove confusing MAX_BLOCK_BASE_SIZE (gmaxwell) -- #10758 `bd92424` Fix some chainstate-init-order bugs (TheBlueMatt) -- #10550 `b7296bc` Don't return stale data from CCoinsViewCache::Cursor() (ryanofsky) -- #10998 `2507fd5` Fix upgrade cancel warnings (TheBlueMatt) -- #9868 `cbdb473` Abstract out the command line options for block assembly (sipa) - -### Build system -- #9727 `5f0556d` Remove fallbacks for boost_filesystem < v3 (laanwj) -- #9788 `50a2265` gitian: bump descriptors for master (theuni) -- #9794 `7ca2f54` Minor update to qrencode package builder (mitchellcash) -- #9514 `2cc0df1` release: Windows signing script (theuni) -- #9921 `8b789d8` build: Probe MSG_DONTWAIT in the same way as MSG_NOSIGNAL (laanwj) -- #10011 `32d1b34` build: Fix typo s/HAVE_DONTWAIT/HAVE_MSG_DONTWAIT (laanwj) -- #9946 `90dd9e6` Fix build errors if spaces in path or parent directory (pinheadmz) -- #10136 `81da4c7` build: Disable Wshadow warning (laanwj) -- #10166 `64962ae` Ignore Doxyfile generated from Doxyfile.in template (paveljanik) -- #10239 `0416ea9` Make Boost use std::atomic internally (sipa) -- #10228 `27faa6c` build: regenerate bitcoin-config.h as necessary (theuni) -- #10273 `8979f45` [scripts] Minor improvements to `macdeployqtplus` script (chrisgavin) -- #10325 `a26280b` 0.15.0 Depends Updates (fanquake) -- #10328 `79aeff6` Update contrib/debian to latest Ubuntu PPA upload (TheBlueMatt) -- #7522 `d25449f` Bugfix: Only use git for build info if the repository is actually the right one (luke-jr) -- #10489 `e654d61` build: silence gcc7's implicit fallthrough warning (theuni) -- #10549 `ad1a13e` Avoid printing generic and duplicated "checking for QT" during ./configure (drizzt) -- #10628 `8465b68` [depends] expat 2.2.1 (fanquake) -- #10806 `db825d2` build: verify that the assembler can handle crc32 functions (theuni) -- #10766 `b4d03be` Building Environment: Set ARFLAGS to cr (ReneNyffenegger) -- #10803 `91edda8` Explicitly search for bdb5.3 (pstratem) -- #10855 `81560b0` random: only use getentropy on openbsd (theuni) -- #10508 `1caafa6` Run Qt wallet tests on travis (ryanofsky) -- #10851 `e222618` depends: fix fontconfig with newer glibc (theuni) -- #10971 `88b1e4b` build: fix missing sse42 in depends builds (theuni) -- #11097 `129b03f` gitian: quick hack to fix version string in releases (theuni) -- #10039 `919aaf6` Fix compile errors with Qt 5.3.2 and Boost 1.55.0 (ryanofsky) -- #10168 `7032021` Fix build warning from #error text (jnewbery) -- #10301 `318392c` Check if sys/random.h is required for getentropy (jameshilliard) - -### GUI -- #9724 `1a9fd5c` Qt/Intro: Add explanation of IBD process (luke-jr) -- #9834 `b00ba62` qt: clean up initialize/shutdown signals (benma) -- #9481 `ce01e62` [Qt] Show more significant warning if we fall back to the default fee (jonasschnelli) -- #9974 `b9f930b` Add basic Qt wallet test (ryanofsky) -- #9690 `a387d3a` Change 'Clear' button string to 'Reset' (da2x) -- #9592 `9c7b7cf` [Qt] Add checkbox in the GUI to opt-in to RBF when creating a transaction (ryanofsky) -- #10098 `2b477e6` Make qt wallet test compatible with qt4 (ryanofsky) -- #9890 `1fa4ae6` Add a button to open the config file in a text editor (ericshawlinux) -- #10156 `51833a1` Fix for issues with startup and multiple monitors on windows (AllanDoensen) -- #10177 `de01da7` Changed "Send" button default status from true to false (KibbledJiveElkZoo) -- #10221 `e96486c` Stop treating coinbase outputs differently in GUI: show them at 1conf (TheBlueMatt) -- #10231 `987a6c0` [Qt] Reduce a significant cs_main lock freeze (jonasschnelli) -- #10242 `f6f3b58` [qt] Don't call method on null WalletModel object (ryanofsky) -- #10093 `a3e756b` [Qt] Don't add arguments of sensitive command to console window (jonasschnelli) -- #10362 `95546c8` [GUI] Add OSX keystroke to RPCConsole info (spencerlievens) -- #9697 `962cd3f` [Qt] simple fee bumper with user verification (jonasschnelli) -- #10390 `e477516` [wallet] remove minimum total fee option (instagibbs) -- #10420 `4314544` Add Qt tests for wallet spends & bumpfee (ryanofsky) -- #10454 `c1c9a95` Fix broken q4 test build (ryanofsky) -- #10449 `64beb13` Overhaul Qt fee bumper (jonasschnelli) -- #10582 `7c72fb9` Pass in smart fee slider value to coin control dialog (morcos) -- #10673 `4c72cc3` [qt] Avoid potential null pointer dereference in TransactionView::exportClicked() (practicalswift) -- #10769 `8fdd23a` [Qt] replace fee slider with a Dropdown, extend conf. targets (jonasschnelli) -- #10870 `412b466` [Qt] Use wallet 0 in rpc console if running with multiple wallets (jonasschnelli) -- #10988 `a9dd111` qt: Increase BLOCK_CHAIN_SIZE constants (laanwj) -- #10644 `e292140` Slightly overhaul NSI pixmaps (jonasschnelli) -- #10660 `0c3542e` Allow to cancel the txdb upgrade via splashscreen keypress 'q' (jonasschnelli) - -### Wallet -- #9359 `f7ec7cf` Add test for CWalletTx::GetImmatureCredit() returning stale values (ryanofsky) -- #9576 `56ab672` [wallet] Remove redundant initialization (practicalswift) -- #9333 `fa625b0` Document CWalletTx::mapValue entries and remove erase of nonexistent "version" entry (ryanofsky) -- #9906 `72fb515` Disallow copy constructor CReserveKeys (instagibbs) -- #9369 `3178b2c` Factor out CWallet::nTimeSmart computation into a method (ryanofsky) -- #9830 `afcd7c0` Add safe flag to listunspent result (NicolasDorier) -- #9993 `c49355c` Initialize nRelockTime (pstratem) -- #9818 `3d857f3` Save watch only key timestamps when reimporting keys (ryanofsky) -- #9294 `f34cdcb` Use internal HD chain for change outputs (hd split) (jonasschnelli) -- #10164 `e183ea2` Wallet: reduce excess logic InMempool() (kewde) -- #10186 `c9ff4f8` Remove SYNC_TRANSACTION_NOT_IN_BLOCK magic number (jnewbery) -- #10226 `64c45aa` wallet: Use boost to more portably ensure -wallet specifies only a filename (luke-jr) -- #9827 `c91ca0a` Improve ScanForWalletTransactions return value (ryanofsky) -- #9951 `fa1ac28` Wallet database handling abstractions/simplifications (laanwj) -- #10265 `c29a0d4` [wallet] [moveonly] Check non-null pindex before potentially referencing (kallewoof) -- #10283 `a550f6e` Cleanup: reduce to one GetMinimumFee call signature (morcos) -- #10294 `e2b99b1` [Wallet] unset change position when there is no change (instagibbs) -- #10115 `d3dce0e` Avoid reading the old hd master key during wallet encryption (TheBlueMatt) -- #10341 `18c9deb` rpc/wallet: Workaround older UniValue which returns a std::string temporary for get_str (luke-jr) -- #10308 `94e5227` [wallet] Securely erase potentially sensitive keys/values (tjps) -- #10257 `ea1fd43` [test] Add test for getmemoryinfo (jimmysong) -- #10295 `ce8176d` [qt] Move some WalletModel functions into CWallet (ryanofsky) -- #10506 `7cc2c67` Fix bumpfee test after #10449 (ryanofsky) -- #10500 `098b01d` Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (ryanofsky) -- #10455 `0747d33` Simplify feebumper minimum fee code slightly (ryanofsky) -- #10522 `2805d60` [wallet] Remove unused variables (practicalswift) -- #8694 `177433a` Basic multiwallet support (luke-jr) -- #10598 `7a74f88` Supress struct/class mismatch warnings introduced in #10284 (paveljanik) -- #9343 `209eef6` Don't create change at dust limit (morcos) -- #10744 `ed88e31` Use method name via __func__ macro (darksh1ne) -- #10712 `e8b9523` Add change output if necessary to reduce excess fee (morcos) -- #10816 `1c011ff` Properly forbid -salvagewallet and -zapwallettxes for multi wallet (morcos) -- #10235 `5cfdda2` Track keypool entries as internal vs external in memory (TheBlueMatt) -- #10330 `bf0a08b` [wallet] fix zapwallettxes interaction with persistent mempool (jnewbery) -- #10831 `0b01935` Batch flushing operations to the walletdb during top up and increase keypool size (gmaxwell) -- #10795 `7b6e8bc` No longer ever reuse keypool indexes (TheBlueMatt) -- #10849 `bde4f93` Multiwallet: simplest endpoint support (jonasschnelli) -- #10817 `9022aa3` Redefine Dust and add a discard_rate (morcos) -- #10883 `bf3b742` Rename -usewallet to -rpcwallet (morcos) -- #10604 `420238d` [wallet] [tests] Add listwallets RPC, include wallet name in `getwalletinfo` and add multiwallet test (jnewbery) -- #10885 `70888a3` Reject invalid wallets (promag) -- #10949 `af56397` Clarify help message for -discardfee (morcos) -- #10942 `2e857bb` Eliminate fee overpaying edge case when subtracting fee from recipients (morcos) -- #10995 `fa64636` Fix resendwallettransactions assert failure if -walletbroadcast=0 (TheBlueMatt) -- #11022 `653a46d` Basic keypool topup (jnewbery) -- #11081 `9fe1f6b` Add length check for CExtKey deserialization (jonasschnelli, guidovranken) -- #11044 `4ef8374` [wallet] Keypool topup cleanups (jnewbery) -- #11145 `e51bb71` Fix rounding bug in calculation of minimum change (morcos) -- #9605 `779f2f9` Use CScheduler for wallet flushing, remove ThreadFlushWalletDB (TheBlueMatt) -- #10108 `4e3efd4` ApproximateBestSubset should take inputs by reference, not value (RHavar) - -### Tests and QA -- #9744 `8efd1c8` Remove unused module from rpc-tests (34ro) -- #9657 `7ff4a53` Improve rpc-tests.py (jnewbery) -- #9766 `7146d96` Add --exclude option to rpc-tests.py (jnewbery) -- #9577 `d6064a8` Fix docstrings in qa tests (jnewbery) -- #9823 `a13a417` qa: Set correct path for binaries in rpc tests (MarcoFalke) -- #9847 `6206252` Extra test vector for BIP32 (sipa) -- #9350 `88c2ae3` [Trivial] Adding label for amount inside of tx_valid/tx_invalid.json (Christewart) -- #9888 `36afd4d` travis: Verify commits only for one target (MarcoFalke) -- #9904 `58861ad` test: Fail if InitBlockIndex fails (laanwj) -- #9828 `67c5cc1` Avoid -Wshadow warnings in wallet_tests (ryanofsky) -- #9832 `48c3429` [qa] assert_start_raises_init_error (NicolasDorier) -- #9739 `9d5fcbf` Fix BIP68 activation test (jnewbery) -- #9547 `d32581c` bench: Assert that division by zero is unreachable (practicalswift) -- #9843 `c78adbf` Fix segwit getblocktemplate test (jnewbery) -- #9929 `d5ce14e` tests: Delete unused function _rpchost_to_args (laanwj) -- #9555 `19be26a` [test] Avoid reading a potentially uninitialized variable in tx_invalid-test (transaction_tests.cpp) (practicalswift) -- #9945 `ac23a7c` Improve logging in bctest.py if there is a formatting mismatch (jnewbery) -- #9768 `8910b47` [qa] Add logging to test_framework.py (jnewbery) -- #9972 `21833f9` Fix extended rpc tests broken by #9768 (jnewbery) -- #9977 `857d1e1` QA: getblocktemplate_longpoll.py should always use >0 fee tx (sdaftuar) -- #9970 `3cc13ea` Improve readability of segwit.py, smartfees.py (sdaftuar) -- #9497 `2c781fb` CCheckQueue Unit Tests (JeremyRubin) -- #10024 `9225de2` [trivial] Use log.info() instead of print() in remaining functional test cases (jnewbery) -- #9956 `3192e52` Reorganise qa directory (jnewbery) -- #10017 `02d64bd` combine_logs.py - aggregates log files from multiple bitcoinds during functional tests (jnewbery) -- #10047 `dfef6b6` [tests] Remove unused variables and imports (practicalswift) -- #9701 `a230b05` Make bumpfee tests less fragile (ryanofsky) -- #10053 `ca20923` [test] Allow functional test cases to be skipped (jnewbery) -- #10052 `a0b1e57` [test] Run extended tests once daily in Travis (jnewbery) -- #10069 `1118493` [QA] Fix typo in fundrawtransaction test (NicolasDorier) -- #10083 `c044f03` [QA] Renaming rawTx into rawtx (NicolasDorier) -- #10073 `b1a4f27` Actually run assumevalid.py (jnewbery) -- #9780 `c412fd8` Suppress noisy output from qa tests in Travis (jnewbery) -- #10096 `79af9fb` Check that all test scripts in test/functional are being run (jnewbery) -- #10076 `5b029aa` [qa] combine_logs: Use ordered list for logfiles (MarcoFalke) -- #10107 `f2734c2` Remove unused variable. Remove accidental trailing semicolons in Python code (practicalswift) -- #10109 `8ac8041` Remove SingleNodeConnCB (jnewbery) -- #10114 `edc62c9` [tests] sync_with_ping should assert that ping hasn't timed out (jnewbery) -- #10128 `427d2fd` Speed Up CuckooCache tests (JeremyRubin) -- #10072 `12af74b` Remove sources of unreliablility in extended functional tests (jnewbery) -- #10077 `ebfd653` [qa] Add setnetworkactive smoke test (MarcoFalke) -- #10152 `080d7c7` [trivial] remove unused line in Travis config (jnewbery) -- #10159 `df1ca9e` [tests] color test results and sort alphabetically (jnewbery) -- #10124 `88799ea` [test] Suppress test logging spam (jnewbery) -- #10142 `ed09dd3` Run bitcoin_test-qt under minimal QPA platform (ryanofsky) -- #9949 `a27dbc5` [bench] Avoid function call arguments which are pointers to uninitialized values (practicalswift) -- #10187 `b44adf9` tests: Fix test_runner return value in case of skipped test (laanwj) -- #10197 `d86bb07` [tests] Functional test warnings (jnewbery) -- #10219 `9111df9` Tests: Order Python Tests Differently (jimmysong) -- #10229 `f3db4c6` Tests: Add test for getdifficulty (jimmysong) -- #10224 `2723bcd` [test] Add test for getaddednodeinfo (jimmysong) -- #10023 `c530c15` [tests] remove maxblocksinflight.py (functionality covered by other test) (jnewbery) -- #10097 `1b25b6d` Move zmq test skipping logic into individual test case (jnewbery) -- #10272 `54e2d87` [Tests] Prevent warning: variable 'x' is uninitialized (paveljanik) -- #10225 `e0a7e19` [test] Add aborttrescan tests (kallewoof) -- #10278 `8254a8a` [test] Add Unit Test for GetListenPort (jimmysong) -- #10280 `47535d7` [test] Unit test amount.h/amount.cpp (jimmysong) -- #10256 `80c3a73` [test] Add test for gettxout to wallet.py (jimmysong) -- #10264 `492d22f` [test] Add tests for getconnectioncount, getnettotals and ping (jimmysong) -- #10169 `8f3e384` [tests] Remove func test code duplication (jnewbery) -- #10198 `dc8fc0c` [tests] Remove is_network_split from functional test framework (jnewbery) -- #10255 `3c5e6c9` [test] Add test for listaddressgroupings (jimmysong) -- #10137 `75171f0` Remove unused import. Remove accidental trailing semicolons (practicalswift) -- #10307 `83073de` [tests] allow zmq test to be run in out-of-tree builds (jnewbery) -- #10344 `e927483` [tests] Fix abandonconflict.py intermittency (jnewbery) -- #10318 `170bc2c` [tests] fix wait_for_inv() (jnewbery) -- #10171 `fff72de` [tests] Add node methods to test framework (jnewbery) -- #10352 `23d78c4` test: Add elapsed time to RPC tracing (laanwj) -- #10342 `6a796b2` [tests] Improve mempool_persist test (jnewbery) -- #10287 `776ba23` [tests] Update Unit Test for addrman.h/addrman.cpp (jimmysong) -- #10365 `7ee5236` [tests] increase timeouts in sendheaders test (jnewbery) -- #10361 `f6241b3` qa: disablewallet: Check that wallet is really disabled (MarcoFalke) -- #10371 `4b766fc` [tests] Clean up addrman_tests.cpp (jimmysong) -- #10253 `87abe20` [test] Add test for getnetworkhashps (jimmysong) -- #10376 `8bd16ee` [tests] fix disconnect_ban intermittency (jnewbery) -- #10374 `5411997` qa: Warn when specified test is not found (MarcoFalke) -- #10405 `0542978` tests: Correct testcase in script_tests.json for large number OP_EQUAL (laanwj) -- #10429 `6b99daf` tests: fix spurious addrman test failure (theuni) -- #10433 `8e57256` [tests] improve tmpdir structure (jnewbery) -- #10415 `217b416` [tests] Speed up fuzzing by ~200x when using afl-fuzz (practicalswift) -- #10445 `b4b057a` Add test for empty chain and reorg consistency for gettxoutsetinfo (gmaxwell) -- #10423 `1aefc94` [tests] skipped tests should clean up after themselves (jnewbery) -- #10359 `329fc1d` [tests] functional tests should call BitcoinTestFramework start/stop node methods (jnewbery) -- #10514 `e103b3f` Bugfix: missing == 0 after randrange (sipa) -- #10515 `c871f32` [test] Add test for getchaintxstats (jimmysong) -- #10509 `bea5b00` Remove xvfb configuration from travis (ryanofsky) -- #10535 `30853e1` [qa] fundrawtx: Fix shutdown race (MarcoFalke) -- #9909 `300f8e7` tests: Add FindEarliestAtLeast test for edge cases (ryanofsky) -- #10331 `75e898c` Share config between util and functional tests (jnewbery) -- #10321 `e801084` Use FastRandomContext for all tests (sipa) -- #10524 `6c2d81f` [tests] Remove printf(...) (practicalswift) -- #10547 `71ab6e5` [tests] Use FastRandomContext instead of boost::random::{mt19937,uniform_int_distribution} (practicalswift) -- #10551 `6702617` [Tests] Wallet encryption functional tests (achow101) -- #10555 `643fa0b` [tests] various improvements to zmq_test.py (jnewbery) -- #10533 `d083bd9` [tests] Use cookie auth instead of rpcuser and rpcpassword (achow101) -- #10632 `c68a9a6` qa: Add stopatheight test (MarcoFalke) -- #10636 `4bc853b` [qa] util: Check return code after closing bitcoind proc (MarcoFalke) -- #10662 `e0a7801` Initialize randomness in benchmarks (achow101) -- #10612 `7c87a9c` The young person's guide to the test_framework (jnewbery) -- #10659 `acb1153` [qa] blockchain: Pass on closed connection during generate call (MarcoFalke) -- #10690 `416af3e` [qa] Bugfix: allow overriding extra_args in ComparisonTestFramework (sdaftuar) -- #10556 `65cc7aa` Move stop/start functions from utils.py into BitcoinTestFramework (jnewbery) -- #10704 `dd07f47` [tests] nits in dbcrash.py (jnewbery) -- #10743 `be82498` [test] don't run dbcrash.py on Travis (jnewbery) -- #10761 `d3b5870` [tests] fix replace_by_fee.py (jnewbery) -- #10759 `1d4805c` Fix multi_rpc test for hosts that dont default to utf8 (TheBlueMatt) -- #10190 `e4f226a` [tests] mining functional tests (including regression test for submitblock) (jnewbery) -- #10739 `1fc783f` test: Move variable `state` down where it is used (paveljanik) -- #9980 `fee0d80` Fix mem access violation merkleblock (Christewart) -- #10893 `0c173a1` [QA] Avoid running multiwallet.py twice (jonasschnelli) -- #10927 `9d5e8f9` test: Make sure wallet.backup is created in temp path (laanwj) -- #10899 `f29d5db` [test] Qt: Use _putenv_s instead of setenv on Windows builds (brianmcmichael) -- #10912 `5c8eb79` [tests] Fix incorrect memory_cleanse(…) call in crypto_tests.cpp (practicalswift) -- #11001 `fa8a063` [tests] Test disconnecting unsupported service bits logic (jnewbery) -- #10695 `929fd72` [qa] Rewrite BIP65/BIP66 functional tests (sdaftuar) -- #10963 `ecd2135` [bench] Restore format state of cout after printing with std::fixed/setprecision (practicalswift) -- #11025 `e5d26e4` qa: Fix inv race in example_test (MarcoFalke) -- #10765 `2c811e0` Tests: address placement should be deterministic by default (ReneNyffenegger) -- #11000 `ac016e1` test: Add resendwallettransactions functional tests (promag) -- #11032 `aeb3175` [qa] Fix block message processing error in sendheaders.py (sdaftuar) -- #10105 `0b9fb68` [tests] fixup - make all Travis test runs quiet, non just cron job runs (jnewbery) -- #10222 `6ce7337` [tests] test_runner - check unicode (jnewbery) -- #10327 `35da2ae` [tests] remove import-abort-rescan.py (jnewbery) -- #11023 `bf74d37` [tests] Add option to attach a python debugger if functional test fails (jnewbery) -- #10565 `8c2098a` [coverage] Remove subtrees and benchmarks from coverage report (achow101) - -### Miscellaneous -- #9871 `be8ba2c` Add a tree sha512 hash to merge commits (sipa) -- #9821 `d19d45a` util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD (laanwj) -- #9903 `ba80a68` Docs: add details to -rpcclienttimeout doc (ian-kelling) -- #9910 `53c300f` Docs: correct and elaborate -rpcbind doc (ian-kelling) -- #9905 `01b7cda` [contrib] gh-merge: Move second sha512 check to the end (MarcoFalke) -- #9880 `4df8213` Verify Tree-SHA512s in merge commits, enforce sigs are not SHA1 (TheBlueMatt) -- #9932 `00c13ea` Fix verify-commits on travis and always check top commit's tree (TheBlueMatt) -- #9952 `6996e06` Add historical release notes for 0.14.0 (laanwj) -- #9940 `fa99663` Fix verify-commits on OSX, update for new bad Tree-SHA512, point travis to different keyservers (TheBlueMatt) -- #9963 `8040ae6` util: Properly handle errors during log message formatting (laanwj) -- #9984 `cce056d` devtools: Make github-merge compute SHA512 from git, instead of worktree (laanwj) -- #9995 `8bcf934` [doc] clarify blockchain size and pruning (askmike) -- #9734 `0c17afc` Add updating of chainTxData to release process (sipa) -- #10063 `530fcbd` add missing spaces so that markdown recognizes headline (flack) -- #10085 `db1ae54` Docs: remove 'noconnect' option (jlopp) -- #10090 `8e4f7e7` Update bitcoin.conf with example for pruning (coinables) -- #9424 `1a5aaab` Change LogAcceptCategory to use uint32_t rather than sets of strings (gmaxwell) -- #10036 `fbf36ca` Fix init README format to render correctly on github (jlopp) -- #10058 `a2cd0b0` No need to use OpenSSL malloc/free (tjps) -- #10123 `471ed00` Allow debug logs to be excluded from specified component (jnewbery) -- #10104 `fadf078` linearize script: Option to use RPC cookie (achow101) -- #10162 `a3a2160` [trivial] Log calls to getblocktemplate (jnewbery) -- #10155 `928695b` build: Deduplicate version numbers (laanwj) -- #10211 `a86255b` [doc] Contributor fixes & new "finding reviewers" section (kallewoof) -- #10250 `1428f30` Fix some empty vector references (sipa) -- #10270 `95f5e44` Remove Clang workaround for Boost 1.46 (fanquake) -- #10263 `cb007e4` Trivial: fix fee estimate write error log message (CryptAxe) -- #9670 `bd9ec0e` contrib: github-merge improvements (laanwj) -- #10260 `1d75597` [doc] Minor corrections to osx dependencies (fanquake) -- #10189 `750c5a5` devtools/net: add a verifier for scriptable changes. Use it to make CNode::id private (theuni) -- #10322 `bc64b5a` Use hardware timestamps in RNG seeding (sipa) -- #10381 `7f2b9e0` Shadowing warnings are not enabled by default, update doc accordingly (paveljanik) -- #10380 `b6ee855` [doc] Removing comments about dirty entries on txmempool (madeo) -- #10383 `d0c37ee` [logging] log system time and mock time (jnewbery) -- #10404 `b45a52a` doc: Add logging to FinalizeNode() (sdaftuar) -- #10388 `526e839` Output line to debug.log when IsInitialBlockDownload latches to false (morcos) -- #10372 `15254e9` Add perf counter data to GetStrongRandBytes state in scheduler (TheBlueMatt) -- #10461 `55b72f3` Update style guide (sipa) -- #10486 `10e8c0a` devtools: Retry after signing fails in github-merge (laanwj) -- #10447 `f259263` Make bitcoind invalid argument error message specific (laanwj) -- #10495 `6a38b79` contrib: Update location of seeds.txt (laanwj) -- #10469 `b6b150b` Fixing typo in rpcdump.cpp help message (keystrike) -- #10451 `27b9931` contrib/init/bitcoind.openrcconf: Don't disable wallet by default (luke-jr) -- #10323 `00d3692` Update to latest libsecp256k1 master (sipa) -- #10422 `cec9e1e` Fix timestamp in fee estimate debug message (morcos) -- #10566 `5d034ee` [docs] Use the "domain name setup" image (previously unused) in the gitian docs (practicalswift) -- #10534 `a514ac3` Clarify prevector::erase and avoid swap-to-clear (sipa) -- #10575 `22ec768` Header include guideline (sipa) -- #10480 `fbf5d3b` Improve commit-check-script.sh (sipa) -- #10502 `1ad3d4e` scripted-diff: Remove BOOST_FOREACH, Q_FOREACH and PAIRTYPE (jtimon) -- #10377 `b63be2c` Use rdrand as entropy source on supported platforms (sipa) -- #9895 `228c319` Turn TryCreateDirectory() into TryCreateDirectories() (benma) -- #10602 `d76e84a` Make clang-format use C++11 features (e.g. A> instead of A >) (practicalswift) -- #10623 `c38f540` doc: Add 0.14.2 release notes (MarcoFalke) -- #10276 `b750b33` contrib/verifybinaries: allow filtering by platform (knocte) -- #10248 `01c4b14` Rewrite addrdb with less duplication using CHashVerifier (sipa) -- #10577 `232508f` Add an explanation of quickly hashing onto a non-power of two range (gmaxwell) -- #10608 `eee398f` Add a comment explaining the use of MAX_BLOCK_BASE_SIZE (gmaxwell) -- #10728 `7397af9` fix typo in help text for removeprunedfunds (AkioNak) -- #10193 `6dbcc74` scripted-diff: Remove #include (jtimon) -- #10676 `379aed0` document script-based return fields for validateaddress (instagibbs) -- #10651 `cef4b5c` Verify binaries from bitcoincore.org and bitcoin.org (TheBlueMatt) -- #10786 `ca4c545` Add PR description to merge commit in github-merge.py (sipa) -- #10812 `c5904e8` [utils] Allow bitcoin-cli's -rpcconnect option to be used with square brackets (jnewbery) -- #10842 `3895e25` Fix incorrect Doxygen tag (@ince → @since). Doxygen parameter name matching (practicalswift) -- #10681 `df0793f` add gdb attach process to test README (instagibbs) -- #10789 `1124328` Punctuation/grammer fixes in rpcwallet.cpp (stevendlander) -- #10655 `78f307b` Properly document target_confirmations in listsinceblock (RHavar) -- #10917 `5c003cb` developer-notes: add reference to snake_case and PascalCase (benma) -- #11003 `4b5a7ce` Docs: Capitalize bullet points in CONTRIBUTING guide (eklitzke) -- #10968 `98aa3f6` Add instructions for parallel gitian builds (coblee) -- #11076 `1c4b9b3` 0.15 release-notes nits: fix redundancy, remove accidental parenthesis & fix range style (practicalswift) -- #11090 `8f0121c` Update contributor names in release-notes.md (Derek701) -- #11056 `cbdd338` disable jni in builds (instagibbs) -- #11080 `2b59cfb` doc: Update build-openbsd for 6.1 (laanwj) -- #11119 `0a6af47` [doc] build-windows: Mention that only trusty works (MarcoFalke) -- #11108 `e8ad101` Changing -txindex requires -reindex, not -reindex-chainstate (TheBlueMatt) -- #9792 `342b9bc` FastRandomContext improvements and switch to ChaCha20 (sipa) -- #9505 `67ed40e` Prevector Quick Destruct (JeremyRubin) -- #10820 `ef37f20` Use cpuid intrinsics instead of asm code (sipa) -- #9999 `a328904` [LevelDB] Plug leveldb logs to bitcoin logs (NicolasDorier) -- #9693 `c5e9e42` Prevent integer overflow in ReadVarInt (gmaxwell) -- #10129 `351d0ad` scheduler: fix sub-second precision with boost < 1.50 (theuni) -- #10153 `fade788` logging: Fix off-by-one for shrinkdebugfile default (MarcoFalke) -- #10305 `c45da32` Fix potential NPD introduced in b297426c (TheBlueMatt) -- #10338 `daf3e7d` Maintain state across GetStrongRandBytes calls (sipa) -- #10544 `a4fe077` Update to LevelDB 1.20 (sipa) -- #10614 `cafe24f` random: fix crash on some 64bit platforms (theuni) -- #10714 `2a09a38` Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift) -- #10837 `8bc6d1f` Fix resource leak on error in GetDevURandom (corebob) -- #10832 `89bb036` init: Factor out AppInitLockDataDirectory and fix startup core dump issue (laanwj) -- #10914 `b995a37` Add missing lock in CScheduler::AreThreadsServicingQueue() (TheBlueMatt) -- #10958 `659c096` Update to latest Bitcoin patches for LevelDB (sipa) -- #10919 `c1c671f` Fix more init bugs (TheBlueMatt) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- ロハン ダル -- Ahmad Kazi -- aideca -- Akio Nakamura -- Alex Morcos -- Allan Doensen -- Andres G. Aragoneses -- Andrew Chow -- Angel Leon -- Awemany -- Bob McElrath -- Brian McMichael -- BtcDrak -- Charlie Lee -- Chris Gavin -- Chris Stewart -- Cory Fields -- CryptAxe -- Dag Robole -- Daniel Aleksandersen -- Daniel Cousens -- darksh1ne -- Dimitris Tsapakidis -- Eric Shaw -- Evan Klitzke -- fanquake -- Felix Weis -- flack -- Guido Vranken -- Greg Griffith -- Gregory Maxwell -- Gregory Sanders -- Ian Kelling -- Jack Grigg -- James Evans -- James Hilliard -- Jameson Lopp -- Jeremy Rubin -- Jimmy Song -- João Barbosa -- Johnathan Corgan -- John Newbery -- Jonas Schnelli -- Jorge Timón -- Karl-Johan Alm -- kewde -- KibbledJiveElkZoo -- Kirit Thadaka -- kobake -- Kyle Honeycutt -- Lawrence Nahum -- Luke Dashjr -- Marco Falke -- Marcos Mayorga -- Marijn Stollenga -- Mario Dian -- Mark Friedenbach -- Marko Bencun -- Masahiko Hyuga -- Matt Corallo -- Matthew Zipkin -- Matthias Grundmann -- Michael Goldstein -- Michael Rotarius -- Mikerah -- Mike van Rossum -- Mitchell Cash -- Nicolas Dorier -- Patrick Strateman -- Pavel Janík -- Pavlos Antoniou -- Pavol Rusnak -- Pedro Branco -- Peter Todd -- Pieter Wuille -- practicalswift -- René Nyffenegger -- Ricardo Velhote -- romanornr -- Russell Yanofsky -- Rusty Russell -- Ryan Havar -- shaolinfry -- Shigeya Suzuki -- Simone Madeo -- Spencer Lievens -- Steven D. Lander -- Suhas Daftuar -- Takashi Mitsuta -- Thomas Snider -- Timothy Redaelli -- tintinweb -- tnaka -- Warren Togami -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.15.1.md b/doc/release-notes/release-notes-0.15.1.md deleted file mode 100644 index 75d2e09714249..0000000000000 --- a/doc/release-notes/release-notes-0.15.1.md +++ /dev/null @@ -1,277 +0,0 @@ -Bitcoin Core version *0.15.1* is now available from: - - - -or - - - -This is a new minor version release, including various bugfixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or higher, your chainstate database will -be converted to a new format, which will take anywhere from a few minutes to -half an hour, depending on the speed of your machine. - -The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a -downgrade from version 0.15 or upgrade to version 0.15 will cause all fee -estimates to be discarded. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - - -Notable changes -=============== - -Network fork safety enhancements --------------------------------- - -A number of changes to the way Bitcoin Core deals with peer connections and invalid blocks -have been made, as a safety precaution against blockchain forks and misbehaving peers. - -- Unrequested blocks with less work than the minimum-chain-work are now no longer processed even -if they have more work than the tip (a potential issue during IBD where the tip may have low-work). -This prevents peers wasting the resources of a node. - -- Peers which provide a chain with less work than the minimum-chain-work during IBD will now be disconnected. - -- For a given outbound peer, we now check whether their best known block has at least as much work as our tip. If it -doesn't, and if we still haven't heard about a block with sufficient work after a 20 minute timeout, then we send -a single getheaders message, and wait 2 more minutes. If after two minutes their best known block has insufficient -work, we disconnect that peer. We protect 4 of our outbound peers from being disconnected by this logic to prevent -excessive network topology changes as a result of this algorithm, while still ensuring that we have a reasonable -number of nodes not known to be on bogus chains. - -- Outbound (non-manual) peers that serve us block headers that are already known to be invalid (other than compact -block announcements, because BIP 152 explicitly permits nodes to relay compact blocks before fully validating them) -will now be disconnected. - -- If the chain tip has not been advanced for over 30 minutes, we now assume the tip may be stale and will try to connect -to an additional outbound peer. A periodic check ensures that if this extra peer connection is in use, we will disconnect -the peer that least recently announced a new block. - -- The set of all known invalid-themselves blocks (i.e. blocks which we attempted to connect but which were found to be -invalid) are now tracked and used to check if new headers build on an invalid chain. This ensures that everything that -descends from an invalid block is marked as such. - - -Miner block size limiting deprecated ------------------------------------- - -Though blockmaxweight has been preferred for limiting the size of blocks returned by -getblocktemplate since 0.13.0, blockmaxsize remained as an option for those who wished -to limit their block size directly. Using this option resulted in a few UI issues as -well as non-optimal fee selection and ever-so-slightly worse performance, and has thus -now been deprecated. Further, the blockmaxsize option is now used only to calculate an -implied blockmaxweight, instead of limiting block size directly. Any miners who wish -to limit their blocks by size, instead of by weight, will have to do so manually by -removing transactions from their block template directly. - - -GUI settings backed up on reset -------------------------------- - -The GUI settings will now be written to `guisettings.ini.bak` in the data directory before wiping them when -the `-resetguisettings` argument is used. This can be used to retroactively troubleshoot issues due to the -GUI settings. - - -Duplicate wallets disallowed ----------------------------- - -Previously, it was possible to open the same wallet twice by manually copying the wallet file, causing -issues when both were opened simultaneously. It is no longer possible to open copies of the same wallet. - - -Debug `-minimumchainwork` argument added ----------------------------------------- - -A hidden debug argument `-minimumchainwork` has been added to allow a custom minimum work value to be used -when validating a chain. - - -Low-level RPC changes ----------------------- - -- The "currentblocksize" value in getmininginfo has been removed. - -- `dumpwallet` no longer allows overwriting files. This is a security measure - as well as prevents dangerous user mistakes. - -- `backupwallet` will now fail when attempting to backup to source file, rather than - destroying the wallet. - -- `listsinceblock` will now throw an error if an unknown `blockhash` argument - value is passed, instead of returning a list of all wallet transactions since - the genesis block. The behaviour is unchanged when an empty string is provided. - -0.15.1 Change log -================= - -### Mining -- #11100 `7871a7d` Fix confusing blockmax{size,weight} options, dont default to throwing away money (TheBlueMatt) - -### RPC and other APIs -- #10859 `2a5d099` gettxout: Slightly improve doc and tests (jtimon) -- #11267 `b1a6c94` update cli for estimate\*fee argument rename (laanwj) -- #11483 `20cdc2b` Fix importmulti bug when importing an already imported key (pedrobranco) -- #9937 `a43be5b` Prevent `dumpwallet` from overwriting files (laanwj) -- #11465 `405e069` Update named args documentation for importprivkey (dusty-wil) -- #11131 `b278a43` Write authcookie atomically (laanwj) -- #11565 `7d4546f` Make listsinceblock refuse unknown block hash (ryanofsky) -- #11593 `8195cb0` Work-around an upstream libevent bug (theuni) - -### P2P protocol and network code -- #11397 `27e861a` Improve and document SOCKS code (laanwj) -- #11252 `0fe2a9a` When clearing addrman clear mapInfo and mapAddr (instagibbs) -- #11527 `a2bd86a` Remove my testnet DNS seed (schildbach) -- #10756 `0a5477c` net processing: swap out signals for an interface class (theuni) -- #11531 `55b7abf` Check that new headers are not a descendant of an invalid block (more effeciently) (TheBlueMatt) -- #11560 `49bf090` Connect to a new outbound peer if our tip is stale (sdaftuar) -- #11568 `fc966bb` Disconnect outbound peers on invalid chains (sdaftuar) -- #11578 `ec8dedf` Add missing lock in ProcessHeadersMessage(...) (practicalswift) -- #11456 `6f27965` Replace relevant services logic with a function suite (TheBlueMatt) -- #11490 `bf191a7` Disconnect from outbound peers with bad headers chains (sdaftuar) - -### Validation -- #10357 `da4908c` Allow setting nMinimumChainWork on command line (sdaftuar) -- #11458 `2df65ee` Don't process unrequested, low-work blocks (sdaftuar) - -### Build system -- #11440 `b6c0209` Fix validationinterface build on super old boost/clang (TheBlueMatt) -- #11530 `265bb21` Add share/rpcuser to dist. source code archive (MarcoFalke) - -### GUI -- #11334 `19d63e8` Remove custom fee radio group and remove nCustomFeeRadio setting (achow101) -- #11198 `7310f1f` Fix display of package name on 'open config file' tooltip (esotericnonsense) -- #11015 `6642558` Add delay before filtering transactions (lclc) -- #11338 `6a62c74` Backup former GUI settings on `-resetguisettings` (laanwj) -- #11335 `8d13b42` Replace save|restoreWindowGeometry with Qt functions (MeshCollider) -- #11237 `2e31b1d` Fixing division by zero in time remaining (MeshCollider) -- #11247 `47c02a8` Use IsMine to validate custom change address (MarcoFalke) - -### Wallet -- #11017 `9e8aae3` Close DB on error (kallewoof) -- #11225 `6b4d9f2` Update stored witness in AddToWallet (sdaftuar) -- #11126 `2cb720a` Acquire cs_main lock before cs_wallet during wallet initialization (ryanofsky) -- #11476 `9c8006d` Avoid opening copied wallet databases simultaneously (ryanofsky) -- #11492 `de7053f` Fix leak in CDB constructor (promag) -- #11376 `fd79ed6` Ensure backupwallet fails when attempting to backup to source file (tomasvdw) -- #11326 `d570aa4` Fix crash on shutdown with invalid wallet (MeshCollider) - -### Tests and QA -- #11399 `a825d4a` Fix bip68-sequence rpc test (jl2012) -- #11150 `847c75e` Add getmininginfo test (mess110) -- #11407 `806c78f` add functional test for mempoolreplacement command line arg (instagibbs) -- #11433 `e169349` Restore bitcoin-util-test py2 compatibility (MarcoFalke) -- #11308 `2e1ac70` zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke) -- #10798 `716066d` test bitcoin-cli (jnewbery) -- #11443 `019c492` Allow "make cov" out-of-tree; Fix rpc mapping check (MarcoFalke) -- #11445 `51bad91` 0.15.1 Backports (MarcoFalke) -- #11319 `2f0b30a` Fix error introduced into p2p-segwit.py, and prevent future similar errors (sdaftuar) -- #10552 `e4605d9` Tests for zmqpubrawtx and zmqpubrawblock (achow101) -- #11067 `eeb24a3` TestNode: Add wait_until_stopped helper method (MarcoFalke) -- #11068 `5398f20` Move wait_until to util (MarcoFalke) -- #11125 `812c870` Add bitcoin-cli -stdin and -stdinrpcpass functional tests (promag) -- #11077 `1d80d1e` fix timeout issues from TestNode (jnewbery) -- #11078 `f1ced0d` Make p2p-leaktests.py more robust (jnewbery) -- #11210 `f3f7891` Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider) -- #11234 `f0b6795` Remove redundant testutil.cpp|h files (MeshCollider) -- #11215 `cef0319` fixups from set_test_params() (jnewbery) -- #11345 `f9cf7b5` Check connectivity before sending in assumevalid.py (jnewbery) -- #11091 `c276c1e` Increase initial RPC timeout to 60 seconds (laanwj) -- #10711 `fc2aa09` Introduce TestNode (jnewbery) -- #11230 `d8dd8e7` Fixup dbcrash interaction with add_nodes() (jnewbery) -- #11241 `4424176` Improve signmessages functional test (mess110) -- #11116 `2c4ff35` Unit tests for script/standard and IsMine functions (jimpo) -- #11422 `a36f332` Verify DBWrapper iterators are taking snapshots (TheBlueMatt) -- #11121 `bb5e7cb` TestNode tidyups (jnewbery) -- #11521 `ca0f3f7` travis: move back to the minimal image (theuni) -- #11538 `adbc9d1` Fix race condition failures in replace-by-fee.py, sendheaders.py (sdaftuar) -- #11472 `4108879` Make tmpdir option an absolute path, misc cleanup (MarcoFalke) -- #10853 `5b728c8` Fix RPC failure testing (again) (jnewbery) -- #11310 `b6468d3` Test listwallets RPC (mess110) - -### Miscellaneous -- #11377 `75997c3` Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (TheBlueMatt) -- #11437 `dea3b87` [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake) -- #11318 `8b61aee` Put back inadvertently removed copyright notices (gmaxwell) -- #11442 `cf18f42` [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake) -- #10957 `50bd3f6` Avoid returning a BIP9Stats object with uninitialized values (practicalswift) -- #11539 `01223a0` [verify-commits] Allow revoked keys to expire (TheBlueMatt) - - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andreas Schildbach -- Andrew Chow -- Chris Moore -- Cory Fields -- Cristian Mircea Messel -- Daniel Edgecumbe -- Donal OConnor -- Dusty Williams -- fanquake -- Gregory Sanders -- Jim Posen -- John Newbery -- Johnson Lau -- João Barbosa -- Jorge Timón -- Karl-Johan Alm -- Lucas Betschart -- MarcoFalke -- Matt Corallo -- Paul Berg -- Pedro Branco -- Pieter Wuille -- practicalswift -- Russell Yanofsky -- Samuel Dobson -- Suhas Daftuar -- Tomas van der Wansem -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.15.2.md b/doc/release-notes/release-notes-0.15.2.md deleted file mode 100644 index 1f5827905120e..0000000000000 --- a/doc/release-notes/release-notes-0.15.2.md +++ /dev/null @@ -1,118 +0,0 @@ -Bitcoin Core version *0.15.2* is now available from: - - - -This is a new minor version release, including various bugfixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or higher, your chainstate database will -be converted to a new format, which will take anywhere from a few minutes to -half an hour, depending on the speed of your machine. - -The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a -downgrade from version 0.15 or upgrade to version 0.15 will cause all fee -estimates to be discarded. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - - -Notable changes -=============== - -Denial-of-Service vulnerability CVE-2018-17144 -------------------------------- - -A denial-of-service vulnerability exploitable by miners has been discovered in -Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of -the vulnerable versions to 0.15.2 or 0.16.3 as soon as possible. - -0.15.2 Change log -================= - -### Build system - -- #11995 `9bb1a16` depends: Fix Qt build with XCode 9.2(fanquake) -- #12946 `93b9a61` depends: Fix Qt build with XCode 9.3(fanquake) -- #13544 `9fd3e00` depends: Update Qt download url (fanquake) -- #11847 `cb7ef31` Make boost::multi_index comparators const (sdaftuar) - -### Consensus -- #14247 `4b8a3f5` Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar) - -### RPC -- #11676 `7af2457` contrib/init: Update openrc-run filename (Luke Dashjr) -- #11277 `7026845` Fix uninitialized URI in batch RPC requests (Russell Yanofsky) - -### Wallet -- #11289 `3f1db56` Wrap dumpwallet warning and note scripts aren't dumped (MeshCollider) -- #11289 `42ea47d` Add wallet backup text to import*, add* and dumpwallet RPCs (MeshCollider) -- #11590 `6372a75` [Wallet] always show help-line of wallet encryption calls (Jonas Schnelli) - -### bitcoin-tx - -- #11554 `a69cc07` Sanity-check script sizes in bitcoin-tx (TheBlueMatt) - -### Tests -- #11277 `3a6cdd4` Add test for multiwallet batch RPC calls (Russell Yanofsky) -- #11647 `1c8c7f8` Add missing batch rpc calls to python coverage logs (Russell Yanofsky) -- #11277 `1036c43` Add missing multiwallet rpc calls to python coverage logs (Russell Yanofsky) -- #11277 `305f768` Limit AuthServiceProxyWrapper.\_\_getattr\_\_ wrapping (Russell Yanofsky) -- #11277 `2eea279` Make AuthServiceProxy.\_batch method usable (Russell Yanofsky) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- fanquake -- Jonas Schnelli -- Luke Dashjr -- Matt Corallo -- MeshCollider -- Russell Yanofsky -- Suhas Daftuar -- Wladimir J. van der Laan - -And to those that reported security issues: - -- awemany (for CVE-2018-17144, previously credited as "anonymous reporter") - diff --git a/doc/release-notes/release-notes-0.16.0.md b/doc/release-notes/release-notes-0.16.0.md deleted file mode 100644 index 8f158b3481cfa..0000000000000 --- a/doc/release-notes/release-notes-0.16.0.md +++ /dev/null @@ -1,720 +0,0 @@ -Bitcoin Core version 0.16.0 is now available from: - - - -This is a new major version release, including new features, various bugfixes -and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or newer, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0 or higher. Upgrading -directly from 0.7.x and earlier without re-downloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -Wallets created in 0.16 and later are not compatible with versions prior to 0.16 -and will not work if you try to use newly created wallets in older versions. Existing -wallets that were created with older versions are not affected by this. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -Wallet changes ---------------- - -### Segwit Wallet - -Bitcoin Core 0.16.0 introduces full support for segwit in the wallet and user interfaces. A new `-addresstype` argument has been added, which supports `legacy`, `p2sh-segwit` (default), and `bech32` addresses. It controls what kind of addresses are produced by `getnewaddress`, `getaccountaddress`, and `createmultisigaddress`. A `-changetype` argument has also been added, with the same options, and by default equal to `-addresstype`, to control which kind of change is used. - -A new `address_type` parameter has been added to the `getnewaddress` and `addmultisigaddress` RPCs to specify which type of address to generate. -A `change_type` argument has been added to the `fundrawtransaction` RPC to override the `-changetype` argument for specific transactions. - -- All segwit addresses created through `getnewaddress` or `*multisig` RPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date. -- All segwit keys in the wallet get an implicit redeemscript added, without it being written to the file. This means recovery of an old backup will work, as long as you use new software. -- All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work - -Note that some RPCs do not yet support segwit addresses. Notably, `signmessage`/`verifymessage` doesn't support segwit addresses, nor does `importmulti` at this time. Support for segwit in those RPCs will continue to be added in future versions. - -P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case. - -### BIP173 (Bech32) Address support ("bc1..." addresses) - -Full support for native segwit addresses (BIP173 / Bech32) has now been added. -This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these -addresses (including as default new addresses, see above). - -A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with `-addresstype=bech32` it is checked by default. When launched with `-addresstype=legacy` it is unchecked and disabled. - -### HD-wallets by default - -Due to a backward-incompatible change in the wallet database, wallets created -with version 0.16.0 will be rejected by previous versions. Also, version 0.16.0 -will only create hierarchical deterministic (HD) wallets. Note that this only applies -to new wallets; wallets made with previous versions will not be upgraded to be HD. - -### Replace-By-Fee by default in GUI - -The send screen now uses BIP125 RBF by default, regardless of `-walletrbf`. -There is a checkbox to mark the transaction as final. - -The RPC default remains unchanged: to use RBF, launch with `-walletrbf=1` or -use the `replaceable` argument for individual transactions. - -### Wallets directory configuration (`-walletdir`) - -Bitcoin Core now has more flexibility in where the wallets directory can be -located. Previously wallet database files were stored at the top level of the -bitcoin data directory. The behavior is now: - -- For new installations (where the data directory doesn't already exist), - wallets will now be stored in a new `wallets/` subdirectory inside the data - directory by default. -- For existing nodes (where the data directory already exists), wallets will be - stored in the data directory root by default. If a `wallets/` subdirectory - already exists in the data directory root, then wallets will be stored in the - `wallets/` subdirectory by default. -- The location of the wallets directory can be overridden by specifying a - `-walletdir=` option where `` can be an absolute path to a - directory or directory symlink. - -Care should be taken when choosing the wallets directory location, as if it -becomes unavailable during operation, funds may be lost. - -Build: Minimum GCC bumped to 4.8.x ------------------------------------- -The minimum version of the GCC compiler required to compile Bitcoin Core is now 4.8. No effort will be -made to support older versions of GCC. See discussion in issue #11732 for more information. -The minimum version for the Clang compiler is still 3.3. Other minimum dependency versions can be found in `doc/dependencies.md` in the repository. - -Support for signalling pruned nodes (BIP159) ---------------------------------------------- -Pruned nodes can now signal BIP159's NODE_NETWORK_LIMITED using service bits, in preparation for -full BIP159 support in later versions. This would allow pruned nodes to serve the most recent blocks. However, the current change does not yet include support for connecting to these pruned peers. - -Performance: SHA256 assembly enabled by default -------------------------------------------------- -The SHA256 hashing optimizations for architectures supporting SSE4, which lead to ~50% speedups in SHA256 on supported hardware (~5% faster synchronization and block validation), have now been enabled by default. In previous versions they were enabled using the `--enable-experimental-asm` flag when building, but are now the default and no longer deemed experimental. - -GUI changes ------------ -- Uses of "µBTC" in the GUI now also show the more colloquial term "bits", specified in BIP176. -- The option to reuse a previous address has now been removed. This was justified by the need to "resend" an invoice, but now that we have the request history, that need should be gone. -- Support for searching by TXID has been added, rather than just address and label. -- A "Use available balance" option has been added to the send coins dialog, to add the remaining available wallet balance to a transaction output. -- A toggle for unblinding the password fields on the password dialog has been added. - -RPC changes ------------- - -### New `rescanblockchain` RPC - -A new RPC `rescanblockchain` has been added to manually invoke a blockchain rescan. -The RPC supports start and end-height arguments for the rescan, and can be used in a -multiwallet environment to rescan the blockchain at runtime. - -### New `savemempool` RPC -A new `savemempool` RPC has been added which allows the current mempool to be saved to -disk at any time to avoid it being lost due to crashes / power loss. - -### Safe mode disabled by default - -Safe mode is now disabled by default and must be manually enabled (with `-disablesafemode=0`) if you wish to use it. Safe mode is a feature that disables a subset of RPC calls - mostly related to the wallet and sending - automatically in case certain problem conditions with the network are detected. However, developers have come to regard these checks as not reliable enough to act on automatically. Even with safe mode disabled, they will still cause warnings in the `warnings` field of the `getneworkinfo` RPC and launch the `-alertnotify` command. - -### Renamed script for creating JSON-RPC credentials - -The `share/rpcuser/rpcuser.py` script was renamed to `share/rpcauth/rpcauth.py`. This script can be -used to create `rpcauth` credentials for a JSON-RPC user. - -### Validateaddress improvements - -The `validateaddress` RPC output has been extended with a few new fields, and support for segwit addresses (both P2SH and Bech32). Specifically: -* A new field `iswitness` is True for P2WPKH and P2WSH addresses ("bc1..." addresses), but not for P2SH-wrapped segwit addresses (see below). -* The existing field `isscript` will now also report True for P2WSH addresses. -* A new field `embedded` is present for all script addresses where the script is known and matches something that can be interpreted as a known address. This is particularly true for P2SH-P2WPKH and P2SH-P2WSH addresses. The value for `embedded` includes much of the information `validateaddress` would report if invoked directly on the embedded address. -* For multisig scripts a new `pubkeys` field was added that reports the full public keys involved in the script (if known). This is a replacement for the existing `addresses` field (which reports the same information but encoded as P2PKH addresses), represented in a more useful and less confusing way. The `addresses` field remains present for non-segwit addresses for backward compatibility. -* For all single-key addresses with known key (even when wrapped in P2SH or P2WSH), the `pubkey` field will be present. In particular, this means that invoking `validateaddress` on the output of `getnewaddress` will always report the `pubkey`, even when the address type is P2SH-P2WPKH. - -### Low-level changes - -- The deprecated RPC `getinfo` was removed. It is recommended that the more specific RPCs are used: - * `getblockchaininfo` - * `getnetworkinfo` - * `getwalletinfo` - * `getmininginfo` -- The wallet RPC `getreceivedbyaddress` will return an error if called with an address not in the wallet. -- The wallet RPC `addwitnessaddress` was deprecated and will be removed in version 0.17, - set the `address_type` argument of `getnewaddress`, or option `-addresstype=[bech32|p2sh-segwit]` instead. -- `dumpwallet` now includes hex-encoded scripts from the wallet in the dumpfile, and - `importwallet` now imports these scripts, but corresponding addresses may not be added - correctly or a manual rescan may be required to find relevant transactions. -- The RPC `getblockchaininfo` now includes an `errors` field. -- A new `blockhash` parameter has been added to the `getrawtransaction` RPC which allows for a raw transaction to be fetched from a specific block if known, even without `-txindex` enabled. -- The `decoderawtransaction` and `fundrawtransaction` RPCs now have optional `iswitness` parameters to override the - heuristic witness checks if necessary. -- The `walletpassphrase` timeout is now clamped to 2^30 seconds. -- Using addresses with the `createmultisig` RPC is now deprecated, and will be removed in a later version. Public keys should be used instead. -- Blockchain rescans now no longer lock the wallet for the entire rescan process, so other RPCs can now be used at the same time (although results of balances / transactions may be incorrect or incomplete until the rescan is complete). -- The `logging` RPC has now been made public rather than hidden. -- An `initialblockdownload` boolean has been added to the `getblockchaininfo` RPC to indicate whether the node is currently in IBD or not. -- `minrelaytxfee` is now included in the output of `getmempoolinfo` - -Other changed command-line options ----------------------------------- -- `-debuglogfile=` can be used to specify an alternative debug logging file. -- bitcoin-cli now has an `-stdinrpcpass` option to allow the RPC password to be read from standard input. -- The `-usehd` option has been removed. -- bitcoin-cli now supports a new `-getinfo` flag which returns an output like that of the now-removed `getinfo` RPC. - -Testing changes ----------------- -- The default regtest JSON-RPC port has been changed to 18443 to avoid conflict with testnet's default of 18332. -- Segwit is now always active in regtest mode by default. Thus, if you upgrade a regtest node you will need to either -reindex or use the old rules by adding `vbparams=segwit:0:999999999999` to your regtest bitcoin.conf. Failure to do this will result in a CheckBlockIndex() assertion failure that will look like: Assertion `(pindexFirstNeverProcessed != nullptr) == (pindex->nChainTx == 0)' failed. - -0.16.0 change log ------------------- - -### Block and transaction handling -- #10953 `aeed345` Combine scriptPubKey and amount as CTxOut in CScriptCheck (jl2012) -- #11309 `93d20a7` Minor cleanups for AcceptToMemoryPool (morcos) -- #11418 `38c201f` Add error string for CLEANSTACK script violation (maaku) -- #11411 `339da9c` Change SignatureHash input index check to an assert (jimpo) -- #11406 `e12522d` Add state message print to AcceptBlock failure message (TheBlueMatt) -- #11062 `26fee4f` Mark mempool import fails that were found in mempool as 'already there' (kallewoof) -- #11269 `61fb806` CTxMemPoolEntry::UpdateAncestorState: modifySiagOps param type (donaloconnor) -- #11747 `e970396` Fix: Open files read only if requested (Elbandi) -- #11737 `46d1ebf` Document partial validation in ConnectBlock() (sdaftuar) -- #10699 `c090262` Make all script validation flags backward compatible (sipa) -- #10279 `214046f` Add a CChainState class to validation.cpp to take another step towards clarifying internal interfaces (TheBlueMatt) -- #11824 `d9fdac1` Block ActivateBestChain to empty validationinterface queue (TheBlueMatt) -- #12127 `9501dc2` Remove unused mempool index (sdaftuar) -- #12118 `44080a9` Sort mempool by min(feerate, ancestor_feerate) (sdaftuar) -- #8498 `0e3a411` Minimize the number of times it is checked that no money... (jtimon) -- #12368 `3f5012b` Hold mempool.cs for the duration of ATMP (TheBlueMatt) -- #12401 `d44cd7e` Reset pblocktree before deleting LevelDB file (Sjors) -- #12415 `f893824` Interrupt loading thread after shutdown request (promag) - -### P2P protocol and network code -- #10596 `6866b49` Add vConnect to CConnman::Options (benma) -- #10663 `9d31ed2` Split resolve out of connect (theuni) -- #11113 `fef65c4` Ignore getheaders requests for very old side blocks (jimpo) -- #11585 `5aeaa9c` addrman: Add missing lock in Clear() (CAddrMan) (practicalswift) -- #11524 `5ef3b69` De-duplicate connection eviction logic (tjps) -- #11580 `1f4375f` Do not send (potentially) invalid headers in response to getheaders (TheBlueMatt) -- #11655 `aca77a4` Assert state.m_chain_sync.m_work_header in ConsiderEviction (practicalswift) -- #11744 `3ff6ff5` Add missing locks in net.{cpp,h} (practicalswift) -- #11740 `59d3dc8` Implement BIP159 NODE_NETWORK_LIMITED (pruned peers) *signaling only* (jonasschnelli) -- #11583 `37ffa16` Do not make it trivial for inbound peers to generate log entries (TheBlueMatt) -- #11363 `ba2f195` Split socket create/connect (theuni) -- #11917 `bc66765` Add testnet DNS seed: seed.testnet.bitcoin.sprovoost.nl (Sjors) -- #11512 `6e89de5` Use GetDesireableServiceFlags in seeds, dnsseeds, fixing static seed adding (TheBlueMatt) -- #12262 `16bac24` Hardcoded seed update (laanwj) -- #12270 `9cf6393` Update chainTxData for 0.16 (laanwj) -- #12392 `0f61651` Fix ignoring tx data requests when fPauseSend is set on a peer (TheBlueMatt) - -### Wallet -- #11039 `fc51565` Avoid second mapWallet lookup (promag) -- #10952 `2621673` Remove vchDefaultKey and have better first run detection (achow101) -- #11007 `fc5c237` Fix potential memory leak when loading a corrupted wallet file (practicalswift) -- #10976 `07c92b9` Move some static functions out of wallet.h/cpp (ryanofsky) -- #11117 `961901f` Prepare for non-Base58 addresses (sipa) -- #10916 `e6ab88a` add missing lock to crypter GetKeys() (benma) -- #10767 `791a0e6` Clarify wallet initialization / destruction interface (jnewbery) -- #11250 `c22a53c` Bump wallet version to 159900 and remove the `usehd` option (achow101) -- #11307 `4f7e37e` Display non-HD error on first run (MarcoFalke) -- #11408 `69c7ece` Fix parameter name typo in ErasePurpose walletdb method (PierreRochard) -- #11167 `aa624b6` Full BIP173 (Bech32) support (sipa) -- #11594 `0ecc630` Improve -disablewallet parameter interaction (promag) -- #10368 `77ba4bf` Remove helper conversion operator from wallet (kallewoof) -- #11074 `99ec126` Assert that CWallet::SyncMetaData finds oldest transaction (BitonicEelis) -- #11272 `e6e3fc3` CKeystore/CCrypter: move relevant implementation out of the header (jonasschnelli) -- #10286 `927a1d7` Call wallet notify callbacks in scheduler thread (without cs_main) (TheBlueMatt) -- #10600 `4ed8180` Make feebumper class stateless (ryanofsky) -- #11466 `d080a7d` Specify custom wallet directory with -walletdir param (MeshCollider) -- #11839 `8ab6c0b` Don't attempt mempool entry for wallet transactions on startup (instagibbs) -- #11854 `2214954` Split up key and script metadata for better type safety (ryanofsky) -- #11870 `ef8ba7d` Remove unnecessary mempool lock in ReacceptWalletTransactions (promag) -- #11864 `2ae58d5` Make CWallet::FundTransaction atomic (promag) -- #11886 `df71819` Clarify getbalance meaning a tiny bit in response to questions (TheBlueMatt) -- #11923 `81c89e9` Remove unused fNoncriticalErrors variable from CWalletDB::FindWalletTx (PierreRochard) -- #11726 `604e08c` Cleanups + nit fixes for walletdir PR (MeshCollider) -- #11403 `d889c03` Segwit wallet support (sipa) -- #11970 `b7450cd` Add test coverage for bitcoin-cli multiwallet calls (ryanofsky) -- #11904 `66e3af7` Add a lock to the wallet directory (MeshCollider) -- #12101 `c7978be` Clamp walletpassphrase timeout to 2^30 seconds and check its bounds (achow101) -- #12210 `17180fa` Deprecate addwitnessaddress (laanwj) -- #12220 `f4c942e` Error if relative -walletdir is specified (ryanofsky) -- #11281 `8470e64` Avoid permanent cs_main/cs_wallet lock during RescanFromTime (jonasschnelli) -- #12119 `9594139` Use P2WPKH change output if any destination is P2WPKH or P2WSH (Sjors) -- #12213 `eadb2da` Add address type option to addmultisigaddress (promag) -- #12276 `7936446` Remove duplicate mapWallet lookups (promag) - -### RPC and other APIs -- #11008 `3841aaf` Enable disablesafemode by default (gmaxwell) -- #11050 `7ed57d3` Avoid treating null RPC arguments different from missing arguments (ryanofsky) -- #10997 `affe927` Add option -stdinrpcpass to bitcoin-cli to allow RPC password to be read from standard input (jharvell) -- #11179 `e0e3cbb` Push down safe mode checks (laanwj) -- #11203 `d745b4c` add wtxid to mempool entry output (sdaftuar) -- #11099 `bc561b4` Add savemempool RPC (greenaddress) -- #10838 `66a5b41` (finally) remove getinfo (TheBlueMatt) -- #10753 `7fcd61b` test: Check RPC argument mapping (laanwj) -- #11288 `0f8e095` More user-friendly error message when partially signing (MeshCollider) -- #11031 `ef8340d` deprecate estimatefee (jnewbery) -- #10858 `9a8e916` Add "errors" field to getblockchaininfo and unify "errors" field in get*info RPCs (achow101) -- #11021 `90926db` Fix getchaintxstats() (AkioNak) -- #11367 `3a93270` getblockchaininfo: Add disk_size, prune_target_size (esotericnonsense) -- #11006 `a1d78b5` Improve shutdown process (promag) -- #11529 `ff92fbf` Avoid slow transaction search with txindex enabled (promag) -- #11618 `87d90ef` Lock cs_main in blockToJSON/blockheaderToJSON (practicalswift) -- #11626 `998c304` Make `logging` RPC public (laanwj) -- #11258 `033c786` Add initialblockdownload to getblockchaininfo (jnewbery) -- #11087 `99bc0b4` Diagnose unsuitable outputs in lockunspent() (BitonicEelis) -- #11710 `9388639` cli: Reject arguments to -getinfo (laanwj) -- #11738 `d4267a3` Fix sendrawtransaction hang when sending a tx already in mempool (TheBlueMatt) -- #11753 `32c9b57` clarify abortrescan rpc use (instagibbs) -- #11191 `ef14f2e` Improve help text and behavior of RPC-logging (AkioNak) -- #10874 `9e38d35` getblockchaininfo: Loop through the bip9 soft fork deployments instead of hard coding (achow101) -- #10275 `497d0e0` Allow fetching tx directly from specified block in getrawtransaction (kallewoof) -- #11178 `fee0370` Add iswitness parameter to decode- and fundrawtransaction RPCs (MeshCollider) -- #11667 `711d16c` Add scripts to dumpwallet RPC (MeshCollider) -- #11475 `9bad8d6` mempoolinfo should take ::minRelayTxFee into account (mess110) -- #12001 `a9a49e6` Adding ::minRelayTxFee amount to getmempoolinfo and updating help (jeffrade) -- #12198 `adce1de` Add deprecation error for `getinfo` (laanwj) -- #11415 `69ec021` Disallow using addresses in createmultisig (achow101) -- #12278 `288deac` Add special error for genesis coinbase to getrawtransaction (MeshCollider) -- #11362 `c6223b3` Remove nBlockMaxSize from miner opt struct as it is no longer used (gmaxwell) -- #10825 `28485c7` Set regtest JSON-RPC port to 18443 to avoid conflict with testnet 18332 (fametrano) -- #11303 `e542728` Fix estimatesmartfee rounding display issue (TheBlueMatt) -- #7061 `8c2de82` Add RPC call "rescanblockchain " (jonasschnelli) -- #11055 `95e14dc` RPC getreceivedbyaddress should return error if called with address not owned by the wallet (jnewbery) -- #12366 `93de37a` http: Join worker threads before deleting work queue (laanwj) -- #12315 `758a41e` Bech32 addresses in dumpwallet (fivepiece) -- #12427 `3762ac1` Make signrawtransaction accept P2SH-P2WSH redeemscripts (sipa) - -### GUI -- #10964 `64e66bb` Pass SendCoinsRecipient (208 bytes) by reference (practicalswift) -- #11169 `5b8af7b` Make tabs toolbar no longer have a context menu (achow101) -- #10911 `9c8f365` Fix typo and access key in optionsdialog.ui (keystrike) -- #10770 `ea729d5` Drop upgrade-cancel callback registration for a generic "cancelable" (TheBlueMatt) -- #11156 `a3624dd` Fix memory leaks in qt/guiutil.cpp (danra) -- #11268 `31e72b2` [macOS] remove Growl support, remove unused code (jonasschnelli) -- #11193 `c5c77bd` Terminate string *pszExePath after readlink and without using memset (practicalswift) -- #11508 `ffa5159` Fix crash via division by zero assertion (jonasschnelli) -- #11499 `6157e8c` Add upload and download info to the peerlist (debug menu) (aarongolliver) -- #11480 `ffc0b11` Add toggle for unblinding password fields (tjps) -- #11316 `22cdf93` Add use available balance in send coins dialog (CryptAxe, promag) -- #3716 `13e352d` Receive: Remove option to reuse a previous address (luke-jr) -- #11690 `f0c1f8a` Fix the StartupWMClass for bitoin-qt, so gnome-shell can recognize it (eklitzke) -- #10920 `f6f8d54` Fix potential memory leak in newPossibleKey(ChangeCWallet *wallet) (practicalswift) -- #11698 `7293d06` RPC-Console nested commands documentation (lmlsna) -- #11395 `38d31f9` Enable searching by transaction id (luke-jr) -- #11556 `91eeaa0` Improved copy for RBF checkbox and tooltip (Sjors) -- #11809 `80f9dad` Fix proxy setting options dialog crash (laanwj) -- #11616 `8585bb8` Update ban-state in case of dirty-state during periodic sweep (jonasschnelli) -- #11605 `f19ca12` Enable RBF by default in QT (Sjors) -- #12074 `a1136f0` Optimizes boolean expression model && model->haveWatchOnly() (251Labs) -- #12035 `eeb6d52` Change µBTC to bits (jb55) -- #12092 `fd4ca17` Replaces numbered place marker %2 with %1 (251Labs) -- #12173 `bbc91b7` Use flexible font size for QRCode image address (jonasschnelli) -- #12211 `10d10d7` Avoid potential null dereference in ReceiveCoinsDialog constructor (ryanofsky) -- #12261 `f359afc` Bump BLOCK_CHAIN_SIZE to 200GB (laanwj) -- #11991 `062c8b6` Receive: checkbox for bech32 address (Sjors) -- #11644 `045a809` Fix qt build broken by 5a5e4e9 (TheBlueMatt) -- #11448 `d473e6d` reset addrProxy/addrSeparateProxyTor if colon char missing (mess110) -- #12377 `604f289` qt: Poll ShutdownTimer after init is done (MarcoFalke) -- #12374 `daaae36` qt: Make sure splash screen is freed on AppInitMain fail (laanwj) -- #12349 `ad10b90` shutdown: fix crash on shutdown with reindex-chainstate (theuni) - -### Build system -- #10923 `2c9f5ec` travis: Build with --enable-werror under OS X (practicalswift) -- #11176 `df8c722` build: Rename --enable-experimental-asm to --enable-asm and enable by default (laanwj) -- #11286 `11dacc6` [depends] Don't build libevent sample code (fanquake) -- #7142 `801dd40` Travis: Test build against system libs (& Qt4) (luke-jr) -- #11380 `390771b` Remove outdated share/certs/ directory (MeshCollider) -- #11391 `7632310` Remove lxcbr0 lines from gitian-build.sh (MeshCollider) -- #11435 `167cef8` build: Make "make clean" remove all files created when running "make check" (practicalswift) -- #11460 `e022463` [depends] mac_alias 2.0.6, ds_store 1.1.2 (fanquake) -- #11541 `bb9ab0f` Build: Fix Automake warnings when running autogen.sh (fanquake) -- #11611 `0e70791` [build] Don't fail when passed --disable-lcov and lcov isn't available (fanquake) -- #11651 `3c098a8` refactor: Make all #includes relative to project root (laanwj, MeshCollider, ryanofsky) -- #11621 `1f7695b` [build] Add temp_bitcoin_locale_qrc to CLEAN_QT to fix make distcheck (fanquake) -- #11755 `84fa645` [Docs] Bump minimum required version of GCC to 4.8 (fanquake) -- #9254 `6d3dc52` [depends] ZeroMQ 4.2.2 (fanquake) -- #11842 `3c8f0a3` [build] Add missing stuff to clean-local (kallewoof) -- #11936 `483bb67` [build] Warn that only libconsensus can be built without Boost (fanquake) -- #11945 `7a11ba7` Improve BSD compatibility of contrib/install_db4.sh (laanwj) -- #11981 `180a255` Fix gitian build after libzmq bump (theuni) -- #11903 `8f68fd2` [trivial] Add required package dependencies for depends cross compilation (jonasschnelli) -- #12168 `45cf8a0` #include sys/fcntl.h to just fcntl.h (without sys/) (jsarenik) -- #12095 `3fa1ab4` Use BDB_LIBS/CFLAGS and pass --disable-replication (fanquake) -- #11711 `6378e5c` bitcoin_qt.m4: Minor fixes and clean-ups (fanquake) -- #11989 `90d4104` .gitignore: add QT Creator artifacts (Sjors) -- #11577 `c0ae864` Fix warnings (-Wsign-compare) when building with DEBUG_ADDRMAN (practicalswift) - -### Tests and QA -- #11024 `3e55f13` Remove OldSetKeyFromPassphrase/OldEncrypt/OldDecrypt (practicalswift) -- #10679 `31b2612` Document the non-DER-conformance of one test in tx_valid.json (schildbach) -- #11160 `ede386c` Improve versionbits_computeblockversion test code consistency (danra) -- #10303 `f088a1b` Include ms/blk stats in Connect* benchmarks (kallewoof) -- #10777 `d81dccf` Avoid redundant assignments. Remove unused variables (practicalswift) -- #11260 `52f8877` travis: Assert default datadir isn't created, Run scripted diff only once (MarcoFalke) -- #11271 `638e6c5` travis: filter out pyenv (theuni) -- #11285 `3255d63` Add -usehd to excluded args in check-doc.py (MeshCollider) -- #11297 `16e4184` Make sure ~/.bitcoin doesn't exist before build (MeshCollider) -- #11311 `cce94c5` travis: Revert default datadir check (MarcoFalke) -- #11300 `f4ed44a` Add a lint check for trailing whitespace (MeshCollider) -- #11323 `4ce2f3d` mininode: add an optimistic write and disable nagle (theuni) -- #11370 `2d85899` Add getblockchaininfo functional test (promag) -- #11365 `f199b8a` Add Qt GUI tests to Overview and ReceiveCoin Page (anditto) -- #11293 `dbc4ae0` Deduplicate CMerkleBlock construction code, add test coverage (jamesob) -- #10440 `9e8ef9d` Add libFuzzer support (practicalswift) -- #10941 `364da2c` Add blocknotify and walletnotify functional tests (promag) -- #11420 `8928093` Bump univalue subtree and fix json formatting in tests (MarcoFalke) -- #10099 `424be03` Slightly Improve Unit Tests for Checkqueue (JeremyRubin) -- #11513 `14b860b` A few Python3 tidy ups (jnewbery) -- #11486 `2ca518d` Add uacomment tests (mess110) -- #11452 `02ac8c8` Improve ZMQ functional test (promag) -- #10409 `b5545d8` Add fuzz testing for BlockTransactions and BlockTransactionsRequest (practicalswift) -- #11389 `dd56166` Support having segwit always active in regtest (sipa, ajtowns, jnewbery) -- #11562 `5776582` bench: use std::chrono rather than gettimeofday (theuni) -- #11182 `f7388e9` Add P2P interface to TestNode (jnewbery) -- #11552 `b5f9f02` Improve wallet-accounts test (ryanofsky) -- #11638 `5e3f5e4` Dead mininode code (jnewbery) -- #11646 `fe503e1` Require a steady clock for bench with at least micro precision (TheBlueMatt) -- #11468 `76b3349` Make comp test framework more debuggable (jnewbery) -- #11623 `ee92243` Add missing locks to tests (practicalswift) -- #11035 `927e528` [contrib] Add Valgrind suppressions file (practicalswift) -- #11641 `7adeea3` Only allow disconnecting all NodeConns (MarcoFalke) -- #11677 `3bdf242` Remove unused NodeConn members (MarcoFalke) -- #11699 `66d46c7` [travis-ci] Only run linters on Pull Requests (jnewbery) -- #11654 `084f52f` Initialize recently introduced non-static class member lastCycles to zero in constructor (practicalswift) -- #11648 `ccc70a2` Add messages.py (jnewbery) -- #11713 `49667a7` Fix for mismatched extern definition in wallet tests (sipsorcery) -- #11707 `0d89fa0` Fix sendheaders (jnewbery) -- #11718 `9cdd2bc` Move pwalletMain to wallet test fixture (laanwj) -- #11714 `901ba3e` Test that mempool rejects coinbase transactions (jamesob) -- #11743 `3d6ad40` Add multiwallet prefix test (MarcoFalke) -- #11683 `a892218` Remove unused mininode functions {ser,deser}_int_vector(...). Remove unused imports (practicalswift) -- #11712 `9f2c2db` Split NodeConn from NodeConnCB (jnewbery) -- #11791 `13e31dd` Rename NodeConn and NodeConnCB (jnewbery) -- #11835 `f60b4ad` Add Travis check for unused Python imports (practicalswift) -- #11849 `ad1820c` Assert that only one NetworkThread exists (jnewbery) -- #11877 `d4991c0` Improve createrawtransaction functional tests (promag) -- #11220 `2971fd0` Check specific validation error in miner tests (Sjors) -- #11947 `797441e` Fix rawtransactions test (laanwj) -- #11946 `8049241` Remove unused variable (firstAddrnServices) (practicalswift) -- #11867 `18a1bba` Improve node network test (jnewbery) -- #11883 `cfd99dd` Add configuration file/argument testing (MeshCollider) -- #11879 `d4e404a` Remove redundant univalue_tests.cpp (jnewbery) -- #11748 `20166f8` Adding unit tests for GetDifficulty in blockchain.cpp (merehap) -- #11517 `5180a86` Improve benchmark precision (martinus) -- #11291 `a332a7d` Fix string concatenation to os.path.join and add exception case (dongsam) -- #11965 `d38d1a3` Note on test order in test_runner (MarcoFalke) -- #11997 `ddff344` util_tests.cpp: actually check ignored args (ajtowns) -- #12079 `45173fa` Improve prioritisetransaction test coverage (promag) -- #12150 `92a810d` Fix ListCoins test failure due to unset g_address_type, g_change_type (ryanofsky) -- #12133 `1d2eaba` Fix rare failure in p2p-segwit.py (sdaftuar) -- #12082 `0910cbe` Adding test case for SINGLE|ANYONECANPAY hash type in tx_valid.json (Christewart) -- #11796 `4db16ec` Functional test naming convention (ajtowns) -- #12227 `b987ca4` test_runner: Readable output if create_cache.py fails (ryanofsky) -- #12089 `126000b` Make TestNodeCLI command optional in send_cli (MarcoFalke) -- #11774 `6970b30` Rename functional tests (ajtowns) -- #12264 `598a9c4` Fix versionbits warning test (jnewbery) -- #12217 `1213be6` Add missing syncwithvalidationinterfacequeue to tests (MarcoFalke) -- #12292 `eebe458` Fix names of excluded extended tests for travis (ajtowns) -- #11789 `60d739e` [travis-ci] Combine logs on failure (jnewbery) -- #11838 `3e50024` Add getrawtransaction in_active_chain=False test (MarcoFalke) -- #12206 `898f560` Sync with validationinterface queue in sync_mempools (MarcoFalke) -- #12424 `ff44101` Fix rescan test failure due to unset g_address_type, g_change_type (ryanofsky) -- #12388 `e2431d1` travis: Full clone for git subtree check (MarcoFalke) - -### Documentation -- #10680 `6366941` Fix inconsistencies and grammar in various files (MeshCollider) -- #11011 `7db65c3` Add a comment on the use of prevector in script (gmaxwell) -- #10878 `c58128f` Fix Markdown formatting issues in init.md (dongcarl) -- #11066 `9e00a62` Document the preference of nullptr over NULL or (void*)0 (practicalswift) -- #11094 `271e40a` Hash in ZMQ hash is raw bytes, not hex (runn1ng) -- #11026 `ea3ac59` Bugfix: Use testnet RequireStandard for -acceptnonstdtxn default (luke-jr) -- #11058 `4b65fa5` Comments: More comments on functions/globals in standard.h (jimpo) -- #11112 `3f726c9` [developer-notes] By default, declare single-argument constructors "explicit" (practicalswift) -- #11155 `a084767` Trivial: Documentation fixes for CVectorWriter ctors (danra) -- #11136 `108222b` Docs: Add python3 to list of dependencies on some platforms (danra) -- #11216 `81f8c03` Update hmac_sha256.h (utsavgupta) -- #11236 `ba05971` Add note on translations to CONTRIBUTING.md (MeshCollider) -- #11173 `4eb1f39` RPC: Fix currency unit string in the help text (AkioNak) -- #11135 `21e2f2f` Update developer notes with RPC response guidelines (promag) -- #11219 `bcc8a62` explain how to recompile a modified unit test (Sjors) -- #10779 `f656147` Create dependencies.md (flack) -- #10682 `2a56baf` Move the AreInputsStandard documentation next to its implementation (esneider) -- #11276 `ee50c9e` Update CONTRIBUTING.md to reduce unnecessary review workload (jonasschnelli) -- #11264 `b148803` Fix broken Markdown table in dependencies.md (practicalswift) -- #10691 `ce82985` Properly comment about shutdown process in init.cpp file (wraith7) -- #11330 `ae233c4` Fix comments for DEFAULT_WHITELIST[FORCE]RELAY (danra) -- #11340 `d6d2c85` Fix validation comments (danra) -- #11305 `2847480` Update release notes and manpages for 0.16 (MarcoFalke) -- #11132 `551d7bf` Document assumptions that are being made to avoid NULL pointer dereferences (practicalswift) -- #11390 `12ed800` Document scripted-diff (jnewbery) -- #11392 `a3b4c59` Fix stale link in gitian-building.md (shooterman) -- #11401 `4202273` Move gitian building to external repo (MarcoFalke) -- #11414 `bbc901d` Remove partial gitian build instructions from descriptors dir (fanquake) -- #11571 `c95832d` Fixed a couple small grammatical errors (BitsInMyBlood) -- #11624 `f9b74ef` Change formatting for sequence of steps (vivganes) -- #11597 `6f01dcf` Fix error messages in CFeeBumper (kallewoof) -- #11438 `7fbf3c6` Updated Windows build doc for WSL/Xenial workaround (sipsorcery) -- #11663 `41aa9c4` Add getreceivedbyaddress release notes (MarcoFalke) -- #11533 `cbb54e7` Update WSL installation notes for Fall Creators update (Thoragh) -- #11680 `4db82b7` Add instructions for lcov report generation (jamesob) -- #11686 `54aedc0` Make ISSUE_TEMPLATE a bit shorter, mention hardware tests (TheBlueMatt) -- #11704 `ea68190` Windows build doc update (sipsorcery) -- #11706 `5197100` Make default issue text all comments to make issues more readable (TheBlueMatt) -- #11140 `1429132` Improve #endif comments (danra) -- #11729 `7a43fbb` links to code style guides (Sjors) -- #11793 `8879d50` Bump OS X version to 10.13 (Varunram) -- #11783 `16fff80` Fix shutdown in case of errors during initialization (laanwj) -- #11804 `00d25e9` Fixed outdated link with archive.is (TimothyShimmin) -- #11960 `4307062` Fix link to installation script (laudaa) -- #12027 `63a4dc1` Remove boost --c++ flag from osx build instructions (fernandezpablo85) -- #12062 `5961b23` Increment MIT Licence copyright header year on files modified in 2017 (akx20000a) -- #12063 `36a5a44` Update license year range to 2018 (akx20000a) -- #12093 `5691028` Fix incorrect Markdown link (practicalswift) -- #12143 `b0d626d` Fix link for BIP159 pull request (azuchi) -- #12112 `3c62868` Remove the ending slashes from RPC URI format (jackycjh) -- #12166 `e839d65` Clarify -walletdir usage (jnewbery) -- #12241 `b030133` Fix incorrect link in /test/ README.md (fanquake) -- #12187 `b5e4b9b` Updating benchmarkmarking.md with an updated sample output (jeffrade) -- #12294 `7cf1aea` Create NetBSD build instructions and fix compilation (fanquake) -- #12251 `cc5870a` initwallet: Do not translate highly technical addresstype help (MarcoFalke) -- #11984 `efae366` Update OpenBSD build instructions for 6.2 (cont'd) (laanwj) -- #12293 `9d9c418` Mention that HD is enabled if hdmasterkeyid is present in getwalletinfo RPC help (fanquake) -- #12077 `c04cb48` Correct `sendmany` curl example (251Labs) -- #10677 `b3ecb7b` Document that addmultisigaddress is intended for non-watchonly addresses (instagibbs) -- #12177 `cad504b` Fix address_type help text of getnewaddress and getrawchangeaddress (mruddy) - -### Refactoring -- #9964 `b6a4891` Add const to methods that do not modify the object for which it is called (practicalswift) -- #10965 `655970d` Replace deprecated throw() with noexcept specifier (C++11) (practicalswift) -- #10645 `c484ec6` Use nullptr (C++11) instead of zero (0) as the null pointer constant (practicalswift) -- #10901 `22e301a` Fix constness of ArgsManager methods (promag) -- #10969 `4afb5aa` Declare single-argument (non-converting) constructors "explicit" (practicalswift) -- #11071 `dbf6bd6` Use static_assert(…, …) (C++11) instead of assert(…) where appropriate (practicalswift) -- #10809 `c559884` optim: mark a few classes final (theuni) -- #10843 `2ab7c63` Add attribute [[noreturn]] (C++11) to functions that will not return (practicalswift) -- #11151 `7fd49d0` Fix header guards using reserved identifiers (danra) -- #11138 `2982511` Compat: Simplify bswap_16 implementation (danra) -- #11161 `745bbdc` Remove redundant explicitly defined copy ctors (danra) -- #11144 `cee4fe1` Move local include to before system includes (danra) -- #10781 `60dd9cc` Python cleanups (practicalswift) -- #10701 `50fae68` Remove the virtual specifier for functions with the override specifier (practicalswift) -- #11164 `38a54a5` Fix boost headers included as user instead of system headers (danra) -- #11143 `3aa60b7` Fix include path for bitcoin-config.h (danra) -- #8330 `59e1789` Structure Packing Optimizations in C{,Mutable}Transaction (JeremyRubin) -- #10845 `39ae413` Remove unreachable code (practicalswift) -- #11238 `6acdb1f` Add assertions before potential null deferences (MeshCollider) -- #11259 `089b742` Remove duplicate destination decoding (promag) -- #11232 `2f0d3e6` Ensure that data types are consistent (jjz) -- #10793 `efb4383` Changing &var[0] to var.data() (MeshCollider) -- #11196 `e278f86` Switch memory_cleanse implementation to BoringSSL's to ensure memory clearing even with -lto (maaku) -- #10888 `9821274` range-based loops and const qualifications in net.cpp (benma) -- #11351 `6c4fecf` Refactor: Modernize disallowed copy constructors/assignment (danra) -- #11385 `94c9015` Remove some unused functions and methods (sipa) -- #11301 `8776787` add m_added_nodes to connman options (benma) -- #11432 `058c0f9` Remove unused fTry from push_lock (promag) -- #11107 `e93fff1` Fix races in AppInitMain and others with lock and atomic bools (MeshCollider) -- #9572 `17f2ace` Skip witness sighash cache for non-segwit transactions (jl2012) -- #10961 `da0478e` Improve readability of DecodeBase58Check(...) (practicalswift) -- #11133 `a865b38` Document assumptions that are being made to avoid division by zero (practicalswift) -- #11073 `3bb77eb` Remove dead store in ecdsa_signature_parse_der_lax (BitonicEelis) -- #10898 `470c730` Fix invalid checks (NULL checks after dereference, redundant checks, etc.) (practicalswift) -- #11495 `50d72b3` [trivial] Make namespace explicit for is_regular_file (jnewbery) -- #11511 `db2f83e` [Init] Remove redundant exit(EXIT_FAILURE) instances and replace with return false (donaloconnor) -- #10866 `ef8a634` Fix -Wthread-safety-analysis warnings. Compile with -Wthread-safety-analysis if available (practicalswift) -- #11221 `0dec4cc` Refactor: simpler read (gnuser) -- #10696 `ef3758d` Remove redundant nullptr checks before deallocation (practicalswift) -- #11043 `5e9be16` Use std::unique_ptr (C++11) where possible (practicalswift) -- #11353 `05a7619` Small refactor of CCoinsViewCache::BatchWrite() (danra) -- #10749 `2adbddb` Use compile-time constants instead of unnamed enumerations (remove "enum hack") (practicalswift) -- #11603 `a933cb1` Move RPC registration out of AppInitParameterInteraction (ryanofsky) -- #11722 `26efc22` Switched sync.{cpp,h} to std threading primitives (tjps) -- #10493 `fbce66a` Use range-based for loops (C++11) when looping over map elements (practicalswift) -- #11337 `0d7e0a3` Fix code constness in CBlockIndex::GetAncestor() overloads (danra) -- #11516 `0e722e8` crypto: Add test cases covering the relevant HMAC-SHA{256,512} key length boundaries (practicalswift) -- #10574 `5d132e8` Remove includes in .cpp files for things the corresponding .h file already included (practicalswift) -- #11884 `66479c0` Remove unused include in hash.cpp (kallewoof) -- #10839 `c66adb2` Don't use pass by reference to const for cheaply-copied types (bool, char, etc.) (practicalswift) -- #10657 `79399c8` Utils: Improvements to ECDSA key-handling code (str4d) -- #12250 `e37ca2b` Make CKey::Load references const (ryanofsky) -- #12108 `9220426` Remove unused fQuit var from checkqueue.h (donaloconnor) -- #12159 `f3c7062` Use the character based overload for std::string::find (kekimusmaximus) -- #12266 `3448907` Move scheduler/threadGroup into common-init instead of per-app (TheBlueMatt) - -### Miscellaneous -- #11246 `777519b` github-merge: Coalesce git fetches (laanwj) -- #10871 `c9a4aa8` Handle getinfo in bitcoin-cli w/ -getinfo (revival of #8843) (achow101) -- #11419 `093074b` Utils: Fix launchctl not being able to stop bitcoind (OmeGak) -- #11394 `6e4e98e` Perform a weaker subtree check in Travis (sipa) -- #11702 `4122112` [build] Add a script for installing db4 (jamesob) -- #11794 `dd49862` Prefix leveldb debug logging (laanwj) -- #11781 `24df9af` Add `-debuglogfile` option (laanwj) -- #10773 `c17f11f` Shell script cleanups (practicalswift) -- #11829 `7630a1f` Test datadir specified in conf file exists (MeshCollider) -- #11836 `d44535d` Rename rpcuser.py to rpcauth.py (hkjn) -- #11831 `d48ab83` Always return true if AppInitMain got to the end (TheBlueMatt) -- #11943 `1808660` contrib: fix typo in install_db4.sh help message (laanwj) -- #12075 `c991b30` [scripts] Add missing univalue file to copyright_header.py (fanquake) -- #12197 `000ac4f` Log debug build status and warn when running benchmarks (laanwj) -- #10672 `6ab0e4c` Avoid division by zero in the case of a corrupt estimates file (practicalswift) -- #11273 `cdd6bbf` Ignore old format estimation file (Xekyo) -- #11951 `1fb34e0` Remove dead feeest-file read code for old versions (TheBlueMatt) -- #11421 `9ccafb1` Merge current secp256k1 subtree (MarcoFalke) -- #11573 `2631d55` [Util] Update tinyformat.h (fanquake) -- #10529 `331352f` Improve bitcoind systemd service file (Flowdalic) -- #11620 `70fec9e` [build] .gitignore: add background.tiff (Sjors) -- #11558 `68e021e` Minimal code changes to allow msvc compilation (sipsorcery) -- #11284 `10bee0d` Fix invalid memory access in CScript::operator+= (guidovranken, ajtowns) -- #10939 `a1f7f18` [init] Check non-emptiness of -blocknotify command prior to executing (practicalswift) -- #11467 `937613d` Fix typos. Use nullptr instead of NULL (practicalswift) -- #11834 `5bea05b` [verify-commits] Fix gpg.sh's echoing for commits with '\n' (TheBlueMatt) -- #11830 `a13e443` rpcuser.py: Use 'python' not 'python2' (hkjn) -- #12194 `7abb0f0` Add change type option to fundrawtransaction (promag) -- #12269 `2ae7cf8` Update defaultAssumeValid to block 506067 (gmaxwell) -- #11952 `9ab9963` univalue: Bump subtree (MarcoFalke) -- #12367 `09fc859` Fix two fast-shutdown bugs (TheBlueMatt) -- #12422 `4d54e7a` util: Make LockDirectory thread-safe, consistent, and fix OpenBSD 6.2 build (laanwj) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 251 -- Aaron Clauson -- Aaron Golliver -- aaron-hanson -- Adam Langley -- Akio Nakamura -- Akira Takizawa -- Alejandro Avilés -- Alex Morcos -- Alin Rus -- Anditto Heristyo -- Andras Elso -- Andreas Schildbach -- Andrew Chow -- Anthony Towns -- azuchi -- Carl Dong -- Chris Moore -- Chris Stewart -- Christian Gentry -- Cory Fields -- Cristian Mircea Messel -- CryptAxe -- Dan Raviv -- Daniel Edgecumbe -- danra -- david60 -- Donal O'Connor -- dongsamb -- Dusty Williams -- Eelis -- esneider -- Evan Klitzke -- fanquake -- Ferdinando M. Ametrano -- fivepiece -- flack -- Florian Schmaus -- gnuser -- Gregory Maxwell -- Gregory Sanders -- Henrik Jonsson -- Jack Grigg -- Jacky C -- James Evans -- James O'Beirne -- Jan Sarenik -- Jeff Rade -- Jeremiah Buddenhagen -- Jeremy Rubin -- Jim Posen -- jjz -- Joe Harvell -- Johannes Kanig -- John Newbery -- Johnson Lau -- Jonas Nick -- Jonas Schnelli -- João Barbosa -- Jorge Timón -- Karel Bílek -- Karl-Johan Alm -- klemens -- Kyuntae Ethan Kim -- laudaa -- Lawrence Nahum -- Lucas Betschart -- Luke Dashjr -- Luke Mlsna -- MarcoFalke -- Mark Friedenbach -- Marko Bencun -- Martin Ankerl -- Matt Corallo -- mruddy -- Murch -- NicolasDorier -- Pablo Fernandez -- Paul Berg -- Pedro Branco -- Pierre Rochard -- Pieter Wuille -- practicalswift -- Randolf Richardson -- Russell Yanofsky -- Samuel Dobson -- Sean Erle Johnson -- Shooter -- Sjors Provoost -- Suhas Daftuar -- Thomas Snider -- Thoragh -- Tim Shimmin -- Tomas van der Wansem -- Utsav Gupta -- Varunram Ganesh -- Vivek Ganesan -- Werner Lemberg -- William Casarin -- Willy Ko -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.16.1.md b/doc/release-notes/release-notes-0.16.1.md deleted file mode 100644 index d99361ae1d286..0000000000000 --- a/doc/release-notes/release-notes-0.16.1.md +++ /dev/null @@ -1,145 +0,0 @@ -Bitcoin Core version 0.16.1 is now available from: - - - -This is a new minor version release, with various bugfixes -as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or newer, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0 or higher. Upgrading -directly from 0.7.x and earlier without re-downloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -Wallets created in 0.16 and later are not compatible with versions prior to 0.16 -and will not work if you try to use newly created wallets in older versions. Existing -wallets that were created with older versions are not affected by this. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -Miner block size removed ------------------------- - -The `-blockmaxsize` option for miners to limit their blocks' sizes was -deprecated in version 0.15.1, and has now been removed. Miners should use the -`-blockmaxweight` option if they want to limit the weight of their blocks' -weights. - -0.16.1 change log ------------------- - -### Policy -- #11423 `d353dd1` [Policy] Several transaction standardness rules (jl2012) - -### Mining -- #12756 `e802c22` [config] Remove blockmaxsize option (jnewbery) - -### Block and transaction handling -- #13199 `c71e535` Bugfix: ensure consistency of m_failed_blocks after reconsiderblock (sdaftuar) -- #13023 `bb79aaf` Fix some concurrency issues in ActivateBestChain() (skeees) - -### P2P protocol and network code -- #12626 `f60e84d` Limit the number of IPs addrman learns from each DNS seeder (EthanHeilman) - -### Wallet -- #13265 `5d8de76` Exit SyncMetaData if there are no transactions to sync (laanwj) -- #13030 `5ff571e` Fix zapwallettxes/multiwallet interaction. (jnewbery) - -### GUI -- #12999 `1720eb3` Show the Window when double clicking the taskbar icon (ken2812221) -- #12650 `f118a7a` Fix issue: "default port not shown correctly in settings dialog" (251Labs) -- #13251 `ea487f9` Rephrase Bech32 checkbox texts, and enable it with legacy address default (fanquake) - -### Build system -- #12474 `b0f692f` Allow depends system to support armv7l (hkjn) -- #12585 `72a3290` depends: Switch to downloading expat from GitHub (fanquake) -- #12648 `46ca8f3` test: Update trusted git root (MarcoFalke) -- #11995 `686cb86` depends: Fix Qt build with Xcode 9 (fanquake) -- #12636 `845838c` backport: #11995 Fix Qt build with Xcode 9 (fanquake) -- #12946 `e055bc0` depends: Fix Qt build with XCode 9.3 (fanquake) -- #12998 `7847b92` Default to defining endian-conversion DECLs in compat w/o config (TheBlueMatt) - -### Tests and QA -- #12447 `01f931b` Add missing signal.h header (laanwj) -- #12545 `1286f3e` Use wait_until to ensure ping goes out (Empact) -- #12804 `4bdb0ce` Fix intermittent rpc_net.py failure. (jnewbery) -- #12553 `0e98f96` Prefer wait_until over polling with time.sleep (Empact) -- #12486 `cfebd40` Round target fee to 8 decimals in assert_fee_amount (kallewoof) -- #12843 `df38b13` Test starting bitcoind with -h and -version (jnewbery) -- #12475 `41c29f6` Fix python TypeError in script.py (MarcoFalke) -- #12638 `0a76ed2` Cache only chain and wallet for regtest datadir (MarcoFalke) -- #12902 `7460945` Handle potential cookie race when starting node (sdaftuar) -- #12904 `6c26df0` Ensure bitcoind processes are cleaned up when tests end (sdaftuar) -- #13049 `9ea62a3` Backports (MarcoFalke) -- #13201 `b8aacd6` Handle disconnect_node race (sdaftuar) - -### Miscellaneous -- #12518 `a17fecf` Bump leveldb subtree (MarcoFalke) -- #12442 `f3b8d85` devtools: Exclude patches from lint-whitespace (MarcoFalke) -- #12988 `acdf433` Hold cs_main while calling UpdatedBlockTip() signal (skeees) -- #12985 `0684cf9` Windows: Avoid launching as admin when NSIS installer ends. (JeremyRand) - -### Documentation -- #12637 `60086dd` backport: #12556 fix version typo in getpeerinfo RPC call help (fanquake) -- #13184 `4087dd0` RPC Docs: `gettxout*`: clarify bestblock and unspent counts (harding) -- #13246 `6de7543` Bump to Ubuntu Bionic 18.04 in build-windows.md (ken2812221) -- #12556 `e730b82` Fix version typo in getpeerinfo RPC call help (tamasblummer) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 251 -- Ben Woosley -- Chun Kuan Lee -- David A. Harding -- e0 -- fanquake -- Henrik Jonsson -- JeremyRand -- Jesse Cohen -- John Newbery -- Johnson Lau -- Karl-Johan Alm -- Luke Dashjr -- MarcoFalke -- Matt Corallo -- Pieter Wuille -- Suhas Daftuar -- Tamas Blummer -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.16.2.md b/doc/release-notes/release-notes-0.16.2.md deleted file mode 100644 index d549748d25ebf..0000000000000 --- a/doc/release-notes/release-notes-0.16.2.md +++ /dev/null @@ -1,116 +0,0 @@ -Bitcoin Core version 0.16.2 is now available from: - - - -This is a new minor version release, with various bugfixes -as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or newer, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0 or higher. Upgrading -directly from 0.7.x and earlier without re-downloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -Wallets created in 0.16 and later are not compatible with versions prior to 0.16 -and will not work if you try to use newly created wallets in older versions. Existing -wallets that were created with older versions are not affected by this. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -0.16.2 change log ------------------- - -### Wallet -- #13622 `c04a4a5` Remove mapRequest tracking that just effects Qt display. (TheBlueMatt) -- #12905 `cfc6f74` [rpcwallet] Clamp walletpassphrase value at 100M seconds (sdaftuar) -- #13437 `ed82e71` wallet: Erase wtxOrderd wtx pointer on removeprunedfunds (MarcoFalke) - -### RPC and other APIs -- #13451 `cbd2f70` rpc: expose CBlockIndex::nTx in getblock(header) (instagibbs) -- #13507 `f7401c8` RPC: Fix parameter count check for importpubkey (kristapsk) -- #13452 `6b9dc8c` rpc: have verifytxoutproof check the number of txns in proof structure (instagibbs) -- #12837 `bf1f150` rpc: fix type mistmatch in `listreceivedbyaddress` (joemphilips) -- #12743 `657dfc5` Fix csBestBlock/cvBlockChange waiting in rpc/mining (sipa) - -### GUI -- #12432 `f78e7f6` [qt] send: Clear All also resets coin control options (Sjors) -- #12617 `21dd512` gui: Show messages as text not html (laanwj) -- #12793 `cf6feb7` qt: Avoid reseting on resetguisettigs=0 (MarcoFalke) - -### Build system -- #13544 `9fd3e00` depends: Update Qt download url (fanquake) -- #12573 `88d1a64` Fix compilation when compiler do not support `__builtin_clz*` (532479301) - -### Tests and QA -- #13061 `170b309` Make tests pass after 2020 (bmwiedemann) -- #13192 `79c4fff` [tests] Fixed intermittent failure in `p2p_sendheaders.py` (lmanners) -- #13300 `d9c5630` qa: Initialize lockstack to prevent null pointer deref (MarcoFalke) -- #13545 `e15e3a9` tests: Fix test case `streams_serializedata_xor` Remove Boost dependency. (practicalswift) -- #13304 `cbdabef` qa: Fix `wallet_listreceivedby` race (MarcoFalke) - -### Miscellaneous -- #12887 `2291774` Add newlines to end of log messages (jnewbery) -- #12859 `18b0c69` Bugfix: Include for `std::unique_ptr` (luke-jr) -- #13131 `ce8aa54` Add Windows shutdown handler (ken2812221) -- #13652 `20461fc` rpc: Fix that CWallet::AbandonTransaction would leave the grandchildren, etc. active (Empact) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 532479301 -- Ben Woosley -- Bernhard M. Wiedemann -- Chun Kuan Lee -- Cory Fields -- fanquake -- Gregory Sanders -- joemphilips -- John Newbery -- Kristaps Kaupe -- lmanners -- Luke Dashjr -- MarcoFalke -- Matt Corallo -- Pieter Wuille -- practicalswift -- Sjors Provoost -- Suhas Daftuar -- Wladimir J. van der Laan - -And to those that reported security issues: - -- Braydon Fuller -- Himanshu Mehta - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.16.3.md b/doc/release-notes/release-notes-0.16.3.md deleted file mode 100644 index 2e52d309c2324..0000000000000 --- a/doc/release-notes/release-notes-0.16.3.md +++ /dev/null @@ -1,88 +0,0 @@ -Bitcoin Core version 0.16.3 is now available from: - - - -This is a new minor version release, with various bugfixes. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -The first time you run version 0.15.0 or newer, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0 or higher. Upgrading -directly from 0.7.x and earlier without re-downloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -Wallets created in 0.16 and later are not compatible with versions prior to 0.16 -and will not work if you try to use newly created wallets in older versions. Existing -wallets that were created with older versions are not affected by this. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable changes -=============== - -Denial-of-Service vulnerability -------------------------------- - -A denial-of-service vulnerability (CVE-2018-17144) exploitable by miners has -been discovered in Bitcoin Core versions 0.14.0 up to 0.16.2. It is recommended -to upgrade any of the vulnerable versions to 0.16.3 as soon as possible. - -0.16.3 change log ------------------- - -### Consensus -- #14249 `696b936` Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar) - -### RPC and other APIs -- #13547 `212ef1f` Make `signrawtransaction*` give an error when amount is needed but missing (ajtowns) - -### Miscellaneous -- #13655 `1cdbea7` bitcoinconsensus: invalid flags error should be set to `bitcoinconsensus_err` (afk11) - -### Documentation -- #13844 `11b9dbb` correct the help output for -prune (hebasto) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Anthony Towns -- Hennadii Stepanov -- Matt Corallo -- Suhas Daftuar -- Thomas Kerin -- Wladimir J. van der Laan - -And to those that reported security issues: - -- (anonymous reporter) - diff --git a/doc/release-notes/release-notes-0.17.0.1.md b/doc/release-notes/release-notes-0.17.0.1.md deleted file mode 100644 index 92db7dac7d7e5..0000000000000 --- a/doc/release-notes/release-notes-0.17.0.1.md +++ /dev/null @@ -1,41 +0,0 @@ -Bitcoin Core version 0.17.0.1 is now available from: - - - -This release provides a minor bug fix for 0.17.0. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -Notable changes -=============== - -An issue was solved with OSX dmg generation, affecting macOS 10.12 to 10.14, -which could cause Finder to crash on install. - -There are no significant changes for other operating systems. - -0.17.0.1 change log -=================== - -### Build system -- #14416 `eb2cc84` Fix OSX dmg issue (10.12 to 10.14) (jonasschnelli) - -### Documentation -- #14509 `1b5af2c` [0.17] doc: use SegWit in getblocktemplate example (Sjors) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Jonas Schnelli -- Pieter Wuille -- Sjors Provoost -- Wladimir J. van der Laan - diff --git a/doc/release-notes/release-notes-0.17.0.md b/doc/release-notes/release-notes-0.17.0.md deleted file mode 100644 index 418d7ba5f9b9d..0000000000000 --- a/doc/release-notes/release-notes-0.17.0.md +++ /dev/null @@ -1,1105 +0,0 @@ -Bitcoin Core version 0.17.0 is now available from: - - - -This is a new major version release, including new features, various bugfixes -and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -If your node has a txindex, the txindex db will be migrated the first time you run 0.17.0 or newer, which may take up to a few hours. Your node will not be functional until this migration completes. - -The first time you run version 0.15.0 or newer, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported). - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -From 0.17.0 onwards macOS <10.10 is no longer supported. 0.17.0 is built using Qt 5.9.x, which doesn't -support versions of macOS older than 10.10. - -Known issues -============ - -- Upgrading from 0.13.0 or older currently results in memory blow-up during the roll-back of blocks to the SegWit activation point. In these cases, a full `-reindex` is necessary. - -- The GUI suffers from visual glitches in the new MacOS dark mode. This has to do with our Qt theme handling and is not a new problem in 0.17.0, but is expected to be resolved in 0.17.1. - -Notable changes -=============== - -Changed configuration options ------------------------------ - -- `-includeconf=` can be used to include additional configuration files. - Only works inside the `bitcoin.conf` file, not inside included files or from - command-line. Multiple files may be included. Can be disabled from command- - line via `-noincludeconf`. Note that multi-argument commands like - `-includeconf` will override preceding `-noincludeconf`, i.e. - ``` - noincludeconf=1 - includeconf=relative.conf - ``` - - as bitcoin.conf will still include `relative.conf`. - -GUI changes ------------ - -- Block storage can be limited under Preferences, in the Main tab. Undoing this setting requires downloading the full blockchain again. This mode is incompatible with -txindex and -rescan. - -External wallet files ---------------------- - -The `-wallet=` option now accepts full paths instead of requiring wallets -to be located in the -walletdir directory. - -Newly created wallet format ---------------------------- - -If `-wallet=` is specified with a path that does not exist, it will now -create a wallet directory at the specified location (containing a wallet.dat -data file, a db.log file, and database/log.?????????? files) instead of just -creating a data file at the path and storing log files in the parent -directory. This should make backing up wallets more straightforward than -before because the specified wallet path can just be directly archived without -having to look in the parent directory for transaction log files. - -For backwards compatibility, wallet paths that are names of existing data files -in the `-walletdir` directory will continue to be accepted and interpreted the -same as before. - -Dynamic loading and creation of wallets ---------------------------------------- - -Previously, wallets could only be loaded or created at startup, by specifying `-wallet` parameters on the command line or in the bitcoin.conf file. It is now possible to load, create and unload wallets dynamically at runtime: - -- Existing wallets can be loaded by calling the `loadwallet` RPC. The wallet can be specified as file/directory basename (which must be located in the `walletdir` directory), or as an absolute path to a file/directory. -- New wallets can be created (and loaded) by calling the `createwallet` RPC. The provided name must not match a wallet file in the `walletdir` directory or the name of a wallet that is currently loaded. -- Loaded wallets can be unloaded by calling the `unloadwallet` RPC. - -This feature is currently only available through the RPC interface. - -Coin selection --------------- - -### Partial spend avoidance - -When an address is paid multiple times the coins from those separate payments can be spent separately which hurts privacy due to linking otherwise separate addresses. A new `-avoidpartialspends` flag has been added (default=false). If enabled, the wallet will always spend existing UTXO to the same address together even if it results in higher fees. If someone were to send coins to an address after it was used, those coins will still be included in future coin selections. - -Configuration sections for testnet and regtest ----------------------------------------------- - -It is now possible for a single configuration file to set different -options for different networks. This is done by using sections or by -prefixing the option with the network, such as: - - main.uacomment=bitcoin - test.uacomment=bitcoin-testnet - regtest.uacomment=regtest - [main] - mempoolsize=300 - [test] - mempoolsize=100 - [regtest] - mempoolsize=20 - -If the following options are not in a section, they will only apply to mainnet: -`addnode=`, `connect=`, `port=`, `bind=`, `rpcport=`, `rpcbind=` and `wallet=`. -The options to choose a network (`regtest=` and `testnet=`) must be specified -outside of sections. - -'label' and 'account' APIs for wallet -------------------------------------- - -A new 'label' API has been introduced for the wallet. This is intended as a -replacement for the deprecated 'account' API. The 'account' can continue to -be used in V0.17 by starting bitcoind with the '-deprecatedrpc=accounts' -argument, and will be fully removed in V0.18. - -The label RPC methods mirror the account functionality, with the following functional differences: - -- Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI. -- Labels can be deleted by reassigning all addresses using the `setlabel` RPC method. -- There isn't support for sending transactions _from_ a label, or for determining which label a transaction was sent from. -- Labels do not have a balance. - -Here are the changes to RPC methods: - -| Deprecated Method | New Method | Notes | -| :---------------------- | :-------------------- | :-----------| -| `getaccount` | `getaddressinfo` | `getaddressinfo` returns a json object with address information instead of just the name of the account as a string. | -| `getaccountaddress` | n/a | There is no replacement for `getaccountaddress` since labels do not have an associated receive address. | -| `getaddressesbyaccount` | `getaddressesbylabel` | `getaddressesbylabel` returns a json object with the addresses as keys, instead of a list of strings. | -| `getreceivedbyaccount` | `getreceivedbylabel` | _no change in behavior_ | -| `listaccounts` | `listlabels` | `listlabels` does not return a balance or accept `minconf` and `watchonly` arguments. | -| `listreceivedbyaccount` | `listreceivedbylabel` | Both methods return new `label` fields, along with `account` fields for backward compatibility. | -| `move` | n/a | _no replacement_ | -| `sendfrom` | n/a | _no replacement_ | -| `setaccount` | `setlabel` | Both methods now:
  • allow assigning labels to any address, instead of raising an error if the address is not receiving address.
  • delete the previous label associated with an address when the final address using that label is reassigned to a different label, instead of making an implicit `getaccountaddress` call to ensure the previous label still has a receiving address. | - -| Changed Method | Notes | -| :--------------------- | :------ | -| `addmultisigaddress` | Renamed `account` named parameter to `label`. Still accepts `account` for backward compatibility if running with '-deprecatedrpc=accounts'. | -| `getnewaddress` | Renamed `account` named parameter to `label`. Still accepts `account` for backward compatibility. if running with '-deprecatedrpc=accounts' | -| `listunspent` | Returns new `label` fields. `account` field will be returned for backward compatibility if running with '-deprecatedrpc=accounts' | -| `sendmany` | The `account` named parameter has been renamed to `dummy`. If provided, the `dummy` parameter must be set to the empty string, unless running with the `-deprecatedrpc=accounts` argument (in which case functionality is unchanged). | -| `listtransactions` | The `account` named parameter has been renamed to `dummy`. If provided, the `dummy` parameter must be set to the string `*`, unless running with the `-deprecatedrpc=accounts` argument (in which case functionality is unchanged). | -| `getbalance` | `account`, `minconf` and `include_watchonly` parameters are deprecated, and can only be used if running with '-deprecatedrpc=accounts' | - -BIP 174 Partially Signed Bitcoin Transactions support ------------------------------------------------------ - -[BIP 174 PSBT](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki) is an interchange format for Bitcoin transactions that are not fully signed -yet, together with relevant metadata to help entities work towards signing it. -It is intended to simplify workflows where multiple parties need to cooperate to -produce a transaction. Examples include hardware wallets, multisig setups, and -[CoinJoin](https://bitcointalk.org/?topic=279249) transactions. - -### Overall workflow - -Overall, the construction of a fully signed Bitcoin transaction goes through the -following steps: - -- A **Creator** proposes a particular transaction to be created. He constructs - a PSBT that contains certain inputs and outputs, but no additional metadata. -- For each input, an **Updater** adds information about the UTXOs being spent by - the transaction to the PSBT. -- A potentially other Updater adds information about the scripts and public keys - involved in each of the inputs (and possibly outputs) of the PSBT. -- **Signers** inspect the transaction and its metadata to decide whether they - agree with the transaction. They can use amount information from the UTXOs - to assess the values and fees involved. If they agree, they produce a - partial signature for the inputs for which they have relevant key(s). -- A **Finalizer** is run for each input to convert the partial signatures and - possibly script information into a final `scriptSig` and/or `scriptWitness`. -- An **Extractor** produces a valid Bitcoin transaction (in network format) - from a PSBT for which all inputs are finalized. - -Generally, each of the above (excluding Creator and Extractor) will simply -add more and more data to a particular PSBT. In a naive workflow, they all have -to operate sequentially, passing the PSBT from one to the next, until the -Extractor can convert it to a real transaction. In order to permit parallel -operation, **Combiners** can be employed which merge metadata from different -PSBTs for the same unsigned transaction. - -The names above in bold are the names of the roles defined in BIP174. They're -useful in understanding the underlying steps, but in practice, software and -hardware implementations will typically implement multiple roles simultaneously. - -### RPCs - -- **`converttopsbt` (Creator)** is a utility RPC that converts an - unsigned raw transaction to PSBT format. It ignores existing signatures. -- **`createpsbt` (Creator)** is a utility RPC that takes a list of inputs and - outputs and converts them to a PSBT with no additional information. It is - equivalent to calling `createrawtransaction` followed by `converttopsbt`. -- **`walletcreatefundedpsbt` (Creator, Updater)** is a wallet RPC that creates a - PSBT with the specified inputs and outputs, adds additional inputs and change - to it to balance it out, and adds relevant metadata. In particular, for inputs - that the wallet knows about (counting towards its normal or watch-only - balance), UTXO information will be added. For outputs and inputs with UTXO - information present, key and script information will be added which the wallet - knows about. It is equivalent to running `createrawtransaction`, followed by - `fundrawtransaction`, and `converttopsbt`. -- **`walletprocesspsbt` (Updater, Signer, Finalizer)** is a wallet RPC that takes as - input a PSBT, adds UTXO, key, and script data to inputs and outputs that miss - it, and optionally signs inputs. Where possible it also finalizes the partial - signatures. -- **`finalizepsbt` (Finalizer, Extractor)** is a utility RPC that finalizes any - partial signatures, and if all inputs are finalized, converts the result to a - fully signed transaction which can be broadcast with `sendrawtransaction`. -- **`combinepsbt` (Combiner)** is a utility RPC that implements a Combiner. It - can be used at any point in the workflow to merge information added to - different versions of the same PSBT. In particular it is useful to combine the - output of multiple Updaters or Signers. -- **`decodepsbt`** is a diagnostic utility RPC which will show all information in - a PSBT in human-readable form, as well as compute its eventual fee if known. - -Upgrading non-HD wallets to HD wallets --------------------------------------- - -Since Bitcoin Core 0.13.0, creating new BIP 32 Hierarchical Deterministic wallets has been supported by Bitcoin Core but old non-HD wallets could not be upgraded to HD. Now non-HD wallets can be upgraded to HD using the `-upgradewallet` command line option. This upgrade will result in the all keys in the keypool being marked as used and a new keypool generated. **A new backup must be made when this upgrade is performed.** - -Additionally, `-upgradewallet` can be used to upgraded from a non-split HD chain (all keys generated with `m/0'/0'/i'`) to a split HD chain (receiving keys generated with `'m/0'/0'/i'` and change keys generated with `m'/0'/1'/i'`). When this upgrade occurs, all keys already in the keypool will remain in the keypool to be used until all keys from before the upgrade are exhausted. This is to avoid issues with backups and downgrades when some keys may come from the change key keypool. Users can begin using the new split HD chain keypools by using the `newkeypool` RPC to mark all keys in the keypool as used and begin using a new keypool generated from the split HD chain. - -HD Master key rotation ----------------------- - -A new RPC, `sethdseed`, has been introduced which allows users to set a new HD seed or set their own HD seed. This allows for a new HD seed to be used. **A new backup must be made when a new HD seed is set.** - -Low-level RPC changes ---------------------- - -- The new RPC `scantxoutset` can be used to scan the UTXO set for entries - that match certain output descriptors. Refer to the [output descriptors - reference documentation](/doc/descriptors.md) for more details. This call - is similar to `listunspent` but does not use a wallet, meaning that the - wallet can be disabled at compile or run time. This call is experimental, - as such, is subject to changes or removal in future releases. - -- The `createrawtransaction` RPC will now accept an array or dictionary (kept for compatibility) for the `outputs` parameter. This means the order of transaction outputs can be specified by the client. -- The `fundrawtransaction` RPC will reject the previously deprecated `reserveChangeKey` option. -- `sendmany` now shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon. -- The new RPC `testmempoolaccept` can be used to test acceptance of a transaction to the mempool without adding it. -- JSON transaction decomposition now includes a `weight` field which provides - the transaction's exact weight. This is included in REST /rest/tx/ and - /rest/block/ endpoints when in json mode. This is also included in `getblock` - (with verbosity=2), `listsinceblock`, `listtransactions`, and - `getrawtransaction` RPC commands. -- New `fees` field introduced in `getrawmempool`, `getmempoolancestors`, `getmempooldescendants` and - `getmempoolentry` when verbosity is set to `true` with sub-fields `ancestor`, `base`, `modified` - and `descendant` denominated in BTC. This new field deprecates previous fee fields, such as - `fee`, `modifiedfee`, `ancestorfee` and `descendantfee`. -- The new RPC `getzmqnotifications` returns information about active ZMQ - notifications. -- When bitcoin is not started with any `-wallet=` options, the name of - the default wallet returned by `getwalletinfo` and `listwallets` RPCs is - now the empty string `""` instead of `"wallet.dat"`. If bitcoin is started - with any `-wallet=` options, there is no change in behavior, and the - name of any wallet is just its `` string. -- Passing an empty string (`""`) as the `address_type` parameter to - `getnewaddress`, `getrawchangeaddress`, `addmultisigaddress`, - `fundrawtransaction` RPCs is now an error. Previously, this would fall back - to using the default address type. It is still possible to pass null or leave - the parameter unset to use the default address type. - -- Bare multisig outputs to our keys are no longer automatically treated as - incoming payments. As this feature was only available for multisig outputs for - which you had all private keys in your wallet, there was generally no use for - them compared to single-key schemes. Furthermore, no address format for such - outputs is defined, and wallet software can't easily send to it. These outputs - will no longer show up in `listtransactions`, `listunspent`, or contribute to - your balance, unless they are explicitly watched (using `importaddress` or - `importmulti` with hex script argument). `signrawtransaction*` also still - works for them. - -- The `getwalletinfo` RPC method now returns an `hdseedid` value, which is always the same as the incorrectly-named `hdmasterkeyid` value. `hdmasterkeyid` will be removed in V0.18. -- The `getaddressinfo` RPC method now returns an `hdseedid` value, which is always the same as the incorrectly-named `hdmasterkeyid` value. `hdmasterkeyid` will be removed in V0.18. - -- Parts of the `validateaddress` RPC method have been deprecated and moved to - `getaddressinfo`. Clients must transition to using `getaddressinfo` to access - this information before upgrading to v0.18. The following deprecated fields - have moved to `getaddressinfo` and will only be shown with - `-deprecatedrpc=validateaddress`: `ismine`, `iswatchonly`, `script`, `hex`, - `pubkeys`, `sigsrequired`, `pubkey`, `addresses`, `embedded`, `iscompressed`, - `account`, `timestamp`, `hdkeypath`, `hdmasterkeyid`. -- `signrawtransaction` is deprecated and will be fully removed in v0.18. To use - `signrawtransaction` in v0.17, restart bitcoind with - `-deprecatedrpc=signrawtransaction`. Projects should transition to using - `signrawtransactionwithkey` and `signrawtransactionwithwallet` before - upgrading to v0.18. - -Other API changes ------------------ - -- The `inactivehdmaster` property in the `dumpwallet` output has been corrected to `inactivehdseed` - -### Logging - -- The log timestamp format is now ISO 8601 (e.g. "2018-02-28T12:34:56Z"). - -- When running bitcoind with `-debug` but without `-daemon`, logging to stdout - is now the default behavior. Setting `-printtoconsole=1` no longer implicitly - disables logging to debug.log. Instead, logging to file can be explicitly disabled - by setting `-debuglogfile=0`. - -Transaction index changes -------------------------- - -The transaction index is now built separately from the main node procedure, -meaning the `-txindex` flag can be toggled without a full reindex. If bitcoind -is run with `-txindex` on a node that is already partially or fully synced -without one, the transaction index will be built in the background and become -available once caught up. When switching from running `-txindex` to running -without the flag, the transaction index database will *not* be deleted -automatically, meaning it could be turned back on at a later time without a full -resync. - -Miner block size removed ------------------------- - -The `-blockmaxsize` option for miners to limit their blocks' sizes was -deprecated in V0.15.1, and has now been removed. Miners should use the -`-blockmaxweight` option if they want to limit the weight of their blocks. - -Python Support --------------- - -Support for Python 2 has been discontinued for all test files and tools. - -0.17.0 change log -================= - -### Consensus -- #12204 `3fa24bb` Fix overly eager BIP30 bypass (morcos) - -### Policy -- #12568 `ed6ae80` Allow dustrelayfee to be set to zero (luke-jr) -- #13120 `ca2a233` Treat segwit as always active (MarcoFalke) -- #13096 `062738c` Fix `MAX_STANDARD_TX_WEIGHT` check (jl2012) - -### Mining -- #12693 `df529dc` Remove unused variable in SortForBlock (drewx2) -- #12448 `84efa9a` Interrupt block generation on shutdown request (promag) - -### Block and transaction handling -- #12225 `67447ba` Mempool cleanups (sdaftuar) -- #12356 `fd65937` Fix 'mempool min fee not met' debug output (Empact) -- #12287 `bf3353d` Optimise lock behaviour for GuessVerificationProgress() (jonasschnelli) -- #11889 `47a7666` Drop extra script variable in ProduceSignature (ryanofsky) -- #11880 `d59b8d6` Stop special-casing phashBlock handling in validation for TBV (TheBlueMatt) -- #12431 `947c25e` Only call NotifyBlockTip when chainActive changes (jamesob) -- #12653 `534b8fa` Allow to optional specify the directory for the blocks storage (jonasschnelli) -- #12172 `3b62a91` Bugfix: RPC: savemempool: Don't save until LoadMempool() is finished (jtimon) -- #12167 `88430cb` Make segwit failure due to `CLEANSTACK` violation return a `SCRIPT_ERR_CLEANSTACK` error code (maaku) -- #12561 `24133b1` Check for block corruption in ConnectBlock() (sdaftuar) -- #11617 `1b5723e` Avoid lock: Call FlushStateToDisk(…) regardless of fCheckForPruning (practicalswift) -- #11739 `0a8b7b4` Enforce `SCRIPT_VERIFY_P2SH` and `SCRIPT_VERIFY_WITNESS` from genesis (sdaftuar) -- #12885 `a49381d` Reduce implementation code inside CScript (sipa) -- #13032 `34dd1a6` Output values for "min relay fee not met" error (kristapsk) -- #13033 `a07e8ca` Build txindex in parallel with validation (jimpo) -- #13080 `66cc47b` Add compile time checking for ::mempool.cs runtime locking assertions (practicalswift) -- #13185 `08c1caf` Bugfix: the end of a reorged chain is invalid when connect fails (sipa) -- #11689 `0264836` Fix missing locking in CTxMemPool::check(…) and CTxMemPool::setSanityCheck(…) (practicalswift) -- #13011 `3c2a41a` Cache witness hash in CTransaction (MarcoFalke) -- #13191 `0de7cc8` Specialized double-SHA256 with 64 byte inputs with SSE4.1 and AVX2 (sipa) -- #13243 `ea263e1` Make reusable base class for auxiliary indices (jimpo) -- #13393 `a607d23` Enable double-SHA256-for-64-byte code on 32-bit x86 (sipa) -- #13428 `caabdea` validation: check the specified number of blocks (off-by-one) (kallewoof) -- #13438 `450055b` Improve coverage of SHA256 SelfTest code (sipa) -- #13431 `954f4a9` validation: count blocks correctly for check level < 3 (kallewoof) -- #13386 `3a3eabe` SHA256 implementations based on Intel SHA Extensions (sipa) -- #11658 `9a1ad2c` During IBD, when doing pruning, prune 10% extra to avoid pruning again soon after (luke-jr) -- #13794 `8ce55df` chainparams: Update with data from assumed valid chain (MarcoFalke) -- #13527 `e7ea858` Remove promiscuousmempoolflags (MarcoFalke) - -### P2P protocol and network code -- #12342 `eaeaa2d` Extend #11583 ("Do not make it trivial for inbound peers to generate log entries") to include "version handshake timeout" message (clemtaylor) -- #12218 `9a32114` Move misbehaving logging to net logging category (laanwj) -- #10387 `5c2aff8` Eventually connect to `NODE_NETWORK_LIMITED` peers (jonasschnelli) -- #9037 `a36834f` Add test-before-evict discipline to addrman (EthanHeilman) -- #12622 `e1d6e2a` Correct addrman logging (laanwj) -- #11962 `0a01843` add seed.bitcoin.sprovoost.nl to DNS seeds (Sjors) -- #12569 `23e7fe8` Increase signal-to-noise ratio in debug.log by adjusting log level when logging failed non-manual connect():s (practicalswift) -- #12855 `c199869` Minor accumulated cleanups (tjps) -- #13153 `ef46c99` Add missing newlines to debug logging (laanwj) -- #13162 `a174702` Don't incorrectly log that REJECT messages are unknown (jnewbery) -- #13151 `7f4db9a` Serve blocks directly from disk when possible (laanwj) -- #13134 `70d3541` Add option `-enablebip61` to configure sending of BIP61 notifications (laanwj) -- #13532 `7209fec` Log warning when deprecated network name 'tor' is used (wodry) -- #13615 `172f984` Remove unused interrupt from SendMessages (fanquake) -- #13417 `1e90862` Tighten scope in `net_processing` (skeees) -- #13298 `f8d470e` Bucketing INV delays (1 bucket) for incoming connections to hide tx time (naumenkogs) -- #13672 `0d8d6be` Modified `in_addr6` cast in CConman class to work with msvc (sipsorcery) -- #11637 `c575260` Remove dead service bits code (MarcoFalke) -- #13212 `a6f00ce` Fixed a race condition when disabling the network (lmanners) -- #13656 `1211b15` Remove the boost/algorithm/string/predicate.hpp dependency (251Labs) -- #13423 `f58674a` Thread safety annotations in `net_processing` (skeees) -- #13776 `7d36237` Add missing verification of IPv6 address in CNetAddr::GetIn6Addr(…) (practicalswift) -- #13907 `48bf8ff` Introduce a maximum size for locators (gmaxwell) -- #13951 `8a9ffec` Hardcoded seeds update pre-0.17 branch (laanwj) - -### Wallet -- #12330 `2a30e67` Reduce scope of `cs_main` and `cs_wallet` locks in listtransactions (promag) -- #12298 `a1ffddb` Refactor HaveKeys to early return on false result (promag) -- #12282 `663911e` Disallow abandon of conflicted txes (MarcoFalke) -- #12333 `d405bee` Make CWallet::ListCoins atomic (promag) -- #12296 `8e6f9f4` Only fee-bump non-conflicted/non-confirmed txes (MarcoFalke) -- #11866 `6bb9c13` Do not un-mark fInMempool on wallet txn if ATMP fails (TheBlueMatt) -- #11882 `987a809` Disable default fallbackfee on mainnet (jonasschnelli) -- #9991 `4ca7c1e` listreceivedbyaddress Filter Address (NicolasDorier) -- #11687 `98bc27f` External wallet files (ryanofsky) -- #12658 `af88094` Sanitize some wallet serialization (sipa) -- #9680 `6acd870` Unify CWalletTx construction (ryanofsky) -- #10637 `e057589` Coin Selection with Murch's algorithm (achow101, Xekyo) -- #12408 `c39dd2e` Change output type globals to members (MarcoFalke) -- #12694 `9552dfb` Actually disable BnB when there are preset inputs (achow101) -- #11536 `cead84b` Rename account to label where appropriate (ryanofsky) -- #12709 `02b7e83` shuffle sendmany recipients ordering (instagibbs) -- #12699 `c948dc8` Shuffle transaction inputs before signing (instagibbs) -- #10762 `6d53663` Remove Wallet dependencies from init.cpp (jnewbery) -- #12857 `821980c` Avoid travis lint-include-guards error (ken2812221) -- #12702 `dab0d68` importprivkey: hint about importmulti (kallewoof) -- #12836 `9abdb7c` Make WalletInitInterface and DummyWalletInit private, fix nullptr deref (promag) -- #12785 `215158a` Initialize `m_last_block_processed` to nullptr (practicalswift) -- #12932 `8d651ae` Remove redundant lambda function arg in handleTransactionChanged (laanwj) -- #12749 `a84b056` feebumper: discard change outputs below discard rate (instagibbs) -- #12892 `9b3370d` introduce 'label' API for wallet (jnewbery) -- #12925 `6d3de17` Logprint the start of a rescan (jonasschnelli) -- #12888 `39439e5` debug log number of unknown wallet records on load (instagibbs) -- #12977 `434150a` Refactor `g_wallet_init_interface` to const reference (promag) -- #13017 `65d7083` Add wallets management functions (promag) -- #12953 `d1d54ae` Deprecate accounts (jnewbery) -- #12909 `476cb35` Make fee settings to be non-static members (MarcoFalke) -- #13002 `487dcbe` Do not treat bare multisig outputs as IsMine unless watched (sipa) -- #13028 `783bb64` Make vpwallets usage thread safe (promag) -- #12507 `2afdc29` Interrupt rescan on shutdown request (promag) -- #12729 `979150b` Get rid of ambiguous OutputType::NONE value (ryanofsky) -- #13079 `5778d44` Fix rescanblockchain rpc to properly report progress (Empact) -- #12560 `e03c0db` Upgrade path for non-HD wallets to HD (achow101) -- #13161 `7cc1bd3` Reset BerkeleyDB handle after connection fails (real-or-random) -- #13081 `0dec5b5` Add compile time checking for `cs_wallet` runtime locking assertions (practicalswift) -- #13127 `19a3a9e` Add Clang thread safety annotations for variables guarded by `cs_db` (practicalswift) -- #10740 `4cfe17c` `loadwallet` RPC - load wallet at runtime (jnewbery) -- #12924 `6738813` Fix hdmaster-key / seed-key confusion (scripted diff) (jnewbery) -- #13297 `d82c5d1` Fix incorrect comment for DeriveNewSeed (jnewbery) -- #13063 `6378eef` Use shared pointer to retain wallet instance (promag) -- #13142 `56fe3dc` Separate IsMine from solvability (sipa) -- #13194 `fd96d54` Remove template matching and pseudo opcodes (sipa) -- #13252 `c4cc8d9` Refactor ReserveKeyFromKeyPool for safety (Empact) -- #13058 `343d4e4` `createwallet` RPC - create new wallet at runtime (jnewbery) -- #13351 `2140f6c` Prevent segfault when sending to unspendable witness (MarcoFalke) -- #13060 `3f0f394` Remove getlabeladdress RPC (jnewbery) -- #13111 `000abbb` Add unloadwallet RPC (promag) -- #13160 `868cf43` Unlock spent outputs (promag) -- #13498 `f54f373` Fixups from account API deprecation (jnewbery) -- #13491 `61a044a` Improve handling of INVALID in IsMine (sipa) -- #13425 `028b0d9` Moving final scriptSig construction from CombineSignatures to ProduceSignature (PSBT signer logic) (achow101) -- #13564 `88a15eb` loadwallet shouldn't create new wallets (jnewbery) -- #12944 `619cd29` ScanforWalletTransactions should mark input txns as dirty (instagibbs) -- #13630 `d6b2235` Drop unused pindexRet arg to CMerkleTx::GetDepthInMainChain (Empact) -- #13566 `ad552a5` Fix get balance (jnewbery) -- #13500 `4a3e8c5` Decouple wallet version from client version (achow101) -- #13712 `aba2e66` Fix non-determinism in ParseHDKeypath(…). Avoid using an uninitialized variable in path calculation (practicalswift) -- #9662 `6b6e854` Add createwallet "disableprivatekeys" option: a sane mode for watchonly-wallets (jonasschnelli) -- #13683 `e8c7434` Introduce assertion to document the assumption that cache and cache_used are always set in tandem (practicalswift) -- #12257 `5f7575e` Use destination groups instead of coins in coin select (kallewoof) -- #13773 `89a116d` Fix accidental use of the comma operator (practicalswift) -- #13805 `c88529a` Correctly limit output group size (sdaftuar) -- #12992 `26f59f5` Add wallet name to log messages (PierreRochard) -- #13667 `b81a8a5` Fix backupwallet for multiwallets (domob1812) -- #13657 `51c693d` assert to ensure accuracy of CMerkleTx::GetBlocksToMaturity (Empact) -- #13812 `9d86aad` sum ancestors rather than taking max in output groups (kallewoof) -- #13876 `8eb9870` Catch `filesystem_error` and raise `InitError` (MarcoFalke) -- #13808 `13d51a2` shuffle coins before grouping, where warranted (kallewoof) -- #13666 `2115cba` Always create signatures with Low R values (achow101) -- #13917 `0333914` Additional safety checks in PSBT signer (sipa) -- #13968 `65e7a8b` couple of walletcreatefundedpsbt fixes (instagibbs) -- #14055 `2307a6e` fix walletcreatefundedpsbt deriv paths, add test (instagibbs) - -### RPC and other APIs -- #12336 `3843780` Remove deprecated rpc options (jnewbery) -- #12193 `5dc00f6` Consistently use UniValue.pushKV instead of push_back(Pair()) (karel-3d) (MarcoFalke) -- #12409 `0cc45ed` Reject deprecated reserveChangeKey in fundrawtransaction (MarcoFalke) -- #10583 `8a98dfe` Split part of validateaddress into getaddressinfo (achow101) -- #10579 `ffc6e48` Split signrawtransaction into wallet and non-wallet RPC command (achow101) -- #12494 `e4ffcac` Declare CMutableTransaction a struct in rawtransaction.h (Empact) -- #12503 `0e26591` createmultisig no longer takes addresses (instagibbs) -- #12083 `228b086` Improve getchaintxstats test coverage (promag) -- #12479 `cd5e438` Add child transactions to getrawmempool verbose output (conscott) -- #11872 `702e8b7` createrawtransaction: Accept sorted outputs (MarcoFalke) -- #12700 `ebdf84c` Document RPC method aliasing (ryanofsky) -- #12727 `8ee5c7b` Remove unreachable help conditions in rpcwallet.cpp (lutangar) -- #12778 `b648974` Add username and ip logging for RPC method requests (GabrielDav) -- #12717 `ac898b6` rest: Handle utxo retrieval when ignoring the mempool (romanz) -- #12787 `cd99e5b` Adjust ifdef to avoid unreachable code (practicalswift) -- #11742 `18815b4` Add testmempoolaccept (MarcoFalke) -- #12942 `fefb817` Drop redundant testing of signrawtransaction prevtxs args (Empact) -- #11200 `5f2a399` Allow for aborting rescans in the GUI (achow101) -- #12791 `3a8a4dc` Expose a transaction's weight via RPC (TheBlueMatt) -- #12436 `6e67754` Adds a functional test to validate the transaction version number in the RPC output (251Labs) -- #12240 `6f8b345` Introduced a new `fees` structure that aggregates all sub-field fee types denominated in BTC (mryandao) -- #12321 `eac067a` p2wsh and p2sh-p2wsh address in decodescript (fivepiece) -- #13090 `17266a1` Remove Safe mode (achow101, laanwj) -- #12639 `7eb7076` Reduce `cs_main` lock in listunspent (promag) -- #10267 `7b966d9` New -includeconf argument for including external configuration files (kallewoof) -- #10757 `b9551d3` Introduce getblockstats to plot things (jtimon) -- #13288 `a589f53` Remove the need to include rpc/blockchain.cpp in order to put `GetDifficulty` under test (Empact) -- #13394 `e1f8dce` cli: Ignore libevent warnings (theuni) -- #13439 `3f398d7` Avoid "duplicate" return value for invalid submitblock (TheBlueMatt) -- #13570 `a247594` Add new "getzmqnotifications" method (domob1812) -- #13072 `b25a4c2` Update createmultisig RPC to support segwit (ajtowns) -- #12196 `8fceae0` Add scantxoutset RPC method (jonasschnelli) -- #13557 `b654723` BIP 174 PSBT Serializations and RPCs (achow101) -- #13697 `f030410` Support output descriptors in scantxoutset (sipa) -- #13927 `bced8ea` Use pushKV in some new PSBT RPCs (domob1812) -- #13918 `a9c56b6` Replace median fee rate with feerate percentiles in getblockstats (marcinja) -- #13721 `9f23c16` Bugfixes for BIP 174 combining and deserialization (achow101) -- #13960 `517010e` Fix PSBT deserialization of 0-input transactions (achow101) - -### GUI -- #12416 `c997f88` Fix Windows build errors introduced in #10498 (practicalswift) -- #11733 `e782099` Remove redundant locks (practicalswift) -- #12426 `bfa3911` Initialize members in WalletModel (MarcoFalke) -- #12489 `e117cfe` Bugfix: respect user defined configuration file (-conf) in QT settings (jonasschnelli) -- #12421 `be263fa` navigate to transaction history page after send (Sjors) -- #12580 `ce56fdd` Show a transaction's virtual size in its details dialog (dooglus) -- #12501 `c8ea91a` Improved "custom fee" explanation in tooltip (randolf) -- #12616 `cff95a6` Set modal overlay hide button as default (promag) -- #12620 `8a43bdc` Remove TransactionTableModel::TxIDRole (promag) -- #12080 `56cc022` Add support to search the address book (promag) -- #12621 `2bac3e4` Avoid querying unnecessary model data when filtering transactions (promag) -- #12721 `e476826` remove "new" button during receive-mode in addressbook (jonasschnelli) -- #12723 `310dc61` Qt5: Warning users about invalid-BIP21 URI bitcoin:// (krab) -- #12610 `25cf18f` Multiwallet for the GUI (jonasschnelli) -- #12779 `f4353da` Remove unused method setupAmountWidget(…) (practicalswift) -- #12795 `68484d6` do not truncate .dat extension for wallets in gui (instagibbs) -- #12870 `1d54004` make clean removes `src/qt/moc_` files (Sjors) -- #13055 `bdda14d` Don't log to console by default (laanwj) -- #13141 `57c57df` fixes broken link on readme (marcoagner) -- #12928 `ef006d9` Initialize non-static class members that were previously neither initialized where defined nor in constructor (practicalswift) -- #13158 `81c533c` Improve sendcoinsdialog readability (marcoagner) -- #11491 `40c34a0` Add proxy icon in statusbar (mess110) -- #13264 `2a7c53b` Satoshi unit (GreatSock) -- #13097 `e545503` Support wallets loaded dynamically (promag) -- #13284 `f8be434` fix visual "overflow" of amount input (brandonrninefive) -- #13275 `a315b79` use `[default wallet]` as name for wallet with no name (jonasschnelli) -- #13273 `3fd0c23` Qt/Bugfix: fix handling default wallet with no name (jonasschnelli) -- #13341 `25d2df2` Stop translating command line options (laanwj) -- #13043 `6e249e4` OptionsDialog: add prune setting (Sjors) -- #13506 `6579d80` load wallet in UI after possible init aborts (jonasschnelli) -- #13458 `dc53f7f` Drop qt4 support (laanwj) -- #13528 `b877c39` Move BitcoinGUI initializers to class, fix initializer order warning (laanwj) -- #13536 `baf3a3a` coincontrol: Remove unused qt4 workaround (MarcoFalke) -- #13537 `10ffca7` Peer table: Visualize inbound/outbound state for every row (wodry) -- #13791 `2c14c1f` Reject dialogs if key escape is pressed (promag) - -### Build system -- #12371 `c9ca4f6` Add gitian PGP key: akx20000 (ghost) -- #11966 `f4f4f51` clientversion: Use full commit hash for commit-based version descriptions (luke-jr) -- #12417 `ae0fbf0` Upgrade `mac_alias` to 2.0.7 (droark) -- #12444 `1f055ef` gitian: Bump descriptors for (0.)17 (theuni) -- #12402 `59e032b` expat 2.2.5, ccache 3.4.1, miniupnpc 2.0.20180203 (fanquake) -- #12029 `daa84b3` Add a makefile target for Doxygen documentation (Ov3rlo4d) -- #12466 `6645eaf` Only use `D_DARWIN_C_SOURCE` when building miniupnpc on darwin (fanquake) -- #11986 `765a3eb` zeromq 4.2.3 (fanquake) -- #12373 `f13d756` Add build support for profiling (murrayn) -- #12631 `a312e20` gitian: Alphabetize signing keys & add kallewoof key (kallewoof) -- #12607 `29fad97` Remove ccache (fanquake) -- #12625 `c4219ff` biplist 1.0.3 (fanquake) -- #12666 `05042d3` configure: UniValue 1.0.4 is required for pushKV(, bool) (luke-jr) -- #12678 `6324c68` Fix a few compilation issues with Clang 7 and -Werror (vasild) -- #12692 `de6bdfd` Add configure options for various -fsanitize flags (eklitzke) -- #12901 `7e23972` Show enabled sanitizers in configure output (practicalswift) -- #12899 `3076993` macOS: Prevent Xcode 9.3 build warnings (AkioNak) -- #12715 `8fd6243` Add 'make clean' rule (hkjn) -- #13133 `a024a18` Remove python2 from configure.ac (ken2812221) -- #13005 `cb088b1` Make --enable-debug to pick better options (practicalswift) -- #13254 `092b366` Remove improper `qt/moc_*` cleaning glob from the general Makefile (Empact) -- #13306 `f5a7733` split warnings out of CXXFLAGS (theuni) -- #13385 `7c7508c` Guard against accidental introduction of new Boost dependencies (practicalswift) -- #13041 `5779dc4` Add linter checking for accidental introduction of locale dependence (practicalswift) -- #13408 `70a03c6` crypto: cleanup sha256 build (theuni) -- #13435 `cf7ca60` When build fails due to lib missing, indicate which one (Empact) -- #13445 `8eb76f3` Reset default -g -O2 flags when enable debug (ken2812221) -- #13465 `81069a7` Avoid concurrency issue when make multiple target (ken2812221) -- #13454 `45c00f8` Make sure `LC_ALL=C` is set in all shell scripts (practicalswift) -- #13480 `31145a3` Avoid copies in range-for loops and add a warning to detect them (theuni) -- #13486 `66e1a08` Move rpc/util.cpp from libbitcoin-util to libbitcoin-server (ken2812221) -- #13580 `40334c7` Detect if char equals `int8_t` (ken2812221) -- #12788 `287e4ed` Tune wildcards for LIBSECP256K1 target (kallewoof) -- #13611 `b55f0c3` bugfix: Use `__cpuid_count` for gnu C to avoid gitian build fail (ken2812221) -- #12971 `a6d14b1` Upgrade Qt to 5.9.6 (TheCharlatan) -- #13543 `6c6a300` Add RISC-V support (laanwj) -- #13177 `dcb154e` GCC-7 and glibc-2.27 back compat code (ken2812221) -- #13659 `90b1c7e` add missing leveldb defines (theuni) -- #13368 `c0f1569` Update gitian-build.sh for docker (achow101) -- #13171 `19d8ca5` Change gitian-descriptors to use bionic instead (ken2812221) -- #13604 `75bea05` Add depends 32-bit arm support for bitcoin-qt (TheCharlatan) -- #13623 `9cdb19f` Migrate gitian-build.sh to python (ken2812221) -- #13689 `8c36432` disable Werror when building zmq (greenaddress) -- #13617 `cf7f9ae` release: Require macos 10.10+ (fanquake) -- #13750 `c883653` use MacOS friendly sed syntax in qt.mk (Sjors) -- #13095 `415f2bf` update `ax_boost_chrono`/`unit_test_framework` (fanquake) -- #13732 `e8ffec6` Fix Qt's rcc determinism (Fuzzbawls) -- #13782 `8284f1d` Fix osslsigncode compile issue in gitian-build (ken2812221) -- #13696 `2ab7208` Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan) -- #13705 `b413ba0` Add format string linter (practicalswift) -- #14000 `48c8459` fix qt determinism (theuni) -- #14018 `3e4829a` Bugfix: NSIS: Exclude `Makefile*` from docs (luke-jr) -- #12906 `048ac83` Avoid `interface` keyword to fix windows gitian build (ryanofsky) -- #13314 `a9b6957` Fix FreeBSD build by including utilstrencodings.h (laanwj) - -### Tests and QA -- #12252 `8d57319` Require all tests to follow naming convention (ajtowns) -- #12295 `935eb8d` Enable flake8 warnings for all currently non-violated rules (practicalswift) -- #11858 `b4d8549` Prepare tests for Windows (MarcoFalke) -- #11771 `2dbc4a4` Change invalidtxrequest to use BitcoinTestFramework (jnewbery) -- #12200 `d09968f` Bind functional test nodes to 127.0.0.1 (Sjors) -- #12425 `26dc2da` Add some script tests (richardkiss) -- #12455 `23481fa` Fix bip68 sequence test to reflect updated rpc error message (Empact) -- #12477 `acd1e61` Plug memory leaks and stack-use-after-scope (MarcoFalke) -- #12443 `07090c5` Move common args to bitcoin.conf (MarcoFalke) -- #12570 `39dcac2` Add test cases for HexStr (`std::reverse_iterator` and corner cases) (kostaz) -- #12582 `6012f1c` Fix ListCoins test failure due to unset `g_wallet_allow_fallback_fee` (ryanofsky) -- #12516 `7f99964` Avoid unintentional unsigned integer wraparounds in tests (practicalswift) -- #12512 `955fd23` Don't test against the mempool min fee information in mempool_limit.py (Empact) -- #12600 `29088b1` Add a test for large tx output scripts with segwit input (richardkiss) -- #12627 `791c3ea` Fix some tests to work on native windows (MarcoFalke) -- #12405 `0f58d7f` travis: Full clone for git subtree check (MarcoFalke) -- #11772 `0630974` Change invalidblockrequest to use BitcoinTestFramework (jnewbery) -- #12681 `1846296` Fix ComputeTimeSmart test failure with `-DDEBUG_LOCKORDER` (ryanofsky) -- #12682 `9f04c8e` travis: Clone depth 1 unless `$check_doc` (MarcoFalke) -- #12710 `00d1680` Append scripts to new `test_list` array to fix bad assignment (jeffrade) -- #12720 `872c921` Avoiding 'file' function name from python2 (jeffrade) -- #12728 `4ba3d4f` rename TestNode to TestP2PConn in tests (jnewbery) -- #12746 `2405ce1` Remove unused argument `max_invalid` from `check_estimates(…)` (practicalswift) -- #12718 `185d484` Require exact match in `assert_start_raises_init_eror` (jnewbery, MarcoFalke) -- #12076 `6d36f59` Use node.datadir instead of tmpdir in test framework (MarcoFalke) -- #12772 `b43aba8` ci: Bump travis timeout for make check to 50m (jnewbery) -- #12806 `18606eb` Fix function names in `feature_blocksdir` (MarcoFalke) -- #12811 `0d8fc8d` Make summary row bold-red if any test failed and show failed tests at end of table (laanwj) -- #12790 `490644d` Use blockmaxweight where tests previously had blockmaxsize (conscott) -- #11773 `f0f9732` Change `feature_block.py` to use BitcoinTestFramework (jnewbery) -- #12839 `40f4baf` Remove travis checkout depth (laanwj) -- #11817 `2a09a78` Change `feature_csv_activation.py` to use BitcoinTestFramework (jnewbery) -- #12284 `fa5825d` Remove assigned but never used local variables. Enable Travis checking for unused local variables (practicalswift) -- #12719 `9beded5` Add note about test suite naming convention in developer-notes.md (practicalswift) -- #12861 `c564424` Stop `feature_block.py` from blowing up memory (jnewbery) -- #12851 `648252e` travis: Run verify-commits only on cron jobs (MarcoFalke) -- #12853 `2106c4c` Match full plain text by default (MarcoFalke) -- #11818 `9a2db3b` I accidentally (deliberately) killed it (the ComparisonTestFramework) (jnewbery) -- #12766 `69310a3` Tidy up REST interface functional tests (romanz) -- #12849 `83c7533` Add logging in loops in `p2p_sendhears.py` (ccdle12) -- #12895 `d6f10b2` Add note about test suite name uniqueness requirement to developer notes (practicalswift) -- #12856 `27278df` Add Metaclass for BitcoinTestFramework (WillAyd) -- #12918 `6fc5a05` Assert on correct variable (kallewoof) -- #11878 `a04440f` Add Travis check for duplicate includes (practicalswift) -- #12917 `cf8073f` Windows fixups for functional tests (MarcoFalke) -- #12926 `dd1ca9e` Run unit tests in parallel (sipa) -- #12920 `b1fdfc1` Fix sign for expected values (kallewoof) -- #12947 `979f598` Wallet hd functional test speedup and clarification (instagibbs) -- #12993 `0d69921` Remove compatibility code not needed now when we're on Python 3 (practicalswift) -- #12996 `6a278e0` Remove redundant bytes(…) calls (practicalswift) -- #12949 `6b46288` Avoid copies of CTransaction (MarcoFalke) -- #13007 `0d12570` Fix dangling wallet pointer in vpwallets (promag) -- #13048 `cac6d11` Fix `feature_block` flakiness (jnewbery) -- #12510 `d5b2e98` Add `rpc_bind` test to default-run tests (laanwj) -- #13022 `896a9d0` Attach node index to `test_node` AssertionError and print messages (jamesob) -- #13024 `018c7e5` Add rpcauth pair that generated by rpcauth.py (ken2812221) -- #13013 `a0079d4` bench: Amend `mempool_eviction` test for witness txs (MarcoFalke) -- #13051 `e074097` Normalize executable location (MarcoFalke) -- #13056 `106d929` Make rpcauth.py testable and add unit tests (nixbox) -- #13073 `a785bc3` add rpcauth-test to `AC_CONFIG_LINKS` to fix out-of-tree make check (laanwj) -- #12830 `25ad2f7` Clarify address book error messages, add tests (jamesob) -- #13082 `24106a8` don't test against min relay fee information in `mining_prioritisetransaction.py` (kristapsk) -- #13003 `8d045a0` Add test for orphan handling (MarcoFalke) -- #13105 `9e9b48d` Add --failfast option to functional test runner (jamesob) -- #13130 `3186ad4` Fix race in `rpc_deprecated.py` (jnewbery) -- #13136 `baf6b4e` Fix flake8 warnings in several wallet functional tests (jnewbery) -- #13094 `bf9b03d` Add test for 64-bit Windows PE, modify 32-bit test results (ken2812221) -- #13183 `9458b05` travis: New travis job for `check_docs` steps (glaksmono) -- #12265 `1834d4d` fundrawtransaction: lock watch-only shared address (kallewoof) -- #13188 `4a50ec0` Remove unused option --srcdir (MarcoFalke) -- #12755 `612ba35` Better stderr testing (jnewbery) -- #13198 `196c5a9` Avoid printing to console during cache creation (sdaftuar) -- #13075 `cb9bbf7` Remove 'account' API from wallet functional tests (jnewbery) -- #13221 `ffa86af` travis: Rename the build stage `check_doc` to `lint` (practicalswift) -- #13205 `3cbd25f` Remove spurious error log in `p2p_segwit.py` (jnewbery) -- #13291 `536120e` Don't include torcontrol.cpp into the test file (Empact) -- #13281 `2ac6315` Move linters to test/lint, add readme (MarcoFalke) -- #13215 `f8a29ca` travis: Build tests on ubuntu 18.04 with docker (ken2812221) -- #13349 `24f7011` bench: Don't return a bool from main (laanwj) -- #13347 `87a9d03` travis: Skip cache for lint stage (MarcoFalke) -- #13355 `0b1c0c4` Fix "gmake check" under OpenBSD 6.3 (probably `*BSD`): Avoid using GNU grep specific regexp handling (practicalswift) -- #13353 `d4f6dac` Fixup setting of PATH env var (MarcoFalke) -- #13352 `e24bf1c` Avoid checking reject code for now (MarcoFalke) -- #13383 `2722a1f` bench: Use non-throwing parsedouble(…) instead of throwing boost::lexical_cast(…) (practicalswift) -- #13367 `264efdc` Increase includeconf test coverage (MarcoFalke) -- #13404 `3d3d8ae` speed up of `tx_validationcache_tests` by reusing of CTransaction (lucash-dev) -- #13421 `531a033` Remove `portseed_offset` from test runner (MarcoFalke) -- #13440 `5315660` Log as utf-8 (MarcoFalke) -- #13066 `fa4b906` Migrate verify-commits script to python, run in travis (ken2812221) -- #13447 `4b1edd3` travis: Increase `travis_wait` time while verifying commits (ken2812221) -- #13350 `f532d52` Add logging to provide anchor points when debugging p2p_sendheaders (lmanners) -- #13406 `4382f19` travis: Change mac goal to all deploy (ken2812221) -- #13457 `b222138` Drop variadic macro (MarcoFalke) -- #13512 `3a45493` mininode: Expose connection state through `is_connected` (MarcoFalke) -- #13496 `9ab4c2a` Harden lint-filenames.sh (wodry) -- #13219 `08516e0` bench: Add block assemble benchmark (MarcoFalke) -- #13530 `b1dc39d` bench: Add missing pow.h header (laanwj) -- #12686 `2643fa5` Add -ftrapv to CFLAGS and CXXFLAGS when --enable-debug is used. Enable -ftrapv in Travis (practicalswift) -- #12882 `d96bdd7` Make `test_bitcoin` pass under ThreadSanitzer (clang). Fix lock-order-inversion (potential deadlock) (practicalswift) -- #13535 `2328039` `wallet_basic`: Specify minimum required amount for listunspent (MarcoFalke) -- #13551 `c93c360` Fix incorrect documentation for test case `cuckoocache_hit_rate_ok` (practicalswift) -- #13563 `b330f3f` bench: Simplify coinselection (promag) -- #13517 `a6ed99a` Remove need to handle the network thread in tests (MarcoFalke) -- #13522 `686e97a` Fix `p2p_sendheaders` race (jnewbery) -- #13467 `3dc2dcf` Make `p2p_segwit` easier to debug (jnewbery) -- #13598 `0212187` bench: Fix incorrect behaviour in prevector.cpp (AkioNak) -- #13565 `b05ded1` Fix AreInputsStandard test to reference the proper scriptPubKey (Empact) -- #13145 `d3dae3d` Use common getPath method to create temp directory in tests (winder) -- #13645 `2ea7eb6` skip `rpc_zmq` functional test as necessary (jamesob) -- #13626 `8f1106d` Fix some TODOs in `p2p_segwit` (MarcoFalke) -- #13138 `8803c91` Remove accounts from `wallet_importprunedfunds.py` (jnewbery) -- #13663 `cbc9b50` Avoid read/write to default datadir (MarcoFalke) -- #13682 `f8a32a3` bench: Remove unused variable (practicalswift) -- #13638 `6fcdb5e` Use `MAX_SCRIPT_ELEMENT_SIZE` from script.py (domob1812) -- #13687 `9d26b69` travis: Check that ~/.bitcoin is never created (MarcoFalke) -- #13715 `e1260a7` fixes mininode's P2PConnection sending messages on closing transport (marcoagner) -- #13729 `aa9429a` travis: Avoid unnecessarily setting env variables on the lint build (Empact) -- #13747 `ab28b5b` Skip P2PConnection's `is_closing()` check when not available (domob1812) -- #13650 `7a9bca6` travis: Don't store debug info if --enable-debug is set (ken2812221) -- #13711 `f98d1e0` bench: Add benchmark for unserialize prevector (AkioNak) -- #13771 `365384f` travis: Retry to fetch docker image (MarcoFalke) -- #13806 `4d550ff` Fix `bench/block_assemble` assert failure (jamesob) -- #13779 `d25079a` travis: Improve readability of travis.yml and log outputs (scravy) -- #13822 `0fb9c87` bench: Make coinselection output groups pass eligibility filter (achow101) -- #13247 `e83d82a` Add tests to SingleThreadedSchedulerClient() and document the memory model (skeees) -- #13811 `660abc1` travis: Run `bench_bitcoin` once (MarcoFalke) -- #13837 `990e182` Extract `rpc_timewait` as test param (MarcoFalke) -- #13851 `9c4324d` fix locale for lint-shell (scravy) -- #13823 `489b51b` quote path in authproxy for external multiwallets (MarcoFalke) -- #13849 `2b67354` travis: Use only travis jobs: instead of mix of jobs+matrix (scravy) -- #13859 `2384323` Add emojis to `test_runner` path and wallet filename (MarcoFalke) -- #13916 `8ac7125` `wait_for_verack` by default (MarcoFalke) -- #13669 `f66e1c7` Cleanup `create_transaction` implementations (conscott) -- #13924 `09ada21` Simplify comparison in `rpc_blockchain.py` (domob1812) -- #13913 `a08533c` Remove redundant checkmempool/checkblockindex `extra_args` (MarcoFalke) -- #13915 `a04888a` Add test for max number of entries in locator (MarcoFalke) -- #13867 `1b04b55` Make extended tests pass on native Windows (MarcoFalke) -- #13944 `0df7a6c` Port usage of deprecated optparse module to argparse module (Kvaciral) -- #13928 `b8eb0df` blocktools enforce named args for amount (MarcoFalke) -- #13054 `bffb35f` Enable automatic detection of undefined names in Python tests scripts. Remove wildcard imports (practicalswift) -- #14069 `cf3d7f9` Use assert not `BOOST_CHECK_*` from multithreaded tests (skeees) -- #14071 `fab0fbe` Stop txindex thread before calling destructor (MarcoFalke) - -### Miscellaneous -- #11909 `8897135` contrib: Replace developer keys with list of pgp fingerprints (MarcoFalke) -- #12394 `fe53d5f` gitian-builder.sh: fix --setup doc, since lxc is default (Sjors) -- #12468 `294a766` Add missing newline in init.cpp log message (Aesti) -- #12308 `dcfe218` contrib: Add support for out-of-tree builds in gen-manpages.sh (laanwj) -- #12451 `aae64a2` Bump leveldb subtree (MarcoFalke) -- #12527 `d77b4a7` gitian-build.sh: fix signProg being recognized as two parameters (ken2812221) -- #12588 `d74b01d` utils: Remove deprecated pyzmq call from python zmq example (kosciej) -- #10271 `bc67982` Use `std::thread::hardware_concurrency`, instead of Boost, to determine available cores (fanquake) -- #12097 `14475e2` scripts: Lint-whitespace: use perl instead of grep -p (Sjors) -- #12098 `17c44b2` scripts: Lint-whitespace: add param to check last n commits (Sjors) -- #11900 `842f61a` script: Simplify checkminimalpush checks, add safety assert (instagibbs) -- #12567 `bb98aec` util: Print timestamp strings in logs using iso 8601 formatting (practicalswift) -- #12572 `d8d9162` script: Lint-whitespace: find errors more easily (AkioNak) -- #10694 `ae5bcc7` Remove redundant code in MutateTxSign(CMutableTransaction&, const std::string&) (practicalswift) -- #12659 `3d16f58` Improve Fatal LevelDB Log Messages (eklitzke) -- #12643 `0f0229d` util: Remove unused `sync_chain` (MarcoFalke) -- #12102 `7fb8fb4` Apply hardening measures in bitcoind systemd service file (Flowdalic) -- #12652 `55f490a` bitcoin-cli: Provide a better error message when bitcoind is not running (practicalswift) -- #12630 `c290508` Provide useful error message if datadir is not writable (murrayn) -- #11881 `624bee9` Remove Python2 support (jnewbery) -- #12821 `082e26c` contrib: Remove unused import string (MarcoFalke) -- #12829 `252c1b0` Python3 fixup (jnewbery) -- #12822 `ff48f62` Revert 7deba93bdc76616011a9f493cbc203d60084416f and fix expired-key-sigs properly (TheBlueMatt) -- #12820 `5e53b80` contrib: Fix check-doc script regexes (MarcoFalke) -- #12713 `4490871` Track negated options in the option parser (eklitzke) -- #12708 `b2e5fe8` Make verify-commits.sh test that merges are clean (sipa) -- #12891 `3190785` logging: Add lint-logs.sh to check for newline termination (jnewbery) -- #12923 `a7cbe38` util: Pass `pthread_self()` to `pthread_setschedparam` instead of 0 (laanwj) -- #12871 `fb17fae` Add shell script linting: Check for shellcheck warnings in shell scripts (practicalswift) -- #12970 `5df84de` logging: Bypass timestamp formatting when not logging (theuni) -- #12987 `fe8fa22` tests/tools: Enable additional Python flake8 rules for automatic linting via Travis (practicalswift) -- #12972 `0782508` Add python3 script shebang lint (ken2812221) -- #13004 `58bbc55` Print to console by default when not run with -daemon (practicalswift) -- #13039 `8b4081a` Add logging and error handling for file syncing (laanwj) -- #13020 `4741ca5` Consistently log CValidationState on call failure (Empact) -- #13031 `826acc9` Fix for utiltime to compile with msvc (sipsorcery) -- #13119 `81743b5` Remove script to clean up datadirs (MarcoFalke) -- #12954 `5a66642` util: Refactor logging code into a global object (jimpo) -- #12769 `35eb9d6` Add systemd service to bitcoind in debian package (ghost) -- #13146 `0bc980b` rpcauth: Make it possible to provide a custom password (laanwj) -- #13148 `b62b437` logging: Fix potential use-after-free in logprintstr(…) (practicalswift) -- #13214 `0612d96` Enable Travis checking for two Python linting rules we are currently not violating (practicalswift) -- #13197 `6826989` util: Warn about ignored recursive -includeconf calls (kallewoof) -- #13176 `d9ebb63` Improve CRollingBloomFilter performance: replace modulus with FastMod (martinus) -- #13228 `d792e47` Add script to detect circular dependencies between source modules (sipa) -- #13320 `e08c130` Ensure gitian-build.sh uses bash (jhfrontz) -- #13301 `e4082d5` lint: Add linter to error on `#include <*.cpp>` (Empact) -- #13374 `56f6936` utils and libraries: checking for bitcoin address in translations (kaplanmaxe) -- #13230 `7c32b41` Simplify include analysis by enforcing the developer guide's include syntax (practicalswift) -- #13450 `32bf4c6` Add linter: Enforce the source code file naming convention described in the developer notes (practicalswift) -- #13479 `fa2ea37` contrib: Fix cve-2018-12356 by hardening the regex (loganaden) -- #13448 `a90ca40` Add linter: Make sure we explicitly open all text files using UTF-8 encoding in Python (practicalswift) -- #13494 `d67eff8` Follow-up to #13454: Fix broken build by exporting `LC_ALL=C` (practicalswift) -- #13510 `03f3925` Scripts and tools: Obsolete #!/bin/bash shebang (DesWurstes) -- #13577 `c9eb8d1` logging: Avoid nstart may be used uninitialized in appinitmain warning (mruddy) -- #13603 `453ae5e` bitcoin-tx: Stricter check for valid integers (domob1812) -- #13118 `c05c93c` RPCAuth Detection in Logs (Linrono) -- #13647 `4027ec1` Scripts and tools: Fix `BIND_NOW` check in security-check.py (conradoplg) -- #13692 `f5d166a` contrib: Clone core repo in gitian-build (MarcoFalke) -- #13699 `4c6d1b9` contrib: Correct version check (kallewoof) -- #13695 `dcc0cff` lint: Add linter for circular dependencies (Empact) -- #13733 `0d1ebf4` utils: Refactor argsmanager a little (AtsukiTak) -- #13714 `29b4ee6` contrib: Add lxc network setup for bionic host (ken2812221) -- #13764 `f8685f4` contrib: Fix test-security-check fail in ubuntu 18.04 (ken2812221) -- #13809 `77168f7` contrib: Remove debian and rpm subfolder (MarcoFalke) -- #13799 `230652c` Ignore unknown config file options; warn instead of error (sipa) -- #13894 `df9f712` shutdown: Stop threads before resetting ptrs (MarcoFalke) -- #13925 `71dec5c` Merge leveldb subtree (MarcoFalke) -- #13939 `ef86f26` lint: Make format string linter understand basic template parameter syntax (practicalswift) -- #14105 `eb202ea` util: Report parse errors in configuration file (laanwj) -- #12604 `9903537` Add DynamicMemoryUsage() to CDBWrapper to estimate LevelDB memory use (eklitzke) -- #12495 `047865e` Increase LevelDB `max_open_files` (eklitzke) -- #12784 `e80716d` Fix bug in memory usage calculation (unintended integer division) (practicalswift) -- #12618 `becd8dd` Set `SCHED_BATCH` priority on the loadblk thread (eklitzke) -- #12854 `5ca1509` Add P2P, Network, and Qt categories to the desktop icon (luke-jr) -- #11862 `4366f61` Network specific conf sections (ajtowns) -- #13441 `4a7e64f` Prevent shared conf files from failing with different available options in different binaries (achow101) -- #13471 `5eca4e8` For AVX2 code, also check for AVX, XSAVE, and OS support (sipa) -- #13503 `c655b2c` Document FreeBSD quirk. Fix FreeBSD build: Use std::min(…) to allow for compilation under certain FreeBSD versions (practicalswift) -- #13725 `07ce278` Fix bitcoin-cli --version (Empact) - -### Documentation -- #12306 `216f9a4` Improvements to UNIX documentation (axvr) -- #12309 `895fbd7` Explain how to update chainTxData in release process (laanwj) -- #12317 `85123be` Document method for reviewers to verify chainTxData (jnewbery) -- #12331 `d32528e` Properly alphabetize output of CLI --help option (murrayn) -- #12322 `c345148` Remove step making cloned repository world-writable for Windows build (murrayn) -- #12354 `b264528` add gpg key for fivepiece (fivepiece) -- #11761 `89005dd` initial QT documentation (Sjors) -- #12232 `fdc2188` Improve "Turn Windows Features On or Off" step (MCFX2) -- #12487 `4528f74` init: Remove translation for `-blockmaxsize` option help (laanwj) -- #12546 `a4a5fc7` Minor improvements to Compatibility Notes (randolf) -- #12434 `21e2670` dev-notes: Members should be initialized (MarcoFalke) -- #12452 `71f56da` clarified systemd installation instructions in init.md for Ubuntu users (DaveFromBinary) -- #12615 `1f93491` allow for SIGNER containing spaces (ken2812221) -- #12603 `85424d7` PeerLogicValidation interface (jamesob) -- #12581 `12ac2f0` Mention configure without wallet in FreeBSD instructions (dbolser) -- #12619 `8a709fb` Give hint about gitian not able to download (kallewoof) -- #12668 `de2fcaa` do update before fetching packages in WSL build guide (nvercamm) -- #12586 `e7721e6` Update osx brew install instruction (fanquake) -- #12760 `7466a26` Improve documentation on standard communication channels (jimpo) -- #12797 `0415b1e` init: Fix help message for checkblockindex (MarcoFalke) -- #12800 `2d97611` Add note about our preference for scoped enumerations ("enum class") (practicalswift) -- #12798 `174d016` Refer to witness reserved value as spec. in the BIP (MarcoFalke) -- #12759 `d3908e2` Improve formatting of developer notes (eklitzke) -- #12877 `2b54155` Use bitcoind in Tor documentation (knoxcard) -- #12896 `b15485e` Fix conflicting statements about initialization in developer notes (practicalswift) -- #12850 `319991d` add qrencode to brew install instructions (buddilla) -- #12007 `cd8e45b` Clarify the meaning of fee delta not being a fee rate in prioritisetransaction RPC (honzik666) -- #12927 `06ead15` fixed link, replaced QT with Qt (trulex) -- #12852 `ebd786b` devtools: Setup ots git integration (MarcoFalke) -- #12933 `3cf76c2` Refine header include policy (MarcoFalke) -- #12951 `6df0c6c` Fix comment in FindForkInGlobalIndex (jamesob) -- #12982 `a63b4e3` Fix inconsistent namespace formatting guidelines (ryanofsky) -- #13026 `9b3a67e` Fix include comment in src/interfaces/wallet.h (promag) -- #13012 `d1e3c5e` Add comments for chainparams.h, validation.cpp (jamesob) -- #13064 `569e381` List support for BIP173 in bips.md (sipa) -- #12997 `646b7f6` build-windows: Switch to Artful, since Zesty is EOL (MarcoFalke) -- #12384 `c5f7efe` Add version footnote to tor.md (Willtech) -- #13165 `627c376` Mention good first issue list in CONTRIBUTING.md (fanquake) -- #13295 `fb77310` Update OpenBSD build instructions for OpenBSD 6.3 (practicalswift) -- #13340 `3a8e3f4` remove leftover check-doc documentation (fanquake) -- #13346 `60f0358` update bitcoin-dot-org links in release-process.md (fanquake) -- #13372 `f014933` split FreeBSD build instructions out of build-unix.md (steverusso) -- #13366 `861de3b` Rename “OS X” to the newer “macOS” convention (giulio92) -- #13369 `f8bcef3` update transifex doc link (mess110) -- #13312 `b22115d` Add a note about the source code filename naming convention (practicalswift) -- #13460 `1939536` Remove note to install all boost dev packages (MarcoFalke) -- #13476 `9501938` Fix incorrect shell quoting in FreeBSD build instructions (murrayn) -- #13402 `43fa355` Document validationinterace callback blocking deadlock potential (TheBlueMatt) -- #13488 `d6cf4bd` Improve readability of "Squashing commits" (wodry) -- #13531 `ee02deb` Clarify that mempool txiter is `const_iterator` (MarcoFalke) -- #13418 `01f9098` More precise explanation of parameter onlynet (wodry) -- #13592 `1756cb4` Modify policy to not translate command-line help (ken2812221) -- #13588 `b77c38e` Improve doc of options addnode, connect, seednode (wodry) -- #13614 `17e9106` Update command line help for -printtoconsole and -debuglogfile (satwo, fanquake) -- #13605 `8cc048e` corrected text to reflect new(er) process of specifying fingerprints (jhfrontz) -- #13481 `b641f60` Rewrite some validation docs as lock annotations (MarcoFalke) -- #13680 `30640f8` Remove outdated comment about miner ignoring CPFP (jamesob) -- #13625 `7146672` Add release notes for -printtoconsole and -debuglogfile changes (satwo) -- #13718 `f7f574d` Specify preferred Python string formatting technique (masonicboom) -- #12764 `10b9a81` Remove field in getblocktemplate help that has never been used (conscott) -- #13742 `d2186b3` Adjust bitcoincore.org links (MarcoFalke) -- #13706 `94dd89e` Minor improvements to release-process.md (MitchellCash) -- #13775 `ef4fac0` Remove newlines from error message (practicalswift) -- #13803 `feb7dd9` add note to contributor docs about warranted PR's (kallewoof) -- #13814 `67af7ef` Add BIP174 to list of implemented BIPs (sipa) -- #13835 `c1cba35` Fix memory consistency model in comment (skeees) -- #13824 `aa30e4b` Remove outdated net comment (MarcoFalke) -- #13853 `317477a` correct versions in dependencies.md (fanquake) -- #13872 `37ab117` Reformat -help output for help2man (real-or-random) -- #13717 `8c3c402` Link to python style guidelines from developer notes (masonicboom) -- #13895 `1cd5f2c` fix GetWarnings docs to reflect behavior (Empact) -- #13911 `3e3a50a` Revert translated string change, clarify wallet log messages (PierreRochard) -- #13908 `d6faea4` upgrade rescan time warning from minutes to >1 hour (masonicboom) -- #13905 `73a09b4` fixed bitcoin-cli -help output for help2man (hebasto) -- #14100 `2936dbc` Change documentation for =0 for non-boolean options (laanwj) -- #14096 `465a583` Add reference documentation for descriptors language (sipa) -- #12757 `0c5f67b` Clarify include guard naming convention (practicalswift) -- #13844 `d3325b0` Correct the help output for `-prune` (hebasto) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 251 -- 532479301 -- Aaron Clauson -- Akio Nakamura -- Akira Takizawa -- Alex Morcos -- Alex Vear -- Alexey Ivanov -- Alin Rus -- Andrea Comand -- Andrew Chow -- Anthony Towns -- AtsukiTak -- Ben Woosley -- Bernhard M. Wiedemann -- Brandon Ruggles -- buddilla -- ccdle12 -- Chris Moore -- Chun Kuan Lee -- Clem Taylor -- Conor Scott -- Conrado Gouvea -- Cory Fields -- Cristian Mircea Messel -- ctp-tsteenholdt -- Damian Williamson -- Dan Bolser -- Daniel Kraft -- Darko Janković -- DaveFromBinary -- David A. Harding -- DesWurstes -- Dimitris Apostolou -- donaloconnor -- Douglas Roark -- DrahtBot -- Drew Rasmussen -- e0 -- Ernest Hemingway -- Ethan Heilman -- Evan Klitzke -- fanquake -- Felix Wolfsteller -- fivepiece -- Florian Schmaus -- Fuzzbawls -- Gabriel Davidian -- Giulio Lombardo -- Gleb -- Grady Laksmono -- GreatSock -- Gregory Maxwell -- Gregory Sanders -- Hennadii Stepanov -- Henrik Jonsson -- Indospace.io -- James O'Beirne -- Jan Čapek -- Jeff Frontz -- Jeff Rade -- Jeremy Rubin -- JeremyRand -- Jesse Cohen -- Jim Posen -- joemphilips -- John Bampton -- John Newbery -- johnlow95 -- Johnson Lau -- Jonas Nick -- Jonas Schnelli -- João Barbosa -- Jorge Timón -- Josh Hartshorn -- Julian Fleischer -- kallewoof -- Karel Bilek -- Karl-Johan Alm -- Ken Lee -- Kevin Pan -- Kosta Zertsekel -- Kristaps Kaupe -- Kvaciral -- Lawrence Nahum -- Linrono -- lmanners -- Loganaden Velvindron -- Lowell Manners -- lucash.dev@gmail.com -- Luke Dashjr -- lutangar -- Marcin Jachymiak -- marcoagner -- MarcoFalke -- Mark Erhardt -- Mark Friedenbach -- Martin Ankerl -- Mason Simon -- Matt Corallo -- Matteo Sumberaz -- Max Kaplan -- MeshCollider -- Michał Zabielski -- Mitchell Cash -- mruddy -- mryandao -- murrayn -- Nick Vercammen -- Nicolas Dorier -- Nikolay Mitev -- okayplanet -- Pierre Rochard -- Pieter Wuille -- practicalswift -- Qasim Javed -- Randolf Richardson -- Richard Kiss -- Roman Zeyde -- Russell Yanofsky -- Samuel B. Atwood -- Sebastian Kung -- Sjors Provoost -- Steve Lee -- steverusso -- Suhas Daftuar -- Tamas Blummer -- TheCharlatan -- Thomas Kerin -- Thomas Snider -- Tim Ruffing -- Varunram -- Vasil Dimov -- Will Ayd -- William Robinson -- winder -- Wladimir J. van der Laan -- wodry - -And to those that reported security issues: - -- awemany (for CVE-2018-17144, previously credited as "anonymous reporter") - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.17.1.md b/doc/release-notes/release-notes-0.17.1.md deleted file mode 100644 index b1e50e03912d3..0000000000000 --- a/doc/release-notes/release-notes-0.17.1.md +++ /dev/null @@ -1,168 +0,0 @@ -Bitcoin Core version 0.17.1 is now available from: - - - -or through BitTorrent: - - magnet:?xt=urn:btih:c56c87ccfaa8e6fbccc90d549121e61efd97cb6f&dn=bitcoin-core-0.17.1&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fexplodie.org%3A6969 - -This is a new minor version release, with various bugfixes -and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -If your node has a txindex, the txindex db will be migrated the first time you run 0.17.0 or newer, which may take up to a few hours. Your node will not be functional until this migration completes. - -The first time you run version 0.15.0 or newer, your chainstate database will be converted to a -new format, which will take anywhere from a few minutes to half an hour, -depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and there is no -automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading -directly from 0.7.x and earlier without redownloading the blockchain is not supported. -However, as usual, old wallet versions are still supported. - -Downgrading warning -------------------- - -The chainstate database for this release is not compatible with previous -releases, so if you run 0.15 and then decide to switch back to any -older version, you will need to run the old release with the `-reindex-chainstate` -option to rebuild the chainstate data structures in the old format. - -If your node has pruning enabled, this will entail re-downloading and -processing the entire blockchain. - -Compatibility -============== - -Bitcoin Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported). - -Bitcoin Core should also work on most other Unix-like systems but is not -frequently tested on them. - -From 0.17.0 onwards macOS <10.10 is no longer supported. 0.17.0 is built using Qt 5.9.x, which doesn't -support versions of macOS older than 10.10. - -Notable changes -=============== - -`listtransactions` label support --------------------------------- - -The `listtransactions` RPC `account` parameter which was deprecated in 0.17.0 -and renamed to `dummy` has been un-deprecated and renamed again to `label`. - -When bitcoin is configured with the `-deprecatedrpc=accounts` setting, specifying -a label/account/dummy argument will return both outgoing and incoming -transactions. Without the `-deprecatedrpc=accounts` setting, it will only return -incoming transactions (because it used to be possible to create transactions -spending from specific accounts, but this is no longer possible with labels). - -When `-deprecatedrpc=accounts` is set, it's possible to pass the empty string "" -to list transactions that don't have any label. Without -`-deprecatedrpc=accounts`, passing the empty string is an error because returning -only non-labeled transactions is not generally useful behavior and can cause -confusion. - -0.17.1 change log -================= - -### P2P protocol and network code -- #14685 `9406502` Fix a deserialization overflow edge case (kazcw) -- #14728 `b901578` Fix uninitialized read when stringifying an addrLocal (kazcw) - -### Wallet -- #14441 `5150acc` Restore ability to list incoming transactions by label (jnewbery) -- #13546 `91fa15a` Fix use of uninitialized value `bnb_used` in CWallet::CreateTransaction(…) (practicalswift) -- #14310 `bb90695` Ensure wallet is unlocked before signing (gustavonalle) -- #14690 `5782fdc` Throw error if CPubKey is invalid during PSBT keypath serialization (instagibbs) -- #14852 `2528443` backport: [tests] Add `wallet_balance.py` (MarcoFalke) -- #14196 `3362a95` psbt: always drop the unnecessary utxo and convert non-witness utxo to witness when necessary (achow101) -- #14588 `70ee1f8` Refactor PSBT signing logic to enforce invariant and fix signing bug (gwillen) -- #14424 `89a9a9d` Stop requiring imported pubkey to sign non-PKH schemes (sipa, MeshCollider) - -### RPC and other APIs -- #14417 `fb9ad04` Fix listreceivedbyaddress not taking address as a string (etscrivner) -- #14596 `de5e48a` Bugfix: RPC: Add `address_type` named param for createmultisig (luke-jr) -- #14618 `9666dba` Make HTTP RPC debug logging more informative (practicalswift) -- #14197 `7bee414` [psbt] Convert non-witness UTXOs to witness if witness sig created (achow101) -- #14377 `a3fe125` Check that a separator is found for psbt inputs, outputs, and global map (achow101) -- #14356 `7a590d8` Fix converttopsbt permitsigdata arg, add basic test (instagibbs) -- #14453 `75b5d8c` Fix wallet unload during walletpassphrase timeout (promag) - -### GUI -- #14403 `0242b5a` Revert "Force TLS1.0+ for SSL connections" (real-or-random) -- #14593 `df5131b` Explicitly disable "Dark Mode" appearance on macOS (fanquake) - -### Build system -- #14647 `7edebed` Remove illegal spacing in darwin.mk (ch4ot1c) -- #14698 `ec71f06` Add bitcoin-tx.exe into Windows installer (ken2812221) - -### Tests and QA -- #13965 `29899ec` Fix extended functional tests fail (ken2812221) -- #14011 `9461f98` Disable wallet and address book Qt tests on macOS minimal platform (ryanofsky) -- #14180 `86fadee` Run all tests even if wallet is not compiled (MarcoFalke) -- #14122 `8bc1bad` Test `rpc_help.py` failed: Check whether ZMQ is enabled or not (Kvaciral) -- #14101 `96dc936` Use named args in validation acceptance tests (MarcoFalke) -- #14020 `24d796a` Add tests for RPC help (promag) -- #14052 `7ff32a6` Add some actual witness in `rpc_rawtransaction` (MarcoFalke) -- #14215 `b72fbab` Use correct python index slices in example test (sdaftuar) -- #14024 `06544fa` Add `TestNode::assert_debug_log` (MarcoFalke) -- #14658 `60f7a97` Add test to ensure node can generate all rpc help texts at runtime (MarcoFalke) -- #14632 `96f15e8` Fix a comment (fridokus) -- #14700 `f9db08e` Avoid race in `p2p_invalid_block` by waiting for the block request (MarcoFalke) -- #14845 `67225e2` Add `wallet_balance.py` (jnewbery) - -### Documentation -- #14161 `5f51fd6` doc/descriptors.md tweaks (ryanofsky) -- #14276 `85aacc4` Add autogen.sh in ARM Cross-compilation (walterwhite81) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- Chun Kuan Lee -- David A. Harding -- Eric Scrivner -- fanquake -- fridokus -- Glenn Willen -- Gregory Sanders -- gustavonalle -- John Newbery -- Jon Layton -- Jonas Schnelli -- João Barbosa -- Kaz Wesley -- Kvaciral -- Luke Dashjr -- MarcoFalke -- MeshCollider -- Pieter Wuille -- practicalswift -- Russell Yanofsky -- Sjors Provoost -- Suhas Daftuar -- Tim Ruffing -- Walter -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.18.0.md b/doc/release-notes/release-notes-0.18.0.md deleted file mode 100644 index 3ca7d52243067..0000000000000 --- a/doc/release-notes/release-notes-0.18.0.md +++ /dev/null @@ -1,1224 +0,0 @@ -Bitcoin Core version 0.18.0 is now available from: - - - -This is a new major version release, including new features, various bug -fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has -completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -`/Applications/Bitcoin-Qt` (on Mac) or `bitcoind`/`bitcoin-qt` (on -Linux). - -The first time you run version 0.15.0 or newer, your chainstate database -will be converted to a new format, which will take anywhere from a few -minutes to half an hour, depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and -there is no automatic upgrade code from before version 0.8 to version -0.15.0 or later. Upgrading directly from 0.7.x and earlier without -redownloading the blockchain is not supported. However, as usual, old -wallet versions are still supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not -recommended to use Bitcoin Core on unsupported systems. - -Bitcoin Core should also work on most other Unix-like systems but is not -as frequently tested on them. - -From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is -built using Qt 5.9.x, which doesn't support versions of macOS older than -10.10. Additionally, Bitcoin Core does not yet change appearance when -macOS "dark mode" is activated. - -In addition to previously-supported CPU platforms, this release's -pre-compiled distribution also provides binaries for the RISC-V -platform. - -If you are using the `systemd` unit configuration file located at -`contrib/init/bitcoind.service`, it has been changed to use -`/var/lib/bitcoind` as the data directory instead of -`~bitcoin/.bitcoin`. When switching over to the new configuration file, -please make sure that the filesystem on which `/var/lib/bitcoind` will -exist has enough space (check using `df -h /var/lib/bitcoind`), and -optionally copy over your existing data directory. See the [systemd init -file section](#systemd-init-file) for more details. - -Known issues -============ - -Wallet GUI ----------- - -For advanced users who have both (1) enabled coin control features, and -(2) are using multiple wallets loaded at the same time: The coin control -input selection dialog can erroneously retain wrong-wallet state when -switching wallets using the dropdown menu. For now, it is recommended -not to use coin control features with multiple wallets loaded. - -Notable changes -=============== - -Mining ------- - -- Calls to `getblocktemplate` will fail if the segwit rule is not - specified. Calling `getblocktemplate` without segwit specified is - almost certainly a misconfiguration since doing so results in lower - rewards for the miner. Failed calls will produce an error message - describing how to enable the segwit rule. - -Configuration option changes ----------------------------- - -- A warning is printed if an unrecognized section name is used in the - configuration file. Recognized sections are `[test]`, `[main]`, and - `[regtest]`. - -- Four new options are available for configuring the maximum number of - messages that ZMQ will queue in memory (the "high water mark") before - dropping additional messages. The default value is 1,000, the same as - was used for previous releases. See the [ZMQ - documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/zmq.md#usage) - for details. - -- The `rpcallowip` option can no longer be used to automatically listen - on all network interfaces. Instead, the `rpcbind` parameter must be - used to specify the IP addresses to listen on. Listening for RPC - commands over a public network connection is insecure and should be - disabled, so a warning is now printed if a user selects such a - configuration. If you need to expose RPC in order to use a tool like - Docker, ensure you only bind RPC to your localhost, e.g. `docker run - [...] -p 127.0.0.1:8332:8332` (this is an extra `:8332` over the - normal Docker port specification). - -- The `rpcpassword` option now causes a startup error if the password - set in the configuration file contains a hash character (#), as it's - ambiguous whether the hash character is meant for the password or as a - comment. - -- The `whitelistforcerelay` option is used to relay transactions from - whitelisted peers even when not accepted to the mempool. This option - now defaults to being off, so that changes in policy and - disconnect/ban behavior will not cause a node that is whitelisting - another to be dropped by peers. Users can still explicitly enable - this behavior with the command line option (and may want to consider - [contacting](https://bitcoincore.org/en/contact/) the Bitcoin Core - project to let us know about their use-case, as this feature could be - deprecated in the future). - -systemd init file ------------------ - -The systemd init file (`contrib/init/bitcoind.service`) has been changed -to use `/var/lib/bitcoind` as the data directory instead of -`~bitcoin/.bitcoin`. This change makes Bitcoin Core more consistent with -other services, and makes the systemd init config more consistent with -existing Upstart and OpenRC configs. - -The configuration, PID, and data directories are now completely managed -by systemd, which will take care of their creation, permissions, etc. -See [`systemd.exec(5)`](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#RuntimeDirectory=) -for more details. - -When using the provided init files under `contrib/init`, overriding the -`datadir` option in `/etc/bitcoin/bitcoin.conf` will have no effect. -This is because the command line arguments specified in the init files -take precedence over the options specified in -`/etc/bitcoin/bitcoin.conf`. - - -Documentation -------------- - -- A new short [document](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md) - about the JSON-RPC interface describes cases where the results of an - RPC might contain inconsistencies between data sourced from different - subsystems, such as wallet state and mempool state. A note is added - to the [REST interface documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md) - indicating that the same rules apply. - -- Further information is added to the [JSON-RPC - documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md) - about how to secure this interface. - -- A new [document](https://github.com/bitcoin/bitcoin/blob/master/doc/bitcoin-conf.md) - about the `bitcoin.conf` file describes how to use it to configure - Bitcoin Core. - -- A new document introduces Bitcoin Core's BIP174 [Partially-Signed - Bitcoin Transactions - (PSBT)](https://github.com/bitcoin/bitcoin/blob/master/doc/psbt.md) - interface, which is used to allow multiple programs to collaboratively - work to create, sign, and broadcast new transactions. This is useful - for offline (cold storage) wallets, multisig wallets, coinjoin - implementations, and many other cases where two or more programs need - to interact to generate a complete transaction. - -- The [output script - descriptor](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md) - documentation has been updated with information about new features in - this still-developing language for describing the output scripts that - a wallet or other program wants to receive notifications for, such as - which addresses it wants to know received payments. The language is - currently used in multiple new and updated RPCs described in these - release notes and is expected to be adapted to other RPCs and to the - underlying wallet structure. - -Build system changes --------------------- - -- A new `--disable-bip70` option may be passed to `./configure` to - prevent Bitcoin-Qt from being built with support for the BIP70 payment - protocol or from linking libssl. As the payment protocol has exposed - Bitcoin Core to libssl vulnerabilities in the past, builders who don't - need BIP70 support are encouraged to use this option to reduce their - exposure to future vulnerabilities. - -- The minimum required version of Qt (when building the GUI) has been - increased from 5.2 to 5.5.1 (the [depends - system](https://github.com/bitcoin/bitcoin/blob/master/depends/README.md) - provides 5.9.7) - -New RPCs --------- - -- `getnodeaddresses` returns peer addresses known to this node. It may - be used to find nodes to connect to without using a DNS seeder. - -- `listwalletdir` returns a list of wallets in the wallet directory - (either the default wallet directory or the directory configured by - the `-walletdir` parameter). - -- `getrpcinfo` returns runtime details of the RPC server. At the moment, - it returns an array of the currently active commands and how long - they've been running. - -- `deriveaddresses` returns one or more addresses corresponding to an - [output descriptor](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md). - -- `getdescriptorinfo` accepts a descriptor and returns information about - it, including its computed checksum. - -- `joinpsbts` merges multiple distinct PSBTs into a single PSBT. The - multiple PSBTs must have different inputs. The resulting PSBT will - contain every input and output from all of the PSBTs. Any signatures - provided in any of the PSBTs will be dropped. - -- `analyzepsbt` examines a PSBT and provides information about what - the PSBT contains and the next steps that need to be taken in order - to complete the transaction. For each input of a PSBT, `analyzepsbt` - provides information about what information is missing for that - input, including whether a UTXO needs to be provided, what pubkeys - still need to be provided, which scripts need to be provided, and - what signatures are still needed. Every input will also list which - role is needed to complete that input, and `analyzepsbt` will also - list the next role in general needed to complete the PSBT. - `analyzepsbt` will also provide the estimated fee rate and estimated - virtual size of the completed transaction if it has enough - information to do so. - -- `utxoupdatepsbt` searches the set of Unspent Transaction Outputs - (UTXOs) to find the outputs being spent by the partial transaction. - PSBTs need to have the UTXOs being spent to be provided because - the signing algorithm requires information from the UTXO being spent. - For segwit inputs, only the UTXO itself is necessary. For - non-segwit outputs, the entire previous transaction is needed so - that signers can be sure that they are signing the correct thing. - Unfortunately, because the UTXO set only contains UTXOs and not full - transactions, `utxoupdatepsbt` will only add the UTXO for segwit - inputs. - -Updated RPCs ------------- - -Note: some low-level RPC changes mainly useful for testing are described -in the Low-level Changes section below. - -- `getpeerinfo` now returns an additional `minfeefilter` field set to - the peer's BIP133 fee filter. You can use this to detect that you - have peers that are willing to accept transactions below the default - minimum relay fee. - -- The mempool RPCs, such as `getrawmempool` with `verbose=true`, now - return an additional "bip125-replaceable" value indicating whether the - transaction (or its unconfirmed ancestors) opts-in to asking nodes and - miners to replace it with a higher-feerate transaction spending any of - the same inputs. - -- `settxfee` previously silently ignored attempts to set the fee below - the allowed minimums. It now prints a warning. The special value of - "0" may still be used to request the minimum value. - -- `getaddressinfo` now provides an `ischange` field indicating whether - the wallet used the address in a change output. - -- `importmulti` has been updated to support P2WSH, P2WPKH, P2SH-P2WPKH, - and P2SH-P2WSH. Requests for P2WSH and P2SH-P2WSH accept an additional - `witnessscript` parameter. - -- `importmulti` now returns an additional `warnings` field for each - request with an array of strings explaining when fields are being - ignored or are inconsistent, if there are any. - -- `getaddressinfo` now returns an additional `solvable` boolean field - when Bitcoin Core knows enough about the address's scriptPubKey, - optional redeemScript, and optional witnessScript in order for the - wallet to be able to generate an unsigned input spending funds sent to - that address. - -- The `getaddressinfo`, `listunspent`, and `scantxoutset` RPCs now - return an additional `desc` field that contains an output descriptor - containing all key paths and signing information for the address - (except for the private key). The `desc` field is only returned for - `getaddressinfo` and `listunspent` when the address is solvable. - -- `importprivkey` will preserve previously-set labels for addresses or - public keys corresponding to the private key being imported. For - example, if you imported a watch-only address with the label "cold - wallet" in earlier releases of Bitcoin Core, subsequently importing - the private key would default to resetting the address's label to the - default empty-string label (""). In this release, the previous label - of "cold wallet" will be retained. If you optionally specify any - label besides the default when calling `importprivkey`, the new label - will be applied to the address. - -- See the [Mining](#mining) section for changes to `getblocktemplate`. - -- `getmininginfo` now omits `currentblockweight` and `currentblocktx` - when a block was never assembled via RPC on this node. - -- The `getrawtransaction` RPC & REST endpoints no longer check the - unspent UTXO set for a transaction. The remaining behaviors are as - follows: 1. If a blockhash is provided, check the corresponding block. - 2. If no blockhash is provided, check the mempool. 3. If no blockhash - is provided but txindex is enabled, also check txindex. - -- `unloadwallet` is now synchronous, meaning it will not return until - the wallet is fully unloaded. - -- `importmulti` now supports importing of addresses from descriptors. A - "desc" parameter can be provided instead of the "scriptPubKey" in a - request, as well as an optional range for ranged descriptors to - specify the start and end of the range to import. Descriptors with key - origin information imported through `importmulti` will have their key - origin information stored in the wallet for use with creating PSBTs. - More information about descriptors can be found - [here](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md). - -- `listunspent` has been modified so that it also returns - `witnessScript`, the witness script in the case of a P2WSH or - P2SH-P2WSH output. - -- `createwallet` now has an optional `blank` argument that can be used - to create a blank wallet. Blank wallets do not have any keys or HD - seed. They cannot be opened in software older than 0.18. Once a blank - wallet has a HD seed set (by using `sethdseed`) or private keys, - scripts, addresses, and other watch only things have been imported, - the wallet is no longer blank and can be opened in 0.17.x. Encrypting - a blank wallet will also set a HD seed for it. - -Deprecated or removed RPCs --------------------------- - -- `signrawtransaction` is removed after being deprecated and hidden - behind a special configuration option in version 0.17.0. - -- The 'account' API is removed after being deprecated in v0.17. The - 'label' API was introduced in v0.17 as a replacement for accounts. - See the [release notes from - v0.17](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#label-and-account-apis-for-wallet) - for a full description of the changes from the 'account' API to the - 'label' API. - -- `addwitnessaddress` is removed after being deprecated in version - 0.16.0. - -- `generate` is deprecated and will be fully removed in a subsequent - major version. This RPC is only used for testing, but its - implementation reached across multiple subsystems (wallet and mining), - so it is being deprecated to simplify the wallet-node interface. - Projects that are using `generate` for testing purposes should - transition to using the `generatetoaddress` RPC, which does not - require or use the wallet component. Calling `generatetoaddress` with - an address returned by the `getnewaddress` RPC gives the same - functionality as the old `generate` RPC. To continue using `generate` - in this version, restart bitcoind with the `-deprecatedrpc=generate` - configuration option. - -- Be reminded that parts of the `validateaddress` command have been - deprecated and moved to `getaddressinfo`. The following deprecated - fields have moved to `getaddressinfo`: `ismine`, `iswatchonly`, - `script`, `hex`, `pubkeys`, `sigsrequired`, `pubkey`, `embedded`, - `iscompressed`, `label`, `timestamp`, `hdkeypath`, `hdmasterkeyid`. - -- The `addresses` field has been removed from the `validateaddress` - and `getaddressinfo` RPC methods. This field was confusing since - it referred to public keys using their P2PKH address. Clients - should use the `embedded.address` field for P2SH or P2WSH wrapped - addresses, and `pubkeys` for inspecting multisig participants. - -REST changes ------------- - -- A new `/rest/blockhashbyheight/` endpoint is added for fetching the - hash of the block in the current best blockchain based on its height - (how many blocks it is after the Genesis Block). - -Graphical User Interface (GUI) ------------------------------- - -- A new Window menu is added alongside the existing File, Settings, and - Help menus. Several items from the other menus that opened new - windows have been moved to this new Window menu. - -- In the Send tab, the checkbox for "pay only the required fee" has been - removed. Instead, the user can simply decrease the value in the - Custom Feerate field all the way down to the node's configured minimum - relay fee. - -- In the Overview tab, the watch-only balance will be the only balance - shown if the wallet was created using the `createwallet` RPC and the - `disable_private_keys` parameter was set to true. - -- The launch-on-startup option is no longer available on macOS if - compiled with macosx min version greater than 10.11 (use - CXXFLAGS="-mmacosx-version-min=10.11" - CFLAGS="-mmacosx-version-min=10.11" for setting the deployment sdk - version) - -Tools ------ - -- A new `bitcoin-wallet` tool is now distributed alongside Bitcoin - Core's other executables. Without needing to use any RPCs, this tool - can currently create a new wallet file or display some basic - information about an existing wallet, such as whether the wallet is - encrypted, whether it uses an HD seed, how many transactions it - contains, and how many address book entries it has. - -Planned changes -=============== - -This section describes planned changes to Bitcoin Core that may affect -other Bitcoin software and services. - -- Since version 0.16.0, Bitcoin Core’s built-in wallet has defaulted to - generating P2SH-wrapped segwit addresses when users want to receive - payments. These addresses are backwards compatible with all - widely-used software. Starting with Bitcoin Core 0.20 (expected about - a year after 0.18), Bitcoin Core will default to native segwit - addresses (bech32) that provide additional fee savings and other - benefits. Currently, many wallets and services already support sending - to bech32 addresses, and if the Bitcoin Core project sees enough - additional adoption, it will instead default to bech32 receiving - addresses in Bitcoin Core 0.19 (approximately November 2019). - P2SH-wrapped segwit addresses will continue to be provided if the user - requests them in the GUI or by RPC, and anyone who doesn’t want the - update will be able to configure their default address type. - (Similarly, pioneering users who want to change their default now may - set the `addresstype=bech32` configuration option in any Bitcoin Core - release from 0.16.0 up.) - -Deprecated P2P messages ------------------------ - -- BIP 61 reject messages are now deprecated. Reject messages have no use - case on the P2P network and are only logged for debugging by most - network nodes. Furthermore, they increase bandwidth and can be harmful - for privacy and security. It has been possible to disable BIP 61 - messages since v0.17 with the `-enablebip61=0` option. BIP 61 messages - will be disabled by default in a future version, before being removed - entirely. - -Low-level changes -================= - -This section describes RPC changes mainly useful for testing, mostly not -relevant in production. The changes are mentioned for completeness. - -RPC ---- - -- The `submitblock` RPC previously returned the reason a rejected block - was invalid the first time it processed that block, but returned a - generic "duplicate" rejection message on subsequent occasions it - processed the same block. It now always returns the fundamental - reason for rejecting an invalid block and only returns "duplicate" for - valid blocks it has already accepted. - -- A new `submitheader` RPC allows submitting block headers independently - from their block. This is likely only useful for testing. - -- The `signrawtransactionwithkey` and `signrawtransactionwithwallet` - RPCs have been modified so that they also optionally accept a - `witnessScript`, the witness script in the case of a P2WSH or - P2SH-P2WSH output. This is compatible with the change to - `listunspent`. - -- For the `walletprocesspsbt` and `walletcreatefundedpsbt` RPCs, if the - `bip32derivs` parameter is set to true but the key metadata for a - public key has not been updated yet, then that key will have a - derivation path as if it were just an independent key (i.e. no - derivation path and its master fingerprint is itself). - -Configuration -------------- - -- The `-usehd` configuration option was removed in version 0.16. From - that version onwards, all new wallets created are hierarchical - deterministic wallets. This release makes specifying `-usehd` an - invalid configuration option. - -Network -------- - -- This release allows peers that your node automatically disconnected - for misbehavior (e.g. sending invalid data) to reconnect to your node - if you have unused incoming connection slots. If your slots fill up, - a misbehaving node will be disconnected to make room for nodes without - a history of problems (unless the misbehaving node helps your node in - some other way, such as by connecting to a part of the Internet from - which you don't have many other peers). Previously, Bitcoin Core - banned the IP addresses of misbehaving peers for a period of time - (default of 1 day); this was easily circumvented by attackers with - multiple IP addresses. If you manually ban a peer, such as by using - the `setban` RPC, all connections from that peer will still be - rejected. - -Wallet -------- - -- The key metadata will need to be upgraded the first time that the HD - seed is available. For unencrypted wallets this will occur on wallet - loading. For encrypted wallets this will occur the first time the - wallet is unlocked. - -- Newly encrypted wallets will no longer require restarting the - software. Instead such wallets will be completely unloaded and - reloaded to achieve the same effect. - -- A sub-project of Bitcoin Core now provides Hardware Wallet Interaction - (HWI) scripts that allow command-line users to use several popular - hardware key management devices with Bitcoin Core. See their [project - page](https://github.com/bitcoin-core/HWI#readme) for details. - -Security --------- - -- This release changes the Random Number Generator (RNG) used from - OpenSSL to Bitcoin Core's own implementation, although entropy - gathered by Bitcoin Core is fed out to OpenSSL and then read back in - when the program needs strong randomness. This moves Bitcoin Core a - little closer to no longer needing to depend on OpenSSL, a dependency - that has caused security issues in the past. The new implementation - gathers entropy from multiple sources, including from hardware - supporting the rdseed CPU instruction. - -Changes for particular platforms --------------------------------- - -- On macOS, Bitcoin Core now opts out of application CPU throttling - ("app nap") during initial blockchain download, when catching up from - over 100 blocks behind the current chain tip, or when reindexing chain - data. This helps prevent these operations from taking an excessively - long time because the operating system is attempting to conserve - power. - -0.18.0 change log -================= - -### Consensus -- #14247 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt) - -### Mining -- #14811 Mining: Enforce that segwit option must be set in GBT (jnewbery) - -### Block and transaction handling -- #13310 Report progress in ReplayBlocks while rolling forward (promag) -- #13783 validation: Pass tx pool reference into CheckSequenceLocks (MarcoFalke) -- #14834 validation: Assert that pindexPrev is non-null when required (kallewoof) -- #14085 index: Fix for indexers skipping genesis block (jimpo) -- #14963 mempool, validation: Explain `cs_main` locking semantics (MarcoFalke) -- #15193 Default `-whitelistforcerelay` to off (sdaftuar) -- #15429 Update `assumevalid`, `minimumchainwork`, and `getchaintxstats` to height 563378 (gmaxwell) -- #15552 Granular invalidateblock and RewindBlockIndex (MarcoFalke) -- #14841 Move CheckBlock() call to critical section (hebasto) - -### P2P protocol and network code -- #14025 Remove dead code for nVersion=10300 (MarcoFalke) -- #12254 BIP 158: Compact Block Filters for Light Clients (jimpo) -- #14073 blockfilter: Avoid out-of-bounds script access (jimpo) -- #14140 Switch nPrevNodeCount to vNodesSize (pstratem) -- #14027 Skip stale tip checking if outbound connections are off or if reindexing (gmaxwell) -- #14532 Never bind `INADDR_ANY` by default, and warn when doing so explicitly (luke-jr) -- #14733 Make peer timeout configurable, speed up very slow test and ensure correct code path tested (zallarak) -- #14336 Implement poll (pstratem) -- #15051 IsReachable is the inverse of IsLimited (DRY). Includes unit tests (mmachicao) -- #15138 Drop IsLimited in favor of IsReachable (Empact) -- #14605 Return of the Banman (dongcarl) -- #14970 Add dnsseed.emzy.de to DNS seeds (Emzy) -- #14929 Allow connections from misbehavior banned peers (gmaxwell) -- #15345 Correct comparison of addr count (dongcarl) -- #15201 Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes (practicalswift) -- #14626 Select orphan transaction uniformly for eviction (sipa) -- #15486 Ensure tried collisions resolve, and allow feeler connections to existing outbound netgroups (sdaftuar) - -### Wallet -- #13962 Remove unused `dummy_tx` variable from FillPSBT (dongcarl) -- #13967 Don't report `minversion` wallet entry as unknown (instagibbs) -- #13988 Add checks for settxfee reasonableness (ajtowns) -- #12559 Avoid locking `cs_main` in some wallet RPC (promag) -- #13631 Add CMerkleTx::IsImmatureCoinBase method (Empact) -- #14023 Remove accounts RPCs (jnewbery) -- #13825 Kill accounts (jnewbery) -- #10605 Add AssertLockHeld assertions in CWallet::ListCoins (ryanofsky) -- #12490 Remove deprecated wallet rpc features from `bitcoin_server` (jnewbery) -- #14138 Set `encrypted_batch` to nullptr after delete. Avoid double free in the case of NDEBUG (practicalswift) -- #14168 Remove `ENABLE_WALLET` from `libbitcoin_server.a` (jnewbery) -- #12493 Reopen CDBEnv after encryption instead of shutting down (achow101) -- #14282 Remove `-usehd` option (jnewbery) -- #14146 Remove trailing separators from `-walletdir` arg (PierreRochard) -- #14291 Add ListWalletDir utility function (promag) -- #14468 Deprecate `generate` RPC method (jnewbery) -- #11634 Add missing `cs_wallet`/`cs_KeyStore` locks to wallet (practicalswift) -- #14296 Remove `addwitnessaddress` (jnewbery) -- #14451 Add BIP70 deprecation warning and allow building GUI without BIP70 support (jameshilliard) -- #14320 Fix duplicate fileid detection (ken2812221) -- #14561 Remove `fs::relative` call and fix listwalletdir tests (promag) -- #14454 Add SegWit support to importmulti (MeshCollider) -- #14410 rpcwallet: `ischange` field for `getaddressinfo` RPC (mrwhythat) -- #14350 Add WalletLocation class (promag) -- #14689 Require a public key to be retrieved when signing a P2PKH input (achow101) -- #14478 Show error to user when corrupt wallet unlock fails (MeshCollider) -- #14411 Restore ability to list incoming transactions by label (ryanofsky) -- #14552 Detect duplicate wallet by comparing the db filename (ken2812221) -- #14678 Remove redundant KeyOriginInfo access, already done in CreateSig (instagibbs) -- #14477 Add ability to convert solvability info to descriptor (sipa) -- #14380 Fix assert crash when specified change output spend size is unknown (instagibbs) -- #14760 Log env path in `BerkeleyEnvironment::Flush` (promag) -- #14646 Add expansion cache functions to descriptors (unused for now) (sipa) -- #13076 Fix ScanForWalletTransactions to return an enum indicating scan result: `success` / `failure` / `user_abort` (Empact) -- #14821 Replace CAffectedKeysVisitor with descriptor based logic (sipa) -- #14957 Initialize `stop_block` in CWallet::ScanForWalletTransactions (Empact) -- #14565 Overhaul `importmulti` logic (sipa) -- #15039 Avoid leaking nLockTime fingerprint when anti-fee-sniping (MarcoFalke) -- #14268 Introduce SafeDbt to handle Dbt with free or `memory_cleanse` raii-style (Empact) -- #14711 Remove uses of chainActive and mapBlockIndex in wallet code (ryanofsky) -- #15279 Clarify rescanblockchain doc (MarcoFalke) -- #15292 Remove `boost::optional`-related false positive -Wmaybe-uninitialized warnings on GCC compiler (hebasto) -- #13926 [Tools] bitcoin-wallet - a tool for creating and managing wallets offline (jnewbery) -- #11911 Free BerkeleyEnvironment instances when not in use (ryanofsky) -- #15235 Do not import private keys to wallets with private keys disabled (achow101) -- #15263 Descriptor expansions only need pubkey entries for PKH/WPKH (sipa) -- #15322 Add missing `cs_db` lock (promag) -- #15297 Releases dangling files on `BerkeleyEnvironment::Close` (promag) -- #14491 Allow descriptor imports with importmulti (MeshCollider) -- #15365 Add lock annotation for mapAddressBook (MarcoFalke) -- #15226 Allow creating blank (empty) wallets (alternative) (achow101) -- #15390 [wallet-tool] Close bdb when flushing wallet (jnewbery) -- #15334 Log absolute paths for the wallets (hebasto) -- #14978 Factor out PSBT utilities from RPCs for use in GUI code; related refactoring (gwillen) -- #14481 Add P2SH-P2WSH support to listunspent RPC (MeshCollider) -- #14021 Import key origin data through descriptors in importmulti (achow101) -- #14075 Import watch only pubkeys to the keypool if private keys are disabled (achow101) -- #15368 Descriptor checksums (sipa) -- #15433 Use a single wallet batch for `UpgradeKeyMetadata` (jonasschnelli) -- #15408 Remove unused `TransactionError` constants (MarcoFalke) -- #15583 Log and ignore errors in ListWalletDir and IsBerkeleyBtree (promag) -- #14195 Pass privkey export DER compression flag correctly (fingera) -- #15299 Fix assertion in `CKey::SignCompact` (promag) -- #14437 Start to separate wallet from node (ryanofsky) -- #15749 Fix: importmulti only imports origin info for PKH outputs (sipa) - -### RPC and other APIs -- #12842 Prevent concurrent `savemempool` (promag) -- #13987 Report `minfeefilter` value in `getpeerinfo` RPC (ajtowns) -- #13891 Remove getinfo deprecation warning (jnewbery) -- #13399 Add `submitheader` (MarcoFalke) -- #12676 Show `bip125-replaceable` flag, when retrieving mempool entries (dexX7) -- #13723 PSBT key path cleanups (sipa) -- #14008 Preserve a format of RPC command definitions (kostyantyn) -- #9332 Let wallet `importmulti` RPC accept labels for standard scriptPubKeys (ryanofsky) -- #13983 Return more specific reject reason for submitblock (MarcoFalke) -- #13152 Add getnodeaddresses RPC command (chris-belcher) -- #14298 rest: Improve performance for JSON calls (alecalve) -- #14297 Remove warning for removed estimatefee RPC (jnewbery) -- #14373 Consistency fixes for RPC descriptions (ch4ot1c) -- #14150 Add key origin support to descriptors (sipa) -- #14518 Always throw in getblockstats if `-txindex` is required (promag) -- #14060 ZMQ: add options to configure outbound message high water mark, aka SNDHWM (mruddy) -- #13381 Add possibility to preserve labels on importprivkey (marcoagner) -- #14530 Use `RPCHelpMan` to generate RPC doc strings (MarcoFalke) -- #14720 Correctly name RPC arguments (MarcoFalke) -- #14726 Use `RPCHelpMan` for all RPCs (MarcoFalke) -- #14796 Pass argument descriptions to `RPCHelpMan` (MarcoFalke) -- #14670 http: Fix HTTP server shutdown (promag) -- #14885 Assert that named arguments are unique in `RPCHelpMan` (promag) -- #14877 Document default values for optional arguments (MarcoFalke) -- #14875 RPCHelpMan: Support required arguments after optional ones (MarcoFalke) -- #14993 Fix data race (UB) in InterruptRPC() (practicalswift) -- #14653 rpcwallet: Add missing transaction categories to RPC helptexts (andrewtoth) -- #14981 Clarify RPC `getrawtransaction`'s time help text (benthecarman) -- #12151 Remove `cs_main` lock from blockToJSON and blockheaderToJSON (promag) -- #15078 Document `bytessent_per_msg` and `bytesrecv_per_msg` (MarcoFalke) -- #15057 Correct `reconsiderblock `help text, add test (MarcoFalke) -- #12153 Avoid permanent `cs_main` lock in `getblockheader` (promag) -- #14982 Add `getrpcinfo` command (promag) -- #15122 Expand help text for `importmulti` changes (jnewbery) -- #15186 remove duplicate solvable field from `getaddressinfo` (fanquake) -- #15209 zmq: log outbound message high water mark when reusing socket (fanquake) -- #15177 rest: Improve tests and documention of /headers and /block (promag) -- #14353 rest: Add blockhash call, fetch blockhash by height (jonasschnelli) -- #15248 Compile on GCC4.8 (MarcoFalke) -- #14987 RPCHelpMan: Pass through Result and Examples (MarcoFalke) -- #15159 Remove lookup to UTXO set from GetTransaction (amitiuttarwar) -- #15245 remove deprecated mentions of signrawtransaction from fundraw help (instagibbs) -- #14667 Add `deriveaddresses` RPC util method (Sjors) -- #15357 Don't ignore `-maxtxfee` when wallet is disabled (JBaczuk) -- #15337 Fix for segfault if combinepsbt called with empty inputs (benthecarman) -- #14918 RPCHelpMan: Check default values are given at compile-time (MarcoFalke) -- #15383 mining: Omit uninitialized currentblockweight, currentblocktx (MarcoFalke) -- #13932 Additional utility RPCs for PSBT (achow101) -- #15401 Actually throw help when passed invalid number of params (MarcoFalke) -- #15471 rpc/gui: Remove 'Unknown block versions being mined' warning (laanwj) -- #15497 Consistent range arguments in scantxoutset/importmulti/deriveaddresses (sipa) -- #15510 deriveaddresses: add range to CRPCConvertParam (Sjors) -- #15582 Fix overflow bug in analyzepsbt fee: CAmount instead of int (sipa) -- #13424 Consistently validate txid / blockhash length and encoding in rpc calls (Empact) -- #15750 Remove the addresses field from the getaddressinfo return object (jnewbery) - -### GUI -- #13634 Compile `boost::signals2` only once (MarcoFalke) -- #13248 Make proxy icon from statusbar clickable (mess110) -- #12818 TransactionView: highlight replacement tx after fee bump (Sjors) -- #13529 Use new Qt5 connect syntax (promag) -- #14162 Also log and print messages or questions like bitcoind (MarcoFalke) -- #14385 Avoid system harfbuzz and bz2 (theuni) -- #14450 Fix QCompleter popup regression (hebasto) -- #14177 Set C locale for amountWidget (hebasto) -- #14374 Add `Blocksdir` to Debug window (hebasto) -- #14554 Remove unused `adjustedTime` parameter (hebasto) -- #14228 Enable system tray icon by default if available (hebasto) -- #14608 Remove the "Pay only required fee…" checkbox (hebasto) -- #14521 qt, docs: Fix `bitcoin-qt -version` output formatting (hebasto) -- #13966 When private key is disabled, only show watch-only balance (ken2812221) -- #14828 Remove hidden columns in coin control dialog (promag) -- #14783 Fix `boost::signals2::no_slots_error` in early calls to InitWarning (promag) -- #14854 Cleanup SplashScreen class (hebasto) -- #14801 Use window() instead of obsolete topLevelWidget() (hebasto) -- #14573 Add Window menu (promag) -- #14979 Restore < Qt5.6 compatibility for addAction (jonasschnelli) -- #14975 Refactoring with QString::toNSString() (hebasto) -- #15000 Fix broken notificator on GNOME (hebasto) -- #14375 Correct misleading "overridden options" label (hebasto) -- #15007 Notificator class refactoring (hebasto) -- #14784 Use `WalletModel*` instead of the wallet name as map key (promag) -- #11625 Add BitcoinApplication & RPCConsole tests (ryanofsky) -- #14517 Fix start with the `-min` option (hebasto) -- #13216 implements concept for different disk sizes on intro (marcoagner) -- #15114 Replace remaining 0 with nullptr (Empact) -- #14594 Fix minimized window bug on Linux (hebasto) -- #14556 Fix confirmed transaction labeled "open" (#13299) (hebasto) -- #15149 Show current wallet name in window title (promag) -- #15136 "Peers" tab overhaul (hebasto) -- #14250 Remove redundant stopThread() and stopExecutor() signals (hebasto) -- #15040 Add workaround for QProgressDialog bug on macOS (hebasto) -- #15101 Add WalletController (promag) -- #15178 Improve "help-console" message (hebasto) -- #15210 Fix window title update (promag) -- #15167 Fix wallet selector size adjustment (hebasto) -- #15208 Remove macOS launch-at-startup when compiled with > macOS 10.11, fix memory mismanagement (jonasschnelli) -- #15163 Correct units for "-dbcache" and "-prune" (hebasto) -- #15225 Change the receive button to respond to keypool state changing (achow101) -- #15280 Fix shutdown order (promag) -- #15203 Fix issue #9683 "gui, wallet: random abort (segmentation fault) (dooglus) -- #15091 Fix model overlay header sync (jonasschnelli) -- #15153 Add Open Wallet menu (promag) -- #15183 Fix `m_assumed_blockchain_size` variable value (marcoagner) -- #15063 If BIP70 is disabled, attempt to fall back to BIP21 parsing (luke-jr) -- #15195 Add Close Wallet action (promag) -- #15462 Fix async open wallet call order (promag) -- #15801 Bugfix: GUI: Options: Initialise prune setting range before loading current value, and remove upper bound limit (luke-jr) - -### Build system -- #13955 gitian: Bump descriptors for (0.)18 (fanquake) -- #13899 Enable -Wredundant-decls where available. Remove redundant redeclarations (practicalswift) -- #13665 Add RISC-V support to gitian (ken2812221) -- #14062 Generate MSVC project files via python script (ken2812221) -- #14037 Add README.md to linux release tarballs (hebasto) -- #14183 Remove unused Qt 4 dependencies (ken2812221) -- #14127 Avoid getifaddrs when unavailable (greenaddress) -- #14184 Scripts and tools: increased timeout downloading (cisba) -- #14204 Move `interfaces/*` to `libbitcoin_server` (laanwj) -- #14208 Actually remove `ENABLE_WALLET` (jnewbery) -- #14212 Remove libssl from LDADD unless GUI (MarcoFalke) -- #13578 Upgrade zeromq to 4.2.5 and avoid deprecated zeromq API functions (mruddy) -- #14281 lcov: filter /usr/lib/ from coverage reports (MarcoFalke) -- #14325 gitian: Use versioned unsigned tarballs instead of generically named ones (achow101) -- #14253 During 'make clean', remove some files that are currently missed (murrayn) -- #14455 Unbreak `make clean` (jamesob) -- #14495 Warn (don't fail!) on spelling errors (practicalswift) -- #14496 Pin to specific versions of Python packages we install from PyPI in Travis (practicalswift) -- #14568 Fix Qt link order for Windows build (ken2812221) -- #14252 Run functional tests and benchmarks under the undefined behaviour sanitizer (UBSan) (practicalswift) -- #14612 Include full version number in released file names (achow101) -- #14840 Remove duplicate libconsensus linking in test make (AmirAbrams) -- #14564 Adjust configure so that only BIP70 is disabled when protobuf is missing instead of the GUI (jameshilliard) -- #14883 Add `--retry 5` to curl opts in `install_db4.sh` (qubenix) -- #14701 Add `CLIENT_VERSION_BUILD` to CFBundleGetInfoString (fanquake) -- #14849 Qt 5.9.7 (fanquake) -- #15020 Add names to Travis jobs (gkrizek) -- #15047 Allow to configure --with-sanitizers=fuzzer (MarcoFalke) -- #15154 Configure: bitcoin-tx doesn't need libevent, so don't pull it in (luke-jr) -- #15175 Drop macports support (Empact) -- #15308 Restore compatibility with older boost (Empact) -- #15407 msvc: Fix silent merge conflict between #13926 and #14372 part II (ken2812221) -- #15388 Makefile.am: add rule for src/bitcoin-wallet (Sjors) -- #15393 Bump minimum Qt version to 5.5.1 (Sjors) -- #15285 Prefer Python 3.4 even if newer versions are present on the system (Sjors) -- #15398 msvc: Add rapidcheck property tests (ken2812221) -- #15431 msvc: scripted-diff: Remove NDEBUG pre-define in project file (ken2812221) -- #15549 gitian: Improve error handling (laanwj) -- #15548 use full version string in setup.exe (MarcoFalke) -- #11526 Visual Studio build configuration for Bitcoin Core (sipsorcery) -- #15110 build\_msvc: Fix the build problem in `libbitcoin_server` (Mr-Leshiy) -- #14372 msvc: build secp256k1 and leveldb locally (ken2812221) -- #15325 msvc: Fix silent merge conflict between #13926 and #14372 (ken2812221) -- #15391 Add compile time verification of assumptions we're currently making implicitly/tacitly (practicalswift) -- #15503 msvc: Use a single file to specify the include path (ken2812221) -- #13765 contrib: Add gitian build support for github pull request (ken2812221) -- #15809 gitignore: plist and dat (jamesob) - -### Tests and QA -- #15405 appveyor: Clean cache when build configuration changes (Sjors) -- #13953 Fix deprecation in bitcoin-util-test.py (isghe) -- #13963 Replace usage of tostring() with tobytes() (dongcarl) -- #13964 ci: Add appveyor ci (ken2812221) -- #13997 appveyor: fetch the latest port data (ken2812221) -- #13707 Add usage note to check-rpc-mappings.py (masonicboom) -- #14036 travis: Run unit tests --with-sanitizers=undefined (MarcoFalke) -- #13861 Add testing of `value_ret` for SelectCoinsBnB (Empact) -- #13863 travis: Move script sections to files in `.travis/` subject to shellcheck (scravy) -- #14081 travis: Fix missing differentiation between unit and functional tests (scravy) -- #14042 travis: Add cxxflags=-wno-psabi at arm job (ken2812221) -- #14051 Make `combine_logs.py` handle multi-line logs (jnewbery) -- #14093 Fix accidental trunction from int to bool (practicalswift) -- #14108 Add missing locking annotations and locks (`g_cs_orphans`) (practicalswift) -- #14088 Don't assert(…) with side effects (practicalswift) -- #14086 appveyor: Use clcache to speed up build (ken2812221) -- #13954 Warn (don't fail!) on spelling errors. Fix typos reported by codespell (practicalswift) -- #12775 Integration of property based testing into Bitcoin Core (Christewart) -- #14119 Read reject reasons from debug log, not P2P messages (MarcoFalke) -- #14189 Fix silent merge conflict in `wallet_importmulti` (MarcoFalke) -- #13419 Speed up `knapsack_solver_test` by not recreating wallet 100 times (lucash-dev) -- #14199 Remove redundant BIP174 test from `rpc_psbt.json` (araspitzu) -- #14179 Fixups to "Run all tests even if wallet is not compiled" (MarcoFalke) -- #14225 Reorder tests and move most of extended tests up to normal tests (ken2812221) -- #14236 `generate` --> `generatetoaddress` change to allow tests run without wallet (sanket1729) -- #14287 Use MakeUnique to construct objects owned by `unique_ptrs` (practicalswift) -- #14007 Run functional test on Windows and enable it on Appveyor (ken2812221) -- #14275 Write the notification message to different files to avoid race condition in `feature_notifications.py` (ken2812221) -- #14306 appveyor: Move AppVeyor YAML to dot-file-style YAML (MitchellCash) -- #14305 Enforce critical class instance attributes in functional tests, fix segwit test specificity (JustinTArthur) -- #12246 Bugfix: Only run bitcoin-tx tests when bitcoin-tx is enabled (luke-jr) -- #14316 Exclude all tests with difference parameters in `--exclude` list (ken2812221) -- #14381 Add missing call to `skip_if_no_cli()` (practicalswift) -- #14389 travis: Set codespell version to avoid breakage (MarcoFalke) -- #14398 Don't access out of bounds array index: array[sizeof(array)] (Empact) -- #14419 Remove `rpc_zmq.py` (jnewbery) -- #14241 appveyor: Script improvement (ken2812221) -- #14413 Allow closed RPC handler in `assert_start_raises_init_error` (ken2812221) -- #14324 Run more tests with wallet disabled (MarcoFalke) -- #13649 Allow arguments to be forwarded to flake8 in lint-python.sh (jamesob) -- #14465 Stop node before removing the notification file (ken2812221) -- #14460 Improve 'CAmount' tests (hebasto) -- #14456 forward timeouts properly in `send_blocks_and_test` (jamesob) -- #14527 Revert "Make qt wallet test compatible with qt4" (MarcoFalke) -- #14504 Show the progress of functional tests (isghe) -- #14559 appveyor: Enable multiwallet tests (ken2812221) -- #13515 travis: Enable qt for all jobs (ken2812221) -- #14571 Test that nodes respond to `getdata` with `notfound` (MarcoFalke) -- #14569 Print dots by default in functional tests (ken2812221) -- #14631 Move deterministic address import to `setup_nodes` (jnewbery) -- #14630 test: Remove travis specific code (MarcoFalke) -- #14528 travis: Compile once on xenial (MarcoFalke) -- #14092 Dry run `bench_bitcoin` as part `make check` to allow for quick identification of assertion/sanitizer failures in benchmarking code (practicalswift) -- #14664 `example_test.py`: fixup coinbase height argument, derive number clearly (instagibbs) -- #14522 Add invalid P2P message tests (jamesob) -- #14619 Fix value display name in `test_runner` help text (merland) -- #14672 Send fewer spam messages in `p2p_invalid_messages` (jamesob) -- #14673 travis: Fail the ubsan travis build in case of newly introduced ubsan errors (practicalswift) -- #14665 appveyor: Script improvement part II (ken2812221) -- #14365 Add Python dead code linter (vulture) to Travis (practicalswift) -- #14693 `test_node`: `get_mem_rss` fixups (MarcoFalke) -- #14714 util.h: explicitly include required QString header (1Il1) -- #14705 travis: Avoid timeout on verify-commits check (MarcoFalke) -- #14770 travis: Do not specify sudo in `.travis` (scravy) -- #14719 Check specific reject reasons in `feature_block` (MarcoFalke) -- #14771 Add `BOOST_REQUIRE` to getters returning optional (MarcoFalke) -- #14777 Add regtest for JSON-RPC batch calls (domob1812) -- #14764 travis: Run thread sanitizer on unit tests (MarcoFalke) -- #14400 Add Benchmark to test input de-duplication worst case (JeremyRubin) -- #14812 Fix `p2p_invalid_messages` on macOS (jamesob) -- #14813 Add `wallet_encryption` error tests (MarcoFalke) -- #14820 Fix `descriptor_tests` not checking ToString output of public descriptors (ryanofsky) -- #14794 Add AddressSanitizer (ASan) Travis build (practicalswift) -- #14819 Bugfix: `test/functional/mempool_accept`: Ensure oversize transaction is actually oversize (luke-jr) -- #14822 bench: Destroy wallet txs instead of leaking their memory (MarcoFalke) -- #14683 Better `combine_logs.py` behavior (jamesob) -- #14231 travis: Save cache even when build or test fail (ken2812221) -- #14816 Add CScriptNum decode python implementation in functional suite (instagibbs) -- #14861 Modify `rpc_bind` to conform to #14532 behaviour (dongcarl) -- #14864 Run scripted-diff in subshell (dongcarl) -- #14795 Allow `test_runner` command line to receive parameters for each test (marcoagner) -- #14788 Possible fix the permission error when the tests open the cookie file (ken2812221) -- #14857 `wallet_keypool_topup.py`: Test for all keypool address types (instagibbs) -- #14886 Refactor importmulti tests (jnewbery) -- #14908 Removed implicit CTransaction constructor calls from tests and benchmarks (lucash-dev) -- #14903 Handle ImportError explicitly, improve comparisons against None (daniel-s-ingram) -- #14884 travis: Enforce python 3.4 support through linter (Sjors) -- #14940 Add test for truncated pushdata script (MarcoFalke) -- #14926 consensus: Check that final transactions are valid (MarcoFalke) -- #14937 travis: Fix travis would always be green even if it fail (ken2812221) -- #14953 Make `g_insecure_rand_ctx` `thread_local` (MarcoFalke) -- #14931 mempool: Verify prioritization is dumped correctly (MarcoFalke) -- #14935 Test for expected return values when calling functions returning a success code (practicalswift) -- #14969 Fix `cuckoocache_tests` TSAN failure introduced in 14935 (practicalswift) -- #14964 Fix race in `mempool_accept` (MarcoFalke) -- #14829 travis: Enable functional tests in the threadsanitizer (tsan) build job (practicalswift) -- #14985 Remove `thread_local` from `test_bitcoin` (MarcoFalke) -- #15005 Bump timeout to run tests in travis thread sanitizer (MarcoFalke) -- #15013 Avoid race in `p2p_timeouts` (MarcoFalke) -- #14960 lint/format-strings: Correctly exclude escaped percent symbols (luke-jr) -- #14930 pruning: Check that verifychain can be called when pruned (MarcoFalke) -- #15022 Upgrade Travis OS to Xenial (gkrizek) -- #14738 Fix running `wallet_listtransactions.py` individually through `test_runner.py` (kristapsk) -- #15026 Rename `rpc_timewait` to `rpc_timeout` (MarcoFalke) -- #15069 Fix `rpc_net.py` `pong` race condition (Empact) -- #14790 Allow running `rpc_bind.py` --nonloopback test without IPv6 (kristapsk) -- #14457 add invalid tx templates for use in functional tests (jamesob) -- #14855 Correct ineffectual WithOrVersion from `transactions_tests` (Empact) -- #15099 Use `std::vector` API for construction of test data (domob1812) -- #15102 Run `invalid_txs.InputMissing` test in `feature_block` (MarcoFalke) -- #15059 Add basic test for BIP34 (MarcoFalke) -- #15108 Tidy up `wallet_importmulti.py` (amitiuttarwar) -- #15164 Ignore shellcheck warning SC2236 (promag) -- #15170 refactor/lint: Add ignored shellcheck suggestions to an array (koalaman) -- #14958 Remove race between connecting and shutdown on separate connections (promag) -- #15166 Pin shellcheck version (practicalswift) -- #15196 Update all `subprocess.check_output` functions to be Python 3.4 compatible (gkrizek) -- #15043 Build fuzz targets into seperate executables (MarcoFalke) -- #15276 travis: Compile once on trusty (MarcoFalke) -- #15246 Add tests for invalid message headers (MarcoFalke) -- #15301 When testing with --usecli, unify RPC arg to cli arg conversion and handle dicts and lists (achow101) -- #15247 Use wallet to retrieve raw transactions (MarcoFalke) -- #15303 travis: Remove unused `functional_tests_config` (MarcoFalke) -- #15330 Fix race in `p2p_invalid_messages` (MarcoFalke) -- #15324 Make bloom tests deterministic (MarcoFalke) -- #15328 travis: Revert "run extended tests once daily" (MarcoFalke) -- #15327 Make test `updatecoins_simulation_test` deterministic (practicalswift) -- #14519 add utility to easily profile node performance with perf (jamesob) -- #15349 travis: Only exit early if compilation took longer than 30 min (MarcoFalke) -- #15350 Drop RPC connection if --usecli (promag) -- #15370 test: Remove unused --force option (MarcoFalke) -- #14543 minor `p2p_sendheaders` fix of height in coinbase (instagibbs) -- #13787 Test for Windows encoding issue (ken2812221) -- #15378 Added missing tests for RPC wallet errors (benthecarman) -- #15238 remove some magic mining constants in functional tests (instagibbs) -- #15411 travis: Combine --disable-bip70 into existing job (MarcoFalke) -- #15295 fuzz: Add `test/fuzz/test_runner.py` and run it in travis (MarcoFalke) -- #15413 Add missing `cs_main` locks required when accessing pcoinsdbview, pcoinsTip or pblocktree (practicalswift) -- #15399 fuzz: Script validation flags (MarcoFalke) -- #15410 txindex: interrupt threadGroup before calling destructor (MarcoFalke) -- #15397 Remove manual byte editing in `wallet_tx_clone` func test (instagibbs) -- #15415 functional: allow custom cwd, use tmpdir as default (Sjors) -- #15404 Remove `-txindex` to start nodes (amitiuttarwar) -- #15439 remove `byte.hex()` to keep compatibility (AkioNak) -- #15419 Always refresh cache to be out of ibd (MarcoFalke) -- #15507 Bump timeout on tests that timeout on windows (MarcoFalke) -- #15506 appveyor: fix cache issue and reduce dependencies build time (ken2812221) -- #15485 add `rpc_misc.py`, mv test getmemoryinfo, add test mallocinfo (adamjonas) -- #15321 Add `cs_main` lock annotations for mapBlockIndex (MarcoFalke) -- #14128 lint: Make sure we read the command line inputs using UTF-8 decoding in python (ken2812221) -- #14115 lint: Make all linters work under the default macos dev environment (build-osx.md) (practicalswift) -- #15219 lint: Enable python linters via an array (Empact) - -### Platform support -- #13866 utils: Use `_wfopen` and `_wfreopen` on windows (ken2812221) -- #13886 utils: Run commands using UTF-8 string on windows (ken2812221) -- #14192 utils: Convert `fs::filesystem_error` messages from local multibyte to UTF-8 on windows (ken2812221) -- #13877 utils: Make fs::path::string() always return UTF-8 string on windows (ken2812221) -- #13883 utils: Convert windows args to UTF-8 string (ken2812221) -- #13878 utils: Add fstream wrapper to allow to pass unicode filename on windows (ken2812221) -- #14426 utils: Fix broken windows filelock (ken2812221) -- #14686 Fix windows build error if `--disable-bip70` (ken2812221) -- #14922 windows: Set `_WIN32_WINNT` to 0x0601 (Windows 7) (ken2812221) -- #13888 Call unicode API on Windows (ken2812221) -- #15468 Use `fsbridge::ifstream` to fix Windows path issue (ken2812221) -- #13734 Drop `boost::scoped_array` and use `wchar_t` API explicitly on Windows (ken2812221) -- #13884 Enable bdb unicode support for Windows (ken2812221) - -### Miscellaneous -- #13935 contrib: Adjust output to current test format (AkioNak) -- #14097 validation: Log FormatStateMessage on ConnectBlock error in ConnectTip (MarcoFalke) -- #13724 contrib: Support ARM and RISC-V symbol check (ken2812221) -- #13159 Don't close old debug log file handle prematurely when trying to re-open (on SIGHUP) (practicalswift) -- #14186 bitcoin-cli: don't translate command line options (HashUnlimited) -- #14057 logging: Only log `using config file path_to_bitcoin.conf` message on startup if conf file exists (leishman) -- #14164 Update univalue subtree (MarcoFalke) -- #14272 init: Remove deprecated args from hidden args (MarcoFalke) -- #14494 Error if # is used in rpcpassword in conf (MeshCollider) -- #14742 Properly generate salt in rpcauth.py (dongcarl) -- #14708 Warn unrecognised sections in the config file (AkioNak) -- #14756 Improve rpcauth.py by using argparse and getpass modules (promag) -- #14785 scripts: Fix detection of copyright holders (cornelius) -- #14831 scripts: Use `#!/usr/bin/env bash` instead of `#!/bin/bash` (vim88) -- #14869 Scripts: Add trusted key for samuel dobson (laanwj) -- #14809 Tools: improve verify-commits.py script (jlopp) -- #14624 Some simple improvements to the RNG code (sipa) -- #14947 scripts: Remove python 2 import workarounds (practicalswift) -- #15087 Error if rpcpassword contains hash in conf sections (MeshCollider) -- #14433 Add checksum in gitian build scripts for ossl (TheCharlatan) -- #15165 contrib: Allow use of github api authentication in github-merge (laanwj) -- #14409 utils and libraries: Make 'blocksdir' always net specific (hebasto) -- #14839 threads: Fix unitialized members in `sched_param` (fanquake) -- #14955 Switch all RNG code to the built-in PRNG (sipa) -- #15258 Scripts and tools: Fix `devtools/copyright_header.py` to always honor exclusions (Empact) -- #12255 Update bitcoin.service to conform to init.md (dongcarl) -- #15266 memory: Construct globals on first use (MarcoFalke) -- #15347 Fix build after pr 15266 merged (hebasto) -- #15351 Update linearize-hashes.py (OverlordQ) -- #15358 util: Add setuphelpoptions() (MarcoFalke) -- #15216 Scripts and tools: Replace script name with a special parameter (hebasto) -- #15250 Use RdSeed when available, and reduce RdRand load (sipa) -- #15278 Improve PID file error handling (hebasto) -- #15270 Pull leveldb subtree (MarcoFalke) -- #15456 Enable PID file creation on WIN (riordant) -- #12783 macOS: disable AppNap during sync (krab) -- #13910 Log progress while verifying blocks at level 4 (domob1812) -- #15124 Fail AppInitMain if either disk space check fails (Empact) -- #15117 Fix invalid memory write in case of failing mmap(…) in PosixLockedPageAllocator::AllocateLocked (practicalswift) -- #14357 streams: Fix broken `streams_vector_reader` test. Remove unused `seek(size_t)` -- #11640 Make `LOCK`, `LOCK2`, `TRY_LOCK` work with CWaitableCriticalSection (ryanofsky) -- #14074 Use `std::unordered_set` instead of `set` in blockfilter interface (jimpo) -- #15275 Add gitian PGP key for hebasto (hebasto) - -### Documentation -- #14120 Notes about control port and read access to cookie (JBaczuk) -- #14135 correct GetDifficulty doc after #13288 (fanquake) -- #14013 Add new regtest ports in man following #10825 ports reattributions (ariard) -- #14149 Remove misleading checkpoints comment in CMainParams (MarcoFalke) -- #14153 Add disable-wallet section to OSX build instructions, update line in Unix instructions (bitstein) -- #13662 Explain when reindex-chainstate can be used instead of reindex (Sjors) -- #14207 `-help-debug` implies `-help` (laanwj) -- #14213 Fix reference to lint-locale-dependence.sh (hebasto) -- #14206 Document `-checklevel` levels (laanwj) -- #14217 Add GitHub PR template (MarcoFalke) -- #14331 doxygen: Fix member comments (MarcoFalke) -- #14264 Split depends installation instructions per arch (MarcoFalke) -- #14393 Add missing apt-get install (poiuty) -- #14428 Fix macOS files description in qt/README.md (hebasto) -- #14390 release process: RPC documentation (karel-3d) -- #14472 getblocktemplate: use SegWit in example (Sjors) -- #14497 Add doc/bitcoin-conf.md (hebasto) -- #14526 Document lint tests (fanquake) -- #14511 Remove explicit storage requirement from README.md (merland) -- #14600 Clarify commit message guidelines (merland) -- #14617 FreeBSD: Document Python 3 requirement for 'gmake check' (murrayn) -- #14592 Add external interface consistency guarantees (MarcoFalke) -- #14625 Make clear function argument case in dev notes (dongcarl) -- #14515 Update OpenBSD build guide for 6.4 (fanquake) -- #14436 Add comment explaining recentRejects-DoS behavior (jamesob) -- #14684 conf: Remove deprecated options from docs, Other cleanup (MarcoFalke) -- #14731 Improve scripted-diff developer docs (dongcarl) -- #14778 A few minor formatting fixes and clarifications to descriptors.md (jnewbery) -- #14448 Clarify rpcwallet flag url change (JBaczuk) -- #14808 Clarify RPC rawtransaction documentation (jlopp) -- #14804 Less confusing documentation for `torpassword` (fanquake) -- #14848 Fix broken Gmane URL in security-check.py (cyounkins-bot) -- #14882 developer-notes.md: Point out that UniValue deviates from upstream (Sjors) -- #14909 Update minimum required Qt (fanquake) -- #14914 Add nice table to files.md (emilengler) -- #14741 Indicate `-rpcauth` option password hashing alg (dongcarl) -- #14950 Add NSIS setup/install steps to windows docs (fanquake) -- #13930 Better explain GetAncestor check for `m_failed_blocks` in AcceptBlockHeader (Sjors) -- #14973 Improve Windows native build instructions (murrayn) -- #15073 Botbot.me (IRC logs) not available anymore (anduck) -- #15038 Get more info about GUI-related issue on Linux (hebasto) -- #14832 Add more Doxygen information to Developer Notes (ch4ot1c) -- #15128 Fix download link in doc/README.md (merland) -- #15127 Clarifying testing instructions (benthecarman) -- #15132 Add FreeBSD build notes link to doc/README.md (fanquake) -- #15173 Explain what .python-version does (Sjors) -- #15223 Add information about security to the JSON-RPC doc (harding) -- #15249 Update python docs to reflect that wildcard imports are disallowed (Empact) -- #15176 Get rid of badly named `doc/README_osx.md` (merland) -- #15272 Correct logging return type and RPC example (fanquake) -- #15244 Gdb attaching to process during tests has non-sudo solution (instagibbs) -- #15332 Small updates to `getrawtransaction` description (amitiuttarwar) -- #15354 Add missing `bitcoin-wallet` tool manpages (MarcoFalke) -- #15343 netaddress: Make IPv4 loopback comment more descriptive (dongcarl) -- #15353 Minor textual improvements in `translation_strings_policy.md` (merland) -- #15426 importmulti: add missing description of keypool option (harding) -- #15425 Add missing newline to listunspent help for witnessScript (harding) -- #15348 Add separate productivity notes document (dongcarl) -- #15416 Update FreeBSD build guide for 12.0 (fanquake) -- #15222 Add info about factors that affect dependency list (merland) -- #13676 Explain that mempool memory is added to `-dbcache` (Sjors) -- #15273 Slight tweak to the verify-commits script directions (droark) -- #15477 Remove misleading hint in getrawtransaction (MarcoFalke) -- #15489 Update release process for snap package (MarcoFalke) -- #15524 doc: Remove berkeleydb PPA from linux build instructions (MarcoFalke) -- #15559 Correct `analyzepsbt` rpc doc (fanquake) -- #15194 Add comment describing `fDisconnect` behavior (dongcarl) -- #15754 getrpcinfo docs (benthecarman) -- #15763 Update bips.md for 0.18.0 (sipa) -- #15757 List new RPCs in psbt.md and descriptors.md (sipa) -- #15765 correct bitcoinconsensus_version in shared-libraries.md (fanquake) -- #15792 describe onlynet option in doc/tor.md (jonatack) -- #15802 mention creating application support bitcoin folder on OSX (JimmyMow) -- #15799 Clarify RPC versioning (MarcoFalke) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 1Il1 -- 251 -- Aaron Clauson -- Adam Jonas -- Akio Nakamura -- Alexander Leishman -- Alexey Ivanov -- Alexey Poghilenkov -- Amir Abrams -- Amiti Uttarwar -- Andrew Chow -- andrewtoth -- Anthony Towns -- Antoine Le Calvez -- Antoine Riard -- Antti Majakivi -- araspitzu -- Arvid Norberg -- Ben Carman -- Ben Woosley -- benthecarman -- bitcoinhodler -- Carl Dong -- Chakib Benziane -- Chris Moore -- Chris Stewart -- chris-belcher -- Chun Kuan Lee -- Cornelius Schumacher -- Cory Fields -- Craig Younkins -- Cristian Mircea Messel -- Damian Mee -- Daniel Ingram -- Daniel Kraft -- David A. Harding -- DesWurstes -- dexX7 -- Dimitri Deijs -- Dimitris Apostolou -- Douglas Roark -- DrahtBot -- Emanuele Cisbani -- Emil Engler -- Eric Scrivner -- fridokus -- Gal Buki -- Gleb Naumenko -- Glenn Willen -- Graham Krizek -- Gregory Maxwell -- Gregory Sanders -- gustavonalle -- Harry Moreno -- Hennadii Stepanov -- Isidoro Ghezzi -- Jack Mallers -- James Hilliard -- James O'Beirne -- Jameson Lopp -- Jeremy Rubin -- Jesse Cohen -- Jim Posen -- John Newbery -- Jon Layton -- Jonas Schnelli -- João Barbosa -- Jordan Baczuk -- Jorge Timón -- Julian Fleischer -- Justin Turner Arthur -- Karel Bílek -- Karl-Johan Alm -- Kaz Wesley -- ken2812221 -- Kostiantyn Stepaniuk -- Kristaps Kaupe -- Lawrence Nahum -- Lenny Maiorani -- liuyujun -- lucash-dev -- luciana -- Luke Dashjr -- marcaiaf -- marcoagner -- MarcoFalke -- Martin Erlandsson -- Marty Jones -- Mason Simon -- Michael Ford -- Michael Goldstein -- Michael Polzer -- Mitchell Cash -- mruddy -- Murray Nesbitt -- OverlordQ -- Patrick Strateman -- Pierre Rochard -- Pieter Wuille -- poiuty -- practicalswift -- priscoan -- qubenix -- riordant -- Russell Yanofsky -- Samuel Dobson -- sanket1729 -- Sjors Provoost -- Stephan Oeste -- Steven Roose -- Suhas Daftuar -- TheCharlatan -- Tim Ruffing -- Vidar Holen -- vim88 -- Walter -- whythat -- Wladimir J. van der Laan -- Zain Iqbal Allarakhia - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.18.1.md b/doc/release-notes/release-notes-0.18.1.md deleted file mode 100644 index 483cc5075e71a..0000000000000 --- a/doc/release-notes/release-notes-0.18.1.md +++ /dev/null @@ -1,136 +0,0 @@ -Bitcoin Core version 0.18.1 is now available from: - - - -This is a new minor version release, including new features, various bug -fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has -completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -`/Applications/Bitcoin-Qt` (on Mac) or `bitcoind`/`bitcoin-qt` (on -Linux). - -The first time you run version 0.15.0 or newer, your chainstate database -will be converted to a new format, which will take anywhere from a few -minutes to half an hour, depending on the speed of your machine. - -Note that the block database format also changed in version 0.8.0 and -there is no automatic upgrade code from before version 0.8 to version -0.15.0 or later. Upgrading directly from 0.7.x and earlier without -redownloading the blockchain is not supported. However, as usual, old -wallet versions are still supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not -recommended to use Bitcoin Core on unsupported systems. - -Bitcoin Core should also work on most other Unix-like systems but is not -as frequently tested on them. - -From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is -built using Qt 5.9.x, which doesn't support versions of macOS older than -10.10. Additionally, Bitcoin Core does not yet change appearance when -macOS "dark mode" is activated. - -Known issues -============ - -Wallet GUI ----------- - -For advanced users who have both (1) enabled coin control features, and -(2) are using multiple wallets loaded at the same time: The coin control -input selection dialog can erroneously retain wrong-wallet state when -switching wallets using the dropdown menu. For now, it is recommended -not to use coin control features with multiple wallets loaded. - -0.18.1 change log -================= - -### P2P protocol and network code -- #15990 Add tests and documentation for blocksonly (MarcoFalke) -- #16021 Avoid logging transaction decode errors to stderr (MarcoFalke) -- #16405 fix: tor: Call `event_base_loopbreak` from the event's callback (promag) -- #16412 Make poll in InterruptibleRecv only filter for POLLIN events (tecnovert) - -### Wallet -- #15913 Add -ignorepartialspends to list of ignored wallet options (luke-jr) - -### RPC and other APIs -- #15991 Bugfix: fix pruneblockchain returned prune height (jonasschnelli) -- #15899 Document iswitness flag and fix bug in converttopsbt (MarcoFalke) -- #16026 Ensure that uncompressed public keys in a multisig always returns a legacy address (achow101) -- #14039 Disallow extended encoding for non-witness transactions (sipa) -- #16210 add 2nd arg to signrawtransactionwithkey examples (dooglus) -- #16250 signrawtransactionwithkey: report error when missing redeemScript/witnessScript (ajtowns) - -### GUI -- #16044 fix the bug of OPEN CONFIGURATION FILE on Mac (shannon1916) -- #15957 Show "No wallets available" in open menu instead of nothing (meshcollider) -- #16118 Enable open wallet menu on setWalletController (promag) -- #16135 Set progressDialog to nullptr (promag) -- #16231 Fix open wallet menu initialization order (promag) -- #16254 Set `AA_EnableHighDpiScaling` attribute early (hebasto) -- #16122 Enable console line edit on setClientModel (promag) -- #16348 Assert QMetaObject::invokeMethod result (promag) - -### Build system -- #15985 Add test for GCC bug 90348 (sipa) -- #15947 Install bitcoin-wallet manpage (domob1812) -- #15983 build with -fstack-reuse=none (MarcoFalke) - -### Tests and QA -- #15826 Pure python EC (sipa) -- #15893 Add test for superfluous witness record in deserialization (instagibbs) -- #14818 Bugfix: test/functional/rpc_psbt: Remove check for specific error message that depends on uncertain assumptions (luke-jr) -- #15831 Add test that addmultisigaddress fails for watchonly addresses (MarcoFalke) - -### Documentation -- #15890 Remove text about txes always relayed from -whitelist (harding) - -### Miscellaneous -- #16095 Catch by reference not value in wallettool (kristapsk) -- #16205 Replace fprintf with tfm::format (MarcoFalke) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- Anthony Towns -- Chris Moore -- Daniel Kraft -- David A. Harding -- fanquake -- Gregory Sanders -- Hennadii Stepanov -- John Newbery -- Jonas Schnelli -- João Barbosa -- Kristaps Kaupe -- Luke Dashjr -- MarcoFalke -- Michele Federici -- Pieter Wuille -- Samuel Dobson -- shannon1916 -- tecnovert -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.19.0.1.md b/doc/release-notes/release-notes-0.19.0.1.md deleted file mode 100644 index 70b8ec589fa36..0000000000000 --- a/doc/release-notes/release-notes-0.19.0.1.md +++ /dev/null @@ -1,1089 +0,0 @@ -Bitcoin Core version 0.19.0.1 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but might take some time if the datadir needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems using -the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended -to use Bitcoin Core on unsupported systems. - -Bitcoin Core should also work on most other Unix-like systems but is not -as frequently tested on them. - -From 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is -built using Qt 5.9.x, which doesn't support versions of macOS older than -10.10. Additionally, Bitcoin Core does not yet change appearance when -macOS "dark mode" is activated. - -Users running macOS Catalina may need to "right-click" and then choose "Open" -to open the Bitcoin Core .dmg. This is due to new signing requirements -imposed by Apple, which the Bitcoin Core project does not yet adhere too. - -Notable changes -=============== - -New user documentation ----------------------- - -- [Reduce memory](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md) - suggests configuration tweaks for running Bitcoin Core on systems with - limited memory. (#16339) - -New RPCs --------- - -- `getbalances` returns an object with all balances (`mine`, - `untrusted_pending` and `immature`). Please refer to the RPC help of - `getbalances` for details. The new RPC is intended to replace - `getbalance`, `getunconfirmedbalance`, and the balance fields in - `getwalletinfo`. These old calls and fields may be removed in a - future version. (#15930, #16239) - -- `setwalletflag` sets and unsets wallet flags that enable or disable - features specific to that existing wallet, such as the new - `avoid_reuse` feature documented elsewhere in these release notes. - (#13756) - -- `getblockfilter` gets the BIP158 filter for the specified block. This - RPC is only enabled if block filters have been created using the - `-blockfilterindex` configuration option. (#14121) - -New settings ------------- - -- `-blockfilterindex` enables the creation of BIP158 block filters for - the entire blockchain. Filters will be created in the background and - currently use about 4 GiB of space. Note: this version of Bitcoin - Core does not serve block filters over the P2P network, although the - local user may obtain block filters using the `getblockfilter` RPC. - (#14121) - -Updated settings ----------------- - -- `whitebind` and `whitelist` now accept a list of permissions to - provide peers connecting using the indicated interfaces or IP - addresses. If no permissions are specified with an address or CIDR - network, the implicit default permissions are the same as previous - releases. See the `bitcoind -help` output for these two options for - details about the available permissions. (#16248) - -- Users setting custom `dbcache` values can increase their setting slightly - without using any more real memory. Recent changes reduced the memory use - by about 9% and made chainstate accounting more accurate (it was underestimating - the use of memory before). For example, if you set a value of "450" before, you - may now set a value of "500" to use about the same real amount of memory. (#16957) - - -Updated RPCs ------------- - -Note: some low-level RPC changes mainly useful for testing are described in the -Low-level Changes section below. - -- `sendmany` no longer has a `minconf` argument. This argument was not - well-specified and would lead to RPC errors even when the wallet's - coin selection succeeded. Users who want to influence coin selection - can use the existing `-spendzeroconfchange`, `-limitancestorcount`, - `-limitdescendantcount` and `-walletrejectlongchains` configuration - arguments. (#15596) - -- `getbalance` and `sendtoaddress`, plus the new RPCs `getbalances` and - `createwallet`, now accept an "avoid_reuse" parameter that controls - whether already used addresses should be included in the operation. - Additionally, `sendtoaddress` will avoid partial spends when - `avoid_reuse` is enabled even if this feature is not already enabled - via the `-avoidpartialspends` command line flag because not doing so - would risk using up the "wrong" UTXO for an address reuse case. - (#13756) - -- RPCs which have an `include_watchonly` argument or `includeWatching` option now default to `true` for watch-only - wallets. Affected RPCs are: `getbalance`, `listreceivedbyaddress`, `listreceivedbylabel`, `listtransactions`, - `listsinceblock`, `gettransaction`, `walletcreatefundedpsbt`, and `fundrawtransaction`. (#16383) - -- `listunspent` now returns a "reused" bool for each output if the - wallet flag "avoid_reuse" is enabled. (#13756) - -- `getblockstats` now uses BlockUndo data instead of the transaction - index, making it much faster, no longer dependent on the `-txindex` - configuration option, and functional for all non-pruned blocks. - (#14802) - -- `utxoupdatepsbt` now accepts a `descriptors` parameter that will fill - out input and output scripts and keys when known. P2SH-witness inputs - will be filled in from the UTXO set when a descriptor is provided that - shows they're spending segwit outputs. See the RPC help text for full - details. (#15427) - -- `sendrawtransaction` and `testmempoolaccept` no longer accept a - `allowhighfees` parameter to fail mempool acceptance if the - transaction fee exceeds the value of the configuration option - `-maxtxfee`. Now there is a hardcoded default maximum feerate that - can be changed when calling either RPC using a `maxfeerate` parameter. - (#15620) - -- `getmempoolancestors`, `getmempooldescendants`, `getmempoolentry`, and - `getrawmempool` no longer return a `size` field unless the - configuration option `-deprecatedrpc=size` is used. Instead a new - `vsize` field is returned with the transaction's virtual size - (consistent with other RPCs such as `getrawtransaction`). (#15637) - -- `getwalletinfo` now includes a `scanning` field that is either `false` - (no scanning) or an object with information about the duration and - progress of the wallet's scanning historical blocks for transactions - affecting its balances. (#15730) - -- `gettransaction` now accepts a third (boolean) argument `verbose`. If - set to `true`, a new `decoded` field will be added to the response containing - the decoded transaction. This field is equivalent to RPC `decoderawtransaction`, - or RPC `getrawtransaction` when `verbose` is passed. (#16185, #16866, #16873) - -- `createwallet` accepts a new `passphrase` parameter. If set, this - will create the new wallet encrypted with the given passphrase. If - unset (the default) or set to an empty string, no encryption will be - used. (#16394) - -- `getchaintxstats` RPC now returns the additional key of - `window_final_block_height`. (#16695) - -- `getmempoolentry` now provides a `weight` field containing the - transaction weight as defined in BIP141. (#16647) - -- The `getnetworkinfo` and `getpeerinfo` commands now contain a new field with decoded network service flags. (#16786) - -- `getdescriptorinfo` now returns an additional `checksum` field - containing the checksum for the unmodified descriptor provided by the - user (that is, before the descriptor is normalized for the - `descriptor` field). (#15986) - -- `joinpsbts` now shuffles the order of the inputs and outputs of the resulting - joined PSBT. Previously, inputs and outputs were added in the order PSBTs were - provided. This made it easy to correlate inputs to outputs, representing a - privacy leak. (#16512) - -- `walletcreatefundedpsbt` now signals BIP125 Replace-by-Fee if the - `-walletrbf` configuration option is set to true. (#15911) - -GUI changes ------------ - -- The GUI wallet now provides bech32 addresses by default. The user may change the address type - during invoice generation using a GUI toggle, or the default address - type may be changed with the `-addresstype` configuration option. - (#15711, #16497) - -- In 0.18.0, a `./configure` flag was introduced to allow disabling BIP70 support in the GUI (support was enabled by default). In 0.19.0, this flag is now __disabled__ by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, you can pass `--enable-bip70` to `./configure`. (#15584) - -Deprecated or removed configuration options -------------------------------------------- - -- `-mempoolreplacement` is removed, although default node behavior - remains the same. This option previously allowed the user to prevent - the node from accepting or relaying BIP125 transaction replacements. - This is different from the remaining configuration option - `-walletrbf`. (#16171) - -Deprecated or removed RPCs --------------------------- - -- `bumpfee` no longer accepts a `totalFee` option unless the - configuration parameter `deprecatedrpc=totalFee` is specified. This - parameter will be fully removed in a subsequent release. (#15996) - -- `bumpfee` has a new `fee_rate` option as a replacement for the deprecated `totalFee`. (#16727) - -- `generate` is now removed after being deprecated in Bitcoin Core 0.18. - Use the `generatetoaddress` RPC instead. (#15492) - -P2P changes ------------ - -- BIP 61 reject messages were deprecated in v0.18. They are now disabled - by default, but can be enabled by setting the `-enablebip61` command - line option. BIP 61 reject messages will be removed entirely in a - future version of Bitcoin Core. (#14054) - -- To eliminate well-known denial-of-service vectors in Bitcoin Core, - especially for nodes with spinning disks, the default value for the - `-peerbloomfilters` configuration option has been changed to false. - This prevents Bitcoin Core from sending the BIP111 NODE_BLOOM service - flag, accepting BIP37 bloom filters, or serving merkle blocks or - transactions matching a bloom filter. Users who still want to provide - bloom filter support may either set the configuration option to true - to re-enable both BIP111 and BIP37 support or enable just BIP37 - support for specific peers using the updated `-whitelist` and - `-whitebind` configuration options described elsewhere in these - release notes. For the near future, lightweight clients using public - BIP111/BIP37 nodes should still be able to connect to older versions - of Bitcoin Core and nodes that have manually enabled BIP37 support, - but developers of such software should consider migrating to either - using specific BIP37 nodes or an alternative transaction filtering - system. (#16152) - -- By default, Bitcoin Core will now make two additional outbound connections that are exclusively used for block-relay. No transactions or addr messages will be processed on these connections. These connections are designed to add little additional memory or bandwidth resource requirements but should make some partitioning attacks more difficult to carry out. (#15759) - -Miscellaneous CLI Changes -------------------------- - -- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to - `chain` and now returns the current network name as defined in BIP70 - (main, test, regtest). (#15566) - -Low-level changes -================= - -RPC ---- - -- `getblockchaininfo` no longer returns a `bip9_softforks` object. - Instead, information has been moved into the `softforks` object and - an additional `type` field describes how Bitcoin Core determines - whether that soft fork is active (e.g. BIP9 or BIP90). See the RPC - help for details. (#16060) - -- `getblocktemplate` no longer returns a `rules` array containing `CSV` - and `segwit` (the BIP9 deployments that are currently in active - state). (#16060) - -- `getrpcinfo` now returns a `logpath` field with the path to - `debug.log`. (#15483) - -Tests ------ - -- The regression test chain enabled by the `-regtest` command line flag - now requires transactions to not violate standard policy by default. - This is the same default used for mainnet and makes it easier to test - mainnet behavior on regtest. Note that the testnet still allows - non-standard txs by default and that the policy can be locally - adjusted with the `-acceptnonstdtxn` command line flag for both test - chains. (#15891) - -Configuration ------------- - -- A setting specified in the default section but not also specified in a - network-specific section (e.g. testnet) will now produce an error - preventing startup instead of just a warning unless the network is - mainnet. This prevents settings intended for mainnet from being - applied to testnet or regtest. (#15629) - -- On platforms supporting `thread_local`, log lines can be prefixed with - the name of the thread that caused the log. To enable this behavior, - use `-logthreadnames=1`. (#15849) - -Network -------- - -- When fetching a transaction announced by multiple peers, previous versions of - Bitcoin Core would sequentially attempt to download the transaction from each - announcing peer until the transaction is received, in the order that those - peers' announcements were received. In this release, the download logic has - changed to randomize the fetch order across peers and to prefer sending - download requests to outbound peers over inbound peers. This fixes an issue - where inbound peers could prevent a node from getting a transaction. - (#14897, #15834) - -- If a Tor hidden service is being used, Bitcoin Core will be bound to - the standard port 8333 even if a different port is configured for - clearnet connections. This prevents leaking node identity through use - of identical non-default port numbers. (#15651) - -Mempool and transaction relay ------------------------------ - -- Allows one extra single-ancestor transaction per package. Previously, - if a transaction in the mempool had 25 descendants, or it and all of - its descendants were over 101,000 vbytes, any newly-received - transaction that was also a descendant would be ignored. Now, one - extra descendant will be allowed provided it is an immediate - descendant (child) and the child's size is 10,000 vbytes or less. - This makes it possible for two-party contract protocols such as - Lightning Network to give each participant an output they can spend - immediately for Child-Pays-For-Parent (CPFP) fee bumping without - allowing one malicious participant to fill the entire package and thus - prevent the other participant from spending their output. (#15681) - -- Transactions with outputs paying v1 to v16 witness versions (future - segwit versions) are now accepted into the mempool, relayed, and - mined. Attempting to spend those outputs remains forbidden by policy - ("non-standard"). When this change has been widely deployed, wallets - and services can accept any valid bech32 Bitcoin address without - concern that transactions paying future segwit versions will become - stuck in an unconfirmed state. (#15846) - -- Legacy transactions (transactions with no segwit inputs) must now be - sent using the legacy encoding format, enforcing the rule specified in - BIP144. (#14039) - -Wallet ------- - -- When in pruned mode, a rescan that was triggered by an `importwallet`, - `importpubkey`, `importaddress`, or `importprivkey` RPC will only fail - when blocks have been pruned. Previously it would fail when `-prune` - has been set. This change allows setting `-prune` to a high value - (e.g. the disk size) without the calls to any of the import RPCs - failing until the first block is pruned. (#15870) - -- When creating a transaction with a fee above `-maxtxfee` (default 0.1 - BTC), the RPC commands `walletcreatefundedpsbt` and - `fundrawtransaction` will now fail instead of rounding down the fee. - Be aware that the `feeRate` argument is specified in BTC per 1,000 - vbytes, not satoshi per vbyte. (#16257) - -- A new wallet flag `avoid_reuse` has been added (default off). When - enabled, a wallet will distinguish between used and unused addresses, - and default to not use the former in coin selection. When setting - this flag on an existing wallet, rescanning the blockchain is required - to correctly mark previously used destinations. Together with "avoid - partial spends" (added in Bitcoin Core v0.17.0), this can eliminate a - serious privacy issue where a malicious user can track spends by - sending small payments to a previously-paid address that would then - be included with unrelated inputs in future payments. (#13756) - -Build system changes --------------------- - -- Python >=3.5 is now required by all aspects of the project. This - includes the build systems, test framework and linters. The previously - supported minimum (3.4), was EOL in March 2019. (#14954) - -- The minimum supported miniUPnPc API version is set to 10. This keeps - compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` - packages. Please note, on Debian this package is still vulnerable to - [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) - (in jessie only) and - [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) - (both in jessie and in stretch). (#15993) - -0.19.0 change log -================= - -### Consensus -- #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs) -- #16060 Bury bip9 deployments (jnewbery) - -### Policy -- #15557 Enhance `bumpfee` to include inputs when targeting a feerate (instagibbs) -- #15846 Make sending to future native witness outputs standard (sipa) - -### Block and transaction handling -- #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery) -- #14121 Index for BIP 157 block filters (jimpo) -- #15141 Rewrite DoS interface between validation and net_processing (sdaftuar) -- #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto) -- #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift) -- #15999 init: Remove dead code in LoadChainTip (MarcoFalke) -- #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift) -- #16056 remove unused magic number from consistency check (instagibbs) -- #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt) -- #15894 Remove duplicated "Error: " prefix in logs (hebasto) -- #14193 validation: Add missing mempool locks (MarcoFalke) -- #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt) -- #15305 [validation] Crash if disconnecting a block fails (sdaftuar) -- #16471 log correct messages when CPFP fails (jnewbery) -- #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke) -- #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact) -- #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt) -- #16854 Prevent UpdateTip log message from being broken up (stevenroose) -- #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke) -- #16713 Ignore old versionbit activations to avoid 'unknown softforks' warning (jnewbery) -- #17002 chainparams: Bump assumed chain params (MarcoFalke) -- #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar) - -### P2P protocol and network code -- #15597 Generate log entry when blocks messages are received unexpectedly (pstratem) -- #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke) -- #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl) -- #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar) -- #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr) -- #16188 Document what happens to getdata of unknown type (MarcoFalke) -- #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli) -- #16152 Disable bloom filtering by default (TheBlueMatt) -- #15993 Drop support of the insecure miniUPnPc versions (hebasto) -- #16197 Use mockable time for tx download (MarcoFalke) -- #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier) -- #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier) -- #16631 Restore default whitelistrelay to true (NicolasDorier) -- #15759 Add 2 outbound block-relay-only connections (sdaftuar) -- #15558 Don't query all DNS seeds at once (sipa) -- #16999 0.19 seeds update (laanwj) - -### Wallet -- #15288 Remove wallet -> node global function calls (ryanofsky) -- #15491 Improve log output for errors during load (gwillen) -- #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof) -- #15680 Remove resendwallettransactions RPC method (jnewbery) -- #15508 Refactor analyzepsbt for use outside RPC code (gwillen) -- #15747 Remove plethora of Get*Balance (MarcoFalke) -- #15728 Refactor relay transactions (jnewbery) -- #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky) -- #15853 Remove unused import checkpoints.h (MarcoFalke) -- #15780 add cachable amounts for caching credit/debit values (kallewoof) -- #15778 Move maxtxfee from node to wallet (jnewbery) -- #15901 log on rescan completion (andrewtoth) -- #15917 Avoid logging no_such_file_or_directory error (promag) -- #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs) -- #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke) -- #15006 Add option to create an encrypted wallet (achow101) -- #16001 Give WalletModel::UnlockContext move semantics (sipa) -- #15741 Batch write imported stuff in importmulti (achow101) -- #16144 do not encrypt wallets with disabled private keys (mrwhythat) -- #15024 Allow specific private keys to be derived from descriptor (meshcollider) -- #13756 "avoid_reuse" wallet flag for improved privacy (kallewoof) -- #16226 Move ismine to the wallet module (achow101) -- #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof) -- #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto) -- #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors) -- #16237 Have the wallet give out destinations instead of keys (achow101) -- #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag) -- #16361 Remove redundant pre-TopUpKeypool check (instagibbs) -- #16244 Move wallet creation out of the createwallet rpc into its own function (achow101) -- #16227 Refactor CWallet's inheritance chain (achow101) -- #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs) -- #16301 Use CWallet::Import* functions in all import* RPCs (achow101) -- #16402 Remove wallet settings from chainparams (MarcoFalke) -- #16415 Get rid of PendingWalletTx class (ryanofsky) -- #15588 Log the actual wallet file version and no longer publicly expose the "version" record (achow101) -- #16399 Improve wallet creation (fjahr) -- #16475 Enumerate walletdb keys (MarcoFalke) -- #15709 Do not add "setting" key as unknown (Bushstar) -- #16451 Remove CMerkleTx (jnewbery) -- #15906 Move min_depth and max_depth to coin control (amitiuttarwar) -- #16502 Drop unused OldKey (promag) -- #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101) -- #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors) -- #16503 Remove p2pEnabled from Chain interface (ariard) -- #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery) -- #14934 Descriptor expansion cache clarifications (Sjors) -- #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55) -- #16542 Return more specific errors about invalid descriptors (achow101) -- #16572 Fix Char as Bool in Wallet (JeremyRubin) -- #16753 extract PubKey from P2PK script with Solver (theStack) -- #16716 Use wallet name instead of pointer on unload/release (promag) -- #16185 gettransaction: add an argument to decode the transaction (darosior) -- #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke) -- #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider) -- #16624 encapsulate transactions state (ariard) -- #16830 Cleanup walletinitinterface.h (hebasto) -- #16796 Fix segfault in CreateWalletFromFile (MarcoFalke) -- #16866 Rename 'decode' argument in gettransaction method to 'verbose' (jnewbery) -- #16727 Explicit feerate for bumpfee (instagibbs) -- #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake) - -### RPC and other APIs -- #15492 remove deprecated generate method (Sjors) -- #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake) -- #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake) -- #15642 Remove deprecated rpc warnings (jnewbery) -- #15637 Rename size to vsize in mempool related calls (fanquake) -- #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke) -- #15616 Clarify decodescript RPCResult doc (MarcoFalke) -- #15669 Fix help text for signtransactionwithXXX (torkelrogstad) -- #15596 Ignore sendmany::minconf as dummy value (MarcoFalke) -- #15755 remove unused var in rawtransaction.cpp (Bushstar) -- #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke) -- #15748 remove dead mining code (jnewbery) -- #15751 Speed up deriveaddresses for large ranges (sipa) -- #15770 Validate maxfeerate with AmountFromValue (promag) -- #15474 rest/rpc: Make mempoolinfo atomic (promag) -- #15463 Speedup getaddressesbylabel (promag) -- #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard) -- #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact) -- #15932 Serialize in getblock without cs_main (MarcoFalke) -- #15930 Add balances RPC (MarcoFalke) -- #15730 Show scanning details in getwalletinfo (promag) -- #14802 faster getblockstats using BlockUndo data (FelixWeis) -- #14984 Speedup getrawmempool when verbose=true (promag) -- #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk) -- #16063 Mention getwalletinfo where a rescan is triggered (promag) -- #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo) -- #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior) -- #15427 Add support for descriptors to utxoupdatepsbt (sipa) -- #16262 Allow shutdown while in generateblocks (pstratem) -- #15483 Adding a 'logpath' entry to getrpcinfo (darosior) -- #16325 Clarify that block count means height excl genesis (MarcoFalke) -- #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery) -- #16332 Add logpath description for getrpcinfo (instagibbs) -- #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof) -- #15996 Deprecate totalfee argument in `bumpfee` (instagibbs) -- #16467 sendrawtransaction help privacy note (jonatack) -- #16596 Fix getblocktemplate CLI example (emilengler) -- #15986 Add checksum to getdescriptorinfo (sipa) -- #16647 add weight to getmempoolentry output (fanquake) -- #16695 Add window final block height to getchaintxstats (leto) -- #16798 Refactor rawtransaction_util's SignTransaction to separate prevtx parsing (achow101) -- #16285 Improve scantxoutset response and help message (promag) -- #16725 Don't show addresses or P2PK in decoderawtransaction (NicolasDorier) -- #16787 Human readable network services (darosior) -- #16251 Improve signrawtransaction error reporting (ajtowns) -- #16873 fix regression in gettransaction (jonatack) -- #16512 Shuffle inputs and outputs after joining psbts (achow101) -- #16521 Use the default maxfeerate value as BTC/kB (Remagpie) -- #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony) -- #17131 fix -rpcclienttimeout 0 option (fjahr) -- #17249 Add missing deque include to fix build (jbeich) -- #17368 cli: fix -getinfo output when compiled with no wallet (fanquake) - -### GUI -- #15464 Drop unused return values in WalletFrame (promag) -- #15614 Defer removeAndDeleteWallet when no modal widget is active (promag) -- #15711 Generate bech32 addresses by default (MarcoFalke) -- #15829 update request payment button text and tab description (fanquake) -- #15874 Resolve the qt/guiutil <-> qt/optionsmodel CD (251Labs) -- #15371 Uppercase bech32 addresses in qr codes (benthecarman) -- #15928 Move QRImageWidget to its own file-pair (luke-jr) -- #16113 move coin control "OK" to the right hand side of the dialog (fanquake) -- #16090 Add vertical spacer to peer detail widget (JosuGZ) -- #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto) -- #16263 Use qInfo() if no error occurs (hebasto) -- #16153 Add antialiasing to traffic graph widget (JosuGZ) -- #16350 Remove unused guard (hebasto) -- #16106 Sort wallets in open wallet menu (promag) -- #16291 Stop translating PACKAGE_NAME (MarcoFalke) -- #16380 Remove unused bits from the service flags enum (MarcoFalke) -- #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto) -- #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke) -- #16436 Do not create payment server if -disablewallet option provided (hebasto) -- #16514 Remove unused RPCConsole::tabFocus (promag) -- #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke) -- #16349 Remove redundant WalletController::addWallet slot (hebasto) -- #16578 Do not pass in command line arguments to QApplication (achow101) -- #16612 Remove menu icons (laanwj) -- #16677 remove unused PlatformStyle::TextColorIcon (fanquake) -- #16694 Ensure transaction send error is always visible (fanquake) -- #14879 Add warning messages to the debug window (hebasto) -- #16708 Replace obsolete functions of QSslSocket (hebasto) -- #16701 Replace functions deprecated in Qt 5.13 (hebasto) -- #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto) -- #16707 Remove obsolete QModelIndex::child() (hebasto) -- #16758 Replace QFontMetrics::width() with TextWidth() (hebasto) -- #16760 Change uninstall icon on Windows (GChuf) -- #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto) -- #16788 Update transifex slug for 0.19 (laanwj) -- #15450 Create wallet menu option (achow101) -- #16735 Remove unused menu items for Windows and Linux (GChuf) -- #16826 Do additional character escaping for wallet names and address labels (achow101) -- #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery) -- #16714 add prune to intro screen with smart default (Sjors) -- #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard) -- #16822 Create wallet menu option follow-ups (jonatack) -- #16882 Re-generate translations before 0.19.0 (MarcoFalke) -- #16928 Rename address checkbox back to bech32 (MarcoFalke) -- #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl) -- #16971 Change default size of intro frame (emilengler) -- #16988 Periodic translations update (laanwj) -- #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101) -- #16952 make sure to update the UI when deleting a transaction (jonasschnelli) -- #17031 Prevent processing duplicate payment requests (promag) -- #17135 Make polling in ClientModel asynchronous (promag) -- #17120 Fix start timer from non QThread (promag) -- #17257 disable font antialiasing for QR image address (fanquake) - -### Build system -- #14954 Require python 3.5 (MarcoFalke) -- #15580 native_protobuf: avoid system zlib (dongcarl) -- #15601 Switch to python3 (take 3) (MarcoFalke) -- #15581 Make less assumptions about build env (dongcarl) -- #14853 latest RapidCheck (fanquake) -- #15446 Improve depends debuggability (dongcarl) -- #13788 Fix --disable-asm for newer assembly checks/code (luke-jr) -- #12051 add missing debian contrib file to tarball (puchu) -- #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift) -- #15978 .gitignore: Don't ignore depends patches (dongcarl) -- #15939 gitian: Remove windows 32 bit build (MarcoFalke) -- #15239 scripts and tools: Move non-linux build source tarballs to "bitcoin-binaries/version" directory (hebasto) -- #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli) -- #16051 add patch to common dependencies (fanquake) -- #16049 switch to secure download of all dependencies (Kemu) -- #16059 configure: Fix thread_local detection (dongcarl) -- #16089 add ability to skip building zeromq (fanquake) -- #15844 Purge libtool archives (dongcarl) -- #15461 update to Boost 1.70 (Sjors) -- #16141 remove GZIP export from gitian descriptors (fanquake) -- #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery) -- #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier) -- #16183 xtrans: Configure flags cleanup (dongcarl) -- #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier) -- #16271 remove -Wall from rapidcheck build flags (fanquake) -- #16309 [MSVC] allow user level project customization (NicolasDorier) -- #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier) -- #15457 Check std::system for -[alert|block|wallet]notify (Sjors) -- #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors) -- #16352 prune dbus from depends (fanquake) -- #16270 expat 2.2.7 (fanquake) -- #16408 Prune X packages (dongcarl) -- #16386 disable unused Qt features (fanquake) -- #16424 Treat -Wswitch as error when --enable-werror (MarcoFalke) -- #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake) -- #16434 Specify AM_CPPFLAGS for ZMQ (domob1812) -- #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar) -- #16573 disable building libsecp256k1 benchmarks (fanquake) -- #16533 disable libxcb extensions (fanquake) -- #16589 Remove unused src/obj-test folder (MarcoFalke) -- #16435 autoconf: Sane `--enable-debug` defaults (dongcarl) -- #16622 echo property tests status during build (jonatack) -- #16611 Remove src/obj directory from repository (laanwj) -- #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake) -- #16654 build: update RapidCheck Makefile (jonatack) -- #16370 cleanup package configure flags (fanquake) -- #16746 msbuild: Ignore linker warning (sipsorcery) -- #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery) -- #16810 guix: Remove ssp spec file hack (dongcarl) -- #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake) -- #16413 Bump QT to LTS release 5.9.8 (THETCR) -- #15584 disable BIP70 support by default (fanquake) -- #16871 make building protobuf optional in depends (fanquake) -- #16879 remove redundant sed patching (fanquake) -- #16809 zlib: Move toolchain options to configure (dongcarl) -- #15146 Solve SmartOS FD_ZERO build issue (Empact) -- #16870 update boost macros to latest upstream for improved error reporting (fanquake) -- #16982 Factor out qt translations from build system (laanwj) -- #16926 Add OpenSSL termios fix for musl libc (nmarley) -- #16927 Refresh ZeroMQ 4.3.1 patch (nmarley) -- #17005 Qt version appears only if GUI is being built (ch4ot1c) -- #16468 Exclude depends/Makefile in .gitignore (promag) - -### Tests and QA -- #15296 Add script checking for deterministic line coverage in unit tests (practicalswift) -- #15338 ci: Build and run tests once on freebsd (MarcoFalke) -- #15479 Add .style.yapf (MarcoFalke) -- #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen) -- #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke) -- #15473 bench: Benchmark mempooltojson (MarcoFalke) -- #15466 Print remaining jobs in test_runner.py (stevenroose) -- #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke) -- #15255 Remove travis_wait from lint script (gkrizek) -- #15686 make pruning test faster (jnewbery) -- #15533 .style.yapf: Set column_limit=160 (MarcoFalke) -- #15660 Overhaul p2p_compactblocks.py (sdaftuar) -- #15495 Add regtests for HTTP status codes (domob1812) -- #15772 Properly log named args in authproxy (MarcoFalke) -- #15771 Prevent concurrency issues reading .cookie file (promag) -- #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke) -- #15629 init: Throw error when network specific config is ignored (MarcoFalke) -- #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke) -- #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke) -- #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke) -- #15352 Reduce noise level in test_bitcoin output (practicalswift) -- #15779 Add wallet_balance benchmark (MarcoFalke) -- #15843 fix outdated include in blockfilter_index_tests (jamesob) -- #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke) -- #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke) -- #15895 Avoid re-reading config.ini unnecessarily (luke-jr) -- #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr) -- #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr) -- #15696 test_runner: Move feature_pruning to base tests (MarcoFalke) -- #15869 Add settings merge test to prevent regresssions (ryanofsky) -- #15758 Add further tests to wallet_balance (MarcoFalke) -- #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke) -- #15949 test_runner: Move pruning back to extended (MarcoFalke) -- #15927 log thread names by default in functional tests (jnewbery) -- #15664 change default Python block serialization to witness (instagibbs) -- #15988 Add test for ArgsManager::GetChainName (ryanofsky) -- #15963 Make random seed logged and settable (jnewbery) -- #15943 Fail if RPC has been added without tests (MarcoFalke) -- #16036 travis: Run all lint scripts even if one fails (scravy) -- #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk) -- #16079 wallet_balance.py: Prevent edge cases (stevenroose) -- #16078 replace tx hash with txid in rawtransaction test (LongShao007) -- #16042 Bump MAX_NODES to 12 (MarcoFalke) -- #16124 Limit Python linting to files in the repo (practicalswift) -- #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift) -- #16214 travis: Fix caching issues (MarcoFalke) -- #15982 Make msg_block a witness block (MarcoFalke) -- #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift) -- #16236 fuzz: Log output even if fuzzer failed (MarcoFalke) -- #15520 cirrus: Run extended test feature_pruning (MarcoFalke) -- #16234 Add test for unknown args (MarcoFalke) -- #16207 stop generating lcov coverage when functional tests fail (asood123) -- #16252 Log to debug.log in all unit tests (MarcoFalke) -- #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli) -- #16278 Remove unused includes (practicalswift) -- #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke) -- #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs) -- #16294 Create at most one testing setup (MarcoFalke) -- #16299 bench: Move generated data to a dedicated translation unit (promag) -- #16329 Add tests for getblockchaininfo.softforks (MarcoFalke) -- #15687 tool wallet test coverage for unexpected writes to wallet (jonatack) -- #16267 bench: Benchmark blocktojson (fanatid) -- #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift) -- #16338 Disable other targets when enable-fuzz is set (qmma70) -- #16334 rpc_users: Also test rpcauth.py with password (dongcarl) -- #15282 Replace hard-coded hex tx with class in test framework (stevenroose) -- #16390 Add --filter option to test_runner.py (promag) -- #15891 Require standard txs in regtest by default (MarcoFalke) -- #16374 Enable passing wildcard test names to test runner from root (jonatack) -- #16420 Fix race condition in wallet_encryption test (jonasschnelli) -- #16422 remove redundant setup in addrman_tests (zenosage) -- #16438 travis: Print memory and number of cpus (MarcoFalke) -- #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr) -- #16459 Fix race condition in example_test.py (sdaftuar) -- #16464 Ensure we don't generate a too-big block in p2sh sigops test (sdaftuar) -- #16491 fix deprecated log.warn in feature_dbcrash test (jonatack) -- #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift) -- #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery) -- #16293 Make test cases separate functions (MarcoFalke) -- #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke) -- #16277 Suppress output in test_bitcoin for expected errors (gertjaap) -- #16493 Fix test failures (MarcoFalke) -- #16538 Add missing sync_blocks to feature_pruning (MarcoFalke) -- #16509 Adapt test framework for chains other than "regtest" (MarcoFalke) -- #16363 Add test for BIP30 duplicate tx (MarcoFalke) -- #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke) -- #16554 only include and use OpenSSL where it's actually needed (BIP70) (fanquake) -- #16598 Remove confusing hash256 function in util (elichai) -- #16595 travis: Use extended 90 minute timeout when available (MarcoFalke) -- #16563 Add unit test for AddTimeData (mzumsande) -- #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift) -- #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke) -- #16582 Rework ci (Use travis only as fallback env) (MarcoFalke) -- #16633 travis: Fix test_runner.py timeouts (MarcoFalke) -- #16646 Run tests with UPnP disabled (fanquake) -- #16623 ci: Add environment files for all settings (MarcoFalke) -- #16656 fix rpc_setban.py race (jonasschnelli) -- #16570 Make descriptor tests deterministic (davereikher) -- #16404 Test ZMQ notification after chain reorg (promag) -- #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift) -- #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke) -- #16767 Check for codespell in lint-spelling.sh (kristapsk) -- #16768 Make lint-includes.sh work from any directory (kristapsk) -- #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact) -- #16804 Remove unused try-block in assert_debug_log (MarcoFalke) -- #16850 `servicesnames` field in `getpeerinfo` and `getnetworkinfo` (darosior) -- #16551 Test that low difficulty chain fork is rejected (MarcoFalke) -- #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke) -- #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke) -- #16888 Bump timeouts in slow running tests (MarcoFalke) -- #16864 Add python bech32 impl round-trip test (instagibbs) -- #16865 add some unit tests for merkle.cpp (soroosh-sdi) -- #14696 Add explicit references to related CVE's in p2p_invalid_block test (lucash-dev) -- #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke) -- #16898 Remove connect_nodes_bi (MarcoFalke) -- #16917 Move common function assert_approx() into util.py (fridokus) -- #16921 Add information on how to add Vulture suppressions (practicalswift) -- #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke) -- #16918 Make PORT_MIN in test runner configurable (MarcoFalke) -- #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke) -- #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack) -- #16959 ci: Set $host before setting fallback values (MarcoFalke) -- #16961 Remove python dead code linter (laanwj) -- #16931 add unittests for CheckProofOfWork (soroosh-sdi) -- #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj) -- #16987 Correct docstring param name (jbampton) -- #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke) -- #17006 Enable UBSan for Travis fuzzing job (practicalswift) -- #17086 Fix fs_tests for unknown locales (carnhofdaki) -- #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke) -- #16742 test: add executable flag for wallet_watchonly.py (theStack) -- #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740) - -### Miscellaneous -- #15335 Fix lack of warning of unrecognized section names (AkioNak) -- #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke) -- #15609 scripts and tools: Set 'distro' explicitly (hebasto) -- #15519 Add Poly1305 implementation (jonasschnelli) -- #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke) -- #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas) -- #15920 lint: Check that all wallet args are hidden (MarcoFalke) -- #15849 Thread names in logs and deadlock debug tools (jamesob) -- #15650 Handle the result of posix_fallocate system call (lucayepa) -- #15766 scripts and tools: Upgrade gitian image before signing (hebasto) -- #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli) -- #15968 Fix portability issue with pthreads (grim-trigger) -- #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye) -- #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto) -- #15224 Add RNG strengthening (10ms once every minute) (sipa) -- #15840 Contrib scripts: Filter IPv6 by ASN (abitfan) -- #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto) -- #15236 scripts and tools: Make --setup command independent (hebasto) -- #16114 contrib: Add curl as a required program in gitian-build.py (fanquake) -- #16046 util: Add type safe gettime (MarcoFalke) -- #15703 Update secp256k1 subtree to latest upstream (sipa) -- #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake) -- #16130 Don't GPG sign intermediate commits with github-merge tool (stevenroose) -- #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake) -- #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj) -- #16112 util: Log early messages (MarcoFalke) -- #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj) -- #16300 util: Explain why the path is cached (MarcoFalke) -- #16314 scripts and tools: Update copyright_header.py script (hebasto) -- #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random) -- #14734 fix an undefined behavior in uint::SetHex (kazcw) -- #16327 scripts and tools: Update ShellCheck linter (hebasto) -- #15277 contrib: Enable building in guix containers (dongcarl) -- #16362 Add bilingual_str type (hebasto) -- #16481 logs: add missing space (harding) -- #16581 sipsorcery gitian key (sipsorcery) -- #16566 util: Refactor upper/lowercase functions (kallewoof) -- #16620 util: Move resolveerrmsg to util/error (MarcoFalke) -- #16625 scripts: Remove github-merge.py (fanquake) -- #15864 Fix datadir handling (hebasto) -- #16670 util: Add join helper to join a list of strings (MarcoFalke) -- #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake) -- #16730 Support serialization of `std::vector` (sipa) -- #16556 Fix systemd service file configuration directory setup (setpill) -- #15615 Add log output during initial header sync (jonasschnelli) -- #16774 Avoid unnecessary "Synchronizing blockheaders" log messages (jonasschnelli) -- #16489 log: harmonize bitcoind logging (jonatack) -- #16577 util: Cbufferedfile fixes and unit test (LarryRuane) -- #16984 util: Make thread names shorter (hebasto) -- #17038 Don't rename main thread at process level (laanwj) -- #17184 util: Filter out macos process serial number (hebasto) -- #17095 util: Filter control characters out of log messages (laanwj) -- #17085 init: Change fallback locale to C.UTF-8 (laanwj) -- #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus) -- #17449 fix uninitialized variable nMinerConfirmationWindow (bitcoinVBR) - -### Documentation -- #15514 Update Transifex links (fanquake) -- #15513 add "sections" info to example bitcoin.conf (fanquake) -- #15530 Move wallet lock annotations to header (MarcoFalke) -- #15562 remove duplicate clone step in build-windows.md (fanquake) -- #15565 remove release note fragments (fanquake) -- #15444 Additional productivity tips (Sjors) -- #15577 Enable TLS in link to chris.beams.io (JeremyRand) -- #15604 release note for disabling reject messages by default (jnewbery) -- #15611 Add Gitian key for droark (droark) -- #15626 Update ACK description in CONTRIBUTING.md (jonatack) -- #15603 Add more tips to productivity.md (gwillen) -- #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar) -- #15685 rpc-mining: Clarify error messages (MarcoFalke) -- #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke) -- #15659 fix findFork comment (r8921039) -- #15718 Improve netaddress comments (dongcarl) -- #15833 remove out-of-date comment on pay-to-witness support (r8921039) -- #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke) -- #15267 explain AcceptToMemoryPoolWorker's coins_to_uncache (jamesob) -- #15887 Align code example style with clang-format (hebasto) -- #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon) -- #15908 Align MSVC build options with Linux build ones (hebasto) -- #15941 Add historical release notes for 0.18.0 (laanwj) -- #15794 Clarify PR guidelines w/re documentation (dongcarl) -- #15607 Release process updates (jonatack) -- #14364 Clarify -blocksdir usage (sangaman) -- #15777 Add doxygen comments for keypool classes (jnewbery) -- #15820 Add productivity notes for dummy rebases (dongcarl) -- #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke) -- #16080 build/doc: update bitcoin_config.h packages, release process (jonatack) -- #16047 analyzepsbt description in doc/psbt.md (jonatack) -- #16039 add release note for 14954 (fanquake) -- #16139 Add riscv64 to outputs list in release-process.md (JeremyRand) -- #16140 create security policy (narula) -- #16164 update release process for SECURITY.md (jonatack) -- #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke) -- #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact) -- #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke) -- #16196 Add release notes for 14897 & 15834 (MarcoFalke) -- #16241 add rapidcheck to vcpkg install list (fanquake) -- #16243 Remove travis badge from readme (MarcoFalke) -- #16256 remove orphaned header in developer notes (jonatack) -- #15964 Improve build-osx document formatting (giulio92) -- #16313 Fix broken link in doc/build-osx.md (jonatack) -- #16330 Use placeholder instead of key expiration date (hebasto) -- #16339 add reduce-memory.md (fanquake) -- #16347 Include static members in Doxygen (dongcarl) -- #15824 Improve netbase comments (dongcarl) -- #16430 Update bips 35, 37 and 111 status (MarcoFalke) -- #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke) -- #16484 update labels in CONTRIBUTING.md (MarcoFalke) -- #16483 update Python command in msvc readme (sipsorcery) -- #16504 Add release note for the deprecated totalFee option of bumpfee (promag) -- #16448 add note on precedence of options in bitcoin.conf (fanquake) -- #16536 Update and extend benchmarking.md (ariard) -- #16530 Fix grammar and punctuation in developer notes (Tech1k) -- #16574 Add historical release notes for 0.18.1 (laanwj) -- #16585 Update Markdown syntax for bdb packages (emilengler) -- #16586 Mention other ways to conserve memory on compilation (MarcoFalke) -- #16605 Add missing contributor to 0.18.1 release notes (meshcollider) -- #16615 Fix typos in COPYRIGHT (gapeman) -- #16626 Fix spelling error chache -> cache (nilswloewen) -- #16587 Improve versionbits.h documentation (ariard) -- #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto) -- #16634 Refer in rpcbind doc to the manpage (MarcoFalke) -- #16555 mention whitelist is inbound, and applies to blocksonly (Sjors) -- #16645 initial RapidCheck property-based testing documentation (jonatack) -- #16691 improve depends prefix documentation (fanquake) -- #16629 Add documentation for the new whitelist permissions (NicolasDorier) -- #16723 Update labels in CONTRIBUTING.md (hebasto) -- #16461 Tidy up shadowing section (promag) -- #16621 add default bitcoin.conf locations (GChuf) -- #16752 Delete stale URL in test README (michaelfolkson) -- #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke) -- #16806 Add issue templates for bug and feature request (MarcoFalke) -- #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly) -- #16863 Add a missing closing parenthesis in the bitcoin-wallet's help (darosior) -- #16757 CChainState return values (MarcoFalke) -- #16847 add comments clarifying how local services are advertised (jamesob) -- #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c) -- #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs) -- #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke) -- #16914 Update homebrew instruction for doxygen (Sjors) -- #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c) -- #16960 replace outdated OpenSSL comment in test README (fanquake) -- #16968 Remove MSVC update step from translation process (laanwj) -- #16953 Improve test READMEs (fjahr) -- #16962 Put PR template in comments (laanwj) -- #16397 Clarify includeWatching for fundrawtransaction (stevenroose) -- #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner) -- #16997 Update bips.md for 0.19 (laanwj) -- #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke) -- #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke) -- #17111 update bips.md with buried BIP9 deployments (MarcoFalke) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 251 -- Aaron Clauson -- Akio Nakamura -- Alistair Mann -- Amiti Uttarwar -- Andrew Chow -- andrewtoth -- Anthony Towns -- Antoine Riard -- Aseem Sood -- Ben Carman -- Ben Woosley -- bpay -- Carl Dong -- Carnhof Daki -- Chris Capobianco -- Chris Moore -- Chuf -- clashic -- clashicly -- Cory Fields -- Daki Carnhof -- Dan Gershony -- Daniel Edgecumbe -- Daniel Kraft -- Daniel McNally -- darosior -- David A. Harding -- David Reikher -- Douglas Roark -- Elichai Turkel -- Emil -- Emil Engler -- ezegom -- Fabian Jahr -- fanquake -- Felix Weis -- Ferdinando M. Ametrano -- fridokus -- gapeman -- GChuf -- Gert-Jaap Glasbergen -- Giulio Lombardo -- Glenn Willen -- Graham Krizek -- Gregory Sanders -- grim-trigger -- gwillen -- Hennadii Stepanov -- Jack Mallers -- James Hilliard -- James O'Beirne -- Jan Beich -- Jeremy Rubin -- JeremyRand -- Jim Posen -- John Bampton -- John Newbery -- Jon Atack -- Jon Layton -- Jonas Schnelli -- Jonathan "Duke" Leto -- João Barbosa -- Joonmo Yang -- Jordan Baczuk -- Jorge Timón -- Josu Goñi -- Julian Fleischer -- Karl-Johan Alm -- Kaz Wesley -- keepkeyjon -- Kirill Fomichev -- Kristaps Kaupe -- Kristian Kramer -- Larry Ruane -- Lenny Maiorani -- LongShao007 -- Luca Venturini -- lucash-dev -- Luke Dashjr -- marcoagner -- MarcoFalke -- marcuswin -- Martin Ankerl -- Martin Zumsande -- Matt Corallo -- MeshCollider -- Michael Folkson -- Miguel Herranz -- Nathan Marley -- Neha Narula -- nicolas.dorier -- Nils Loewen -- nkostoulas -- NullFunctor -- orient -- Patrick Strateman -- Peter Bushnell -- Peter Wagner -- Pieter Wuille -- practicalswift -- qmma -- r8921039 -- RJ Rybarczyk -- Russell Yanofsky -- Samuel Dobson -- Sebastian Falbesoner -- setpill -- shannon1916 -- Sjors Provoost -- soroosh-sdi -- Steven Roose -- Suhas Daftuar -- tecnovert -- THETCR -- Tim Ruffing -- Tobias Kaderle -- Torkel Rogstad -- Ulrich Kempken -- whythat -- William Casarin -- Wladimir J. van der Laan -- zenosage - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.19.0.md b/doc/release-notes/release-notes-0.19.0.md deleted file mode 100644 index 086491e92dea8..0000000000000 --- a/doc/release-notes/release-notes-0.19.0.md +++ /dev/null @@ -1,6 +0,0 @@ -0.19.0 note ------------ - -Due to a last-minute issue (#17449), 0.19.0, although it was tagged, was never released. - -See the release notes for 0.19.0.1 instead. diff --git a/doc/release-notes/release-notes-0.19.1.md b/doc/release-notes/release-notes-0.19.1.md deleted file mode 100644 index 5746bebb0d2cd..0000000000000 --- a/doc/release-notes/release-notes-0.19.1.md +++ /dev/null @@ -1,115 +0,0 @@ -0.19.1 Release Notes -=============================== - -Bitcoin Core version 0.19.1 is now available from: - - - -This minor release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the datadir needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems using -the Linux kernel, macOS 10.10+, and Windows 7 and newer. It is not recommended -to use Bitcoin Core on unsupported systems. - -Bitcoin Core should also work on most other Unix-like systems but is not -as frequently tested on them. - -From Bitcoin Core 0.17.0 onwards, macOS versions earlier than 10.10 are no -longer supported, as Bitcoin Core is now built using Qt 5.9.x which requires -macOS 10.10+. Additionally, Bitcoin Core does not yet change appearance when -macOS "dark mode" is activated. - -In addition to previously supported CPU platforms, this release's pre-compiled -distribution provides binaries for the RISC-V platform. - -0.19.1 change log -================= - -### Wallet -- #17643 Fix origfee return for bumpfee with feerate arg (instagibbs) -- #16963 Fix `unique_ptr` usage in boost::signals2 (promag) -- #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas, mchrostowski) -- #17924 Bug: IsUsedDestination shouldn't use key id as script id for ScriptHash (instagibbs) -- #17621 IsUsedDestination should count any known single-key address (instagibbs) -- #17843 Reset reused transactions cache (fjahr) - -### RPC and other APIs -- #17687 cli: Fix fatal leveldb error when specifying -blockfilterindex=basic twice (brakmic) -- #17728 require second argument only for scantxoutset start action (achow101) -- #17445 zmq: Fix due to invalid argument and multiple notifiers (promag) -- #17524 psbt: handle unspendable psbts (achow101) -- #17156 psbt: check that various indexes and amounts are within bounds (achow101) - -### GUI -- #17427 Fix missing qRegisterMetaType for `size_t` (hebasto) -- #17695 disable File-\>CreateWallet during startup (fanquake) -- #17634 Fix comparison function signature (hebasto) -- #18062 Fix unintialized WalletView::progressDialog (promag) - -### Tests and QA -- #17416 Appveyor improvement - text file for vcpkg package list (sipsorcery) -- #17488 fix "bitcoind already running" warnings on macOS (fanquake) -- #17980 add missing #include to fix compiler errors (kallewoof) - -### Platform support -- #17736 Update msvc build for Visual Studio 2019 v16.4 (sipsorcery) -- #17364 Updates to appveyor config for VS2019 and Qt5.9.8 + msvc project fixes (sipsorcery) -- #17887 bug-fix macos: give free bytes to `F_PREALLOCATE` (kallewoof) - -### Miscellaneous -- #17897 init: Stop indexes on shutdown after ChainStateFlushed callback (jimpo) -- #17450 util: Add missing headers to util/fees.cpp (hebasto) -- #17654 Unbreak build with Boost 1.72.0 (jbeich) -- #17857 scripts: Fix symbol-check & security-check argument passing (fanquake) -- #17762 Log to net category for exceptions in ProcessMessages (laanwj) -- #18100 Update univalue subtree (MarcoFalke) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Aaron Clauson -- Adam Jonas -- Andrew Chow -- Fabian Jahr -- fanquake -- Gregory Sanders -- Harris -- Hennadii Stepanov -- Jan Beich -- Jim Posen -- João Barbosa -- Karl-Johan Alm -- Luke Dashjr -- MarcoFalke -- Michael Chrostowski -- Russell Yanofsky -- Wladimir J. van der Laan - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.20.0.md b/doc/release-notes/release-notes-0.20.0.md deleted file mode 100644 index 6fc1606b37d51..0000000000000 --- a/doc/release-notes/release-notes-0.20.0.md +++ /dev/null @@ -1,987 +0,0 @@ -0.20.0 Release Notes -==================== - -Bitcoin Core version 0.20.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no -longer supported. Additionally, Bitcoin Core does not yet change appearance -when macOS "dark mode" is activated. - -Known Bugs -========== - -The process for generating the source code release ("tarball") has changed in an -effort to make it more complete, however, there are a few regressions in -this release: - -- The generated `configure` script is currently missing, and you will need to - install autotools and run `./autogen.sh` before you can run - `./configure`. This is the same as when checking out from git. - -- Instead of running `make` simply, you should instead run - `BITCOIN_GENBUILD_NO_GIT=1 make`. - -Notable changes -=============== - -P2P and network changes ------------------------ - -#### Removal of BIP61 reject network messages from Bitcoin Core - -The `-enablebip61` command line option to enable BIP61 has been removed. -(#17004) - -This feature has been disabled by default since Bitcoin Core version 0.18.0. -Nodes on the network can not generally be trusted to send valid messages -(including reject messages), so this should only ever be used when -connected to a trusted node. Please use the alternatives recommended -below if you rely on this removed feature: - -- Testing or debugging of implementations of the Bitcoin P2P network protocol - should be done by inspecting the log messages that are produced by a recent - version of Bitcoin Core. Bitcoin Core logs debug messages - (`-debug=`) to a stream (`-printtoconsole`) or to a file - (`-debuglogfile=`). - -- Testing the validity of a block can be achieved by specific RPCs: - - - `submitblock` - - - `getblocktemplate` with `'mode'` set to `'proposal'` for blocks with - potentially invalid POW - -- Testing the validity of a transaction can be achieved by specific RPCs: - - - `sendrawtransaction` - - - `testmempoolaccept` - -- Wallets should not assume a transaction has propagated to the network - just because there are no reject messages. Instead, listen for the - transaction to be announced by other peers on the network. Wallets - should not assume a lack of reject messages means a transaction pays - an appropriate fee. Instead, set fees using fee estimation and use - replace-by-fee to increase a transaction's fee if it hasn't confirmed - within the desired amount of time. - -The removal of BIP61 reject message support also has the following minor RPC -and logging implications: - -- `testmempoolaccept` and `sendrawtransaction` no longer return the P2P reject - code when a transaction is not accepted to the mempool. They still return the - verbal reject reason. - -- Log messages that previously reported the reject code when a transaction was - not accepted to the mempool now no longer report the reject code. The reason - for rejection is still reported. - -Updated RPCs ------------- - -- The RPCs which accept descriptors now accept the new `sortedmulti(...)` descriptor - type which supports multisig scripts where the public keys are sorted - lexicographically in the resulting script. (#17056) - -- The `walletprocesspsbt` and `walletcreatefundedpsbt` RPCs now include - BIP32 derivation paths by default for public keys if we know them. - This can be disabled by setting the `bip32derivs` parameter to - `false`. (#17264) - -- The `bumpfee` RPC's parameter `totalFee`, which was deprecated in - 0.19, has been removed. (#18312) - -- The `bumpfee` RPC will return a PSBT when used with wallets that have - private keys disabled. (#16373) - -- The `getpeerinfo` RPC now includes a `mapped_as` field to indicate the - mapped Autonomous System used for diversifying peer selection. See the - `-asmap` configuration option described below in _New Settings_. (#16702) - -- The `createmultisig` and `addmultisigaddress` RPCs now return an - output script descriptor for the newly created address. (#18032) - -Build System ------------- - -- OpenSSL is no longer used by Bitcoin Core. (#17265) - -- BIP70 support has been fully removed from Bitcoin Core. The - `--enable-bip70` option remains, but it will throw an error during configure. - (#17165) - -- glibc 2.17 or greater is now required to run the release binaries. This - retains compatibility with RHEL 7, CentOS 7, Debian 8 and Ubuntu 14.04 LTS. (#17538) - -- The source code archives that are provided with gitian builds no longer contain - any autotools artifacts. Therefore, to build from such source, a user - should run the `./autogen.sh` script from the root of the unpacked archive. - This implies that `autotools` and other required packages are installed on the - user's system. (#18331) - -New settings ------------- - -- New `rpcwhitelist` and `rpcwhitelistdefault` configuration parameters - allow giving certain RPC users permissions to only some RPC calls. - (#12763) - -- A new `-asmap` configuration option has been added to diversify the - node's network connections by mapping IP addresses Autonomous System - Numbers (ASNs) and then limiting the number of connections made to any - single ASN. See [issue #16599](https://github.com/bitcoin/bitcoin/issues/16599), - [PR #16702](https://github.com/bitcoin/bitcoin/pull/16702), and the - `bitcoind help` for more information. This option is experimental and - subject to removal or breaking changes in future releases, so the - legacy /16 prefix mapping of IP addresses remains the default. (#16702) - -Updated settings ----------------- - -- All custom settings configured when Bitcoin Core starts are now - written to the `debug.log` file to assist troubleshooting. (#16115) - -- Importing blocks upon startup via the `bootstrap.dat` file no longer - occurs by default. The file must now be specified with - `-loadblock=`. (#17044) - -- The `-debug=db` logging category has been renamed to - `-debug=walletdb` to distinguish it from `coindb`. The `-debug=db` - option has been deprecated and will be removed in the next major - release. (#17410) - -- The `-walletnotify` configuration parameter will now replace any `%w` - in its argument with the name of the wallet generating the - notification. This is not supported on Windows. (#13339) - -Removed settings ----------------- - -- The `-whitelistforcerelay` configuration parameter has been removed after - it was discovered that it was rendered ineffective in version 0.13 and - hasn't actually been supported for almost four years. (#17985) - -GUI changes ------------ - -- The "Start Bitcoin Core on system login" option has been removed on macOS. - (#17567) - -- In the Peers window, the details for a peer now displays a `Mapped AS` - field to indicate the mapped Autonomous System used for diversifying - peer selection. See the `-asmap` configuration option in _New - Settings_, above. (#18402) - -- A "known bug" [announced](https://bitcoincore.org/en/releases/0.18.0/#wallet-gui) - in the release notes of version 0.18 has been fixed. The issue - affected anyone who simultaneously used multiple Bitcoin Core wallets - and the GUI coin control feature. (#18894) - -- For watch-only wallets, creating a new transaction in the Send screen - or fee bumping an existing transaction in the Transactions screen will - automatically copy a Partially-Signed Bitcoin Transaction (PSBT) to - the system clipboard. This can then be pasted into an external - program such as [HWI](https://github.com/bitcoin-core/HWI) for - signing. Future versions of Bitcoin Core should support a GUI option - for finalizing and broadcasting PSBTs, but for now the debug console - may be used with the `finalizepsbt` and `sendrawtransaction` RPCs. - (#16944, #17492) - -Wallet ------- - -- The wallet now by default uses bech32 addresses when using RPC, and - creates native segwit change outputs. (#16884) - -- The way that output trust was computed has been fixed, which affects - confirmed/unconfirmed balance status and coin selection. (#16766) - -- The `gettransaction`, `listtransactions` and `listsinceblock` RPC - responses now also include the height of the block that contains the - wallet transaction, if any. (#17437) - -- The `getaddressinfo` RPC has had its `label` field deprecated - (re-enable for this release using the configuration parameter - `-deprecatedrpc=label`). The `labels` field is altered from returning - JSON objects to returning a JSON array of label names (re-enable - previous behavior for this release using the configuration parameter - `-deprecatedrpc=labelspurpose`). Backwards compatibility using the - deprecated configuration parameters is expected to be dropped in the - 0.21 release. (#17585, #17578) - -Documentation changes ---------------------- - -- Bitcoin Core's automatically-generated source code documentation is - now available at https://doxygen.bitcoincore.org. (#17596) - -Low-level changes -================= - -Utilities ---------- - -- The `bitcoin-cli` utility used with the `-getinfo` parameter now - returns a `headers` field with the number of downloaded block headers - on the best headers chain (similar to the `blocks` field that is also - returned) and a `verificationprogress` field that estimates how much - of the best block chain has been synced by the local node. The - information returned no longer includes the `protocolversion`, - `walletversion`, and `keypoololdest` fields. (#17302, #17650) - -- The `bitcoin-cli` utility now accepts a `-stdinwalletpassphrase` - parameter that can be used when calling the `walletpassphrase` and - `walletpassphrasechange` RPCs to read the passphrase from standard - input without echoing it to the terminal, improving security against - anyone who can look at your screen. The existing `-stdinrpcpass` - parameter is also updated to not echo the passphrase. (#13716) - -Command line ------------- - -- Command line options prefixed with main/test/regtest network names like - `-main.port=8333` `-test.server=1` previously were allowed but ignored. Now - they trigger "Invalid parameter" errors on startup. (#17482) - -New RPCs --------- - -- The `dumptxoutset` RPC outputs a serialized snapshot of the current - UTXO set. A script is provided in the `contrib/devtools` directory - for generating a snapshot of the UTXO set at a particular block - height. (#16899) - -- The `generatetodescriptor` RPC allows testers using regtest mode to - generate blocks that pay an arbitrary output script descriptor. - (#16943) - -Updated RPCs ------------- - -- The `verifychain` RPC default values are now static instead of - depending on the command line options or configuration file - (`-checklevel`, and `-checkblocks`). Users can pass in the RPC - arguments explicitly when they don't want to rely on the default - values. (#18541) - -- The `getblockchaininfo` RPC's `verificationprogress` field will no - longer report values higher than 1. Previously it would occasionally - report the chain was more than 100% verified. (#17328) - -Tests ------ - -- It is now an error to use an unqualified `walletdir=path` setting in - the config file if running on testnet or regtest networks. The setting - now needs to be qualified as `chain.walletdir=path` or placed in the - appropriate `[chain]` section. (#17447) - -- `-fallbackfee` was 0 (disabled) by default for the main chain, but - 0.0002 by default for the test chains. Now it is 0 by default for all - chains. Testnet and regtest users will have to add - `fallbackfee=0.0002` to their configuration if they weren't setting it - and they want it to keep working like before. (#16524) - -Build system ------------- - -- Support is provided for building with the Android Native Development - Kit (NDK). (#16110) - -0.20.0 change log -================= - -### Mining -- #18742 miner: Avoid stack-use-after-return in validationinterface (MarcoFalke) - -### Block and transaction handling -- #15283 log: Fix UB with bench on genesis block (instagibbs) -- #16507 feefilter: Compute the absolute fee rather than stored rate (instagibbs) -- #16688 log: Add validation interface logging (jkczyz) -- #16805 log: Add timing information to FlushStateToDisk() (jamesob) -- #16902 O(1) `OP_IF/NOTIF/ELSE/ENDIF` script implementation (sipa) -- #16945 introduce CChainState::GetCoinsCacheSizeState (jamesob) -- #16974 Walk pindexBestHeader back to ChainActive().Tip() if it is invalid (TheBlueMatt) -- #17004 Remove REJECT code from CValidationState (jnewbery) -- #17080 Explain why `fCheckDuplicateInputs` can not be skipped and remove it (MarcoFalke) -- #17328 GuessVerificationProgress: cap the ratio to 1 (darosior) -- #17399 Templatize ValidationState instead of subclassing (jkczyz) -- #17407 node: Add reference to mempool in NodeContext (MarcoFalke) -- #17708 prevector: Avoid misaligned member accesses (ajtowns) -- #17850,#17896,#17957,#18021,#18021,#18112 Serialization improvements (sipa) -- #17925 Improve UpdateTransactionsFromBlock with Epochs (JeremyRubin) -- #18002 Abstract out script execution out of `VerifyWitnessProgram()` (sipa) -- #18388 Make VerifyWitnessProgram use a Span stack (sipa) -- #18433 serialization: prevent int overflow for big Coin::nHeight (pierreN) -- #18500 chainparams: Bump assumed valid hash (MarcoFalke) -- #18551 Do not clear validationinterface entries being executed (sipa) - -### P2P protocol and network code -- #15437 Remove BIP61 reject messages (MarcoFalke) -- #16702 Supply and use asmap to improve IP bucketing in addrman (naumenkogs) -- #16851 Continue relaying transactions after they expire from mapRelay (ajtowns) -- #17164 Avoid allocating memory for addrKnown where we don't need it (naumenkogs) -- #17243 tools: add PoissonNextSend method that returns mockable time (amitiuttarwar) -- #17251 SocketHandler logs peer id for close and disconnect (Sjors) -- #17573 Seed RNG with precision timestamps on receipt of net messages (TheBlueMatt) -- #17624 Fix an uninitialized read in ProcessMessage(…, "tx", …) when receiving a transaction we already have (practicalswift) -- #17754 Don't allow resolving of std::string with embedded NUL characters. Add tests (practicalswift) -- #17758 Fix CNetAddr::IsRFC2544 comment + tests (tynes) -- #17812 config, net, test: Asmap feature refinements and functional tests (jonatack) -- #17951 Use rolling bloom filter of recent block txs for AlreadyHave() check (sdaftuar) -- #17985 Remove forcerelay of rejected txs (MarcoFalke) -- #18023 Fix some asmap issues (sipa) -- #18054 Reference instead of copy in BlockConnected range loop (jonatack) -- #18376 Fix use-after-free in tests (vasild) -- #18454 Make addr relay mockable, add test (MarcoFalke) -- #18458 Add missing `cs_vNodes` lock (MarcoFalke) -- #18506 Hardcoded seeds update for 0.20 (laanwj) -- #18808 Drop unknown types in getdata (jnewbery) -- #18962 Only send a getheaders for one block in an INV (jnewbery) - -### Wallet -- #13339 Replace %w by wallet name in -walletnotify script (promag) -- #15931 Remove GetDepthInMainChain dependency on locked chain interface (ariard) -- #16373 bumpfee: Return PSBT when wallet has privkeys disabled (instagibbs) -- #16524 Disable -fallbackfee by default (jtimon) -- #16766 Make IsTrusted scan parents recursively (JeremyRubin) -- #16884 Change default address type to bech32 (instagibbs) -- #16911 Only check the hash of transactions loaded from disk (achow101) -- #16923 Handle duplicate fileid exception (promag) -- #17056 descriptors: Introduce sortedmulti descriptor (achow101) -- #17070 Avoid showing GUI popups on RPC errors (MarcoFalke) -- #17138 Remove wallet access to some node arguments (jnewbery) -- #17237 LearnRelatedScripts only if KeepDestination (promag) -- #17260 Split some CWallet functions into new LegacyScriptPubKeyMan (achow101) -- #17261 Make ScriptPubKeyMan an actual interface and the wallet to have multiple (achow101) -- #17290 Enable BnB coin selection for preset inputs and subtract fee from outputs (achow101) -- #17373 Various fixes and cleanup to keypool handling in LegacyScriptPubKeyMan and CWallet (achow101) -- #17410 Rename `db` log category to `walletdb` (like `coindb`) (laanwj) -- #17444 Avoid showing GUI popups on RPC errors (take 2) (MarcoFalke) -- #17447 Make -walletdir network only (promag) -- #17537 Cleanup and move opportunistic and superfluous TopUp()s (achow101) -- #17553 Remove out of date comments for CalculateMaximumSignedTxSize (instagibbs) -- #17568 Fix when sufficient preset inputs and subtractFeeFromOutputs (achow101) -- #17677 Activate watchonly wallet behavior for LegacySPKM only (instagibbs) -- #17719 Document better -keypool as a look-ahead safety mechanism (ariard) -- #17843 Reset reused transactions cache (fjahr) -- #17889 Improve CWallet:MarkDestinationsDirty (promag) -- #18034 Get the OutputType for a descriptor (achow101) -- #18067 Improve LegacyScriptPubKeyMan::CanProvide script recognition (ryanofsky) -- #18115 Pass in transactions and messages for signing instead of exporting the private keys (achow101) -- #18192,#18546 Bugfix: Wallet: Safely deal with change in the address book (luke-jr) -- #18204 descriptors: Improve descriptor cache and cache xpubs (achow101) -- #18274 rpc/wallet: Initialize nFeeRequired to avoid using garbage value on failure (kallewoof) -- #18312 Remove deprecated fee bumping by totalFee (jonatack) -- #18338 Fix wallet unload race condition (promag) - -### RPC and other APIs -- #12763 Add RPC Whitelist Feature from #12248 (JeremyRubin) -- #13716 cli: `-stdinwalletpassphrase` and non-echo stdin passwords (kallewoof) -- #16689 Add missing fields to wallet rpc help output (ariard) -- #16821 Fix bug where duplicate PSBT keys are accepted (erasmospunk) -- #16899 UTXO snapshot creation (dumptxoutset) -- #17156 psbt: Check that various indexes and amounts are within bounds (achow101) -- #17264 Set default bip32derivs to true for psbt methods (Sjors) -- #17283 improve getaddressinfo test coverage, help, code docs (jonatack) -- #17302 cli: Add "headers" and "verificationprogress" to -getinfo (laanwj) -- #17318 replace asserts in RPC code with `CHECK_NONFATAL` and add linter (adamjonas) -- #17437 Expose block height of wallet transactions (promag) -- #17519 Remove unused `COINBASE_FLAGS` (narula) -- #17578 Simplify getaddressinfo labels, deprecate previous behavior (jonatack) -- #17585 deprecate getaddressinfo label (jonatack) -- #17746 Remove vector copy from listtransactions (promag) -- #17809 Auto-format RPCResult (MarcoFalke) -- #18032 Output a descriptor in createmultisig and addmultisigaddress (achow101) -- #18122 Update validateaddress RPCExamples to bech32 (theStack) -- #18208 Change RPCExamples to bech32 (yusufsahinhamza) -- #18268 Remove redundant types from descriptions (docallag) -- #18346 Document an RPCResult for all calls; Enforce at compile time (MarcoFalke) -- #18396 Add missing HelpExampleRpc for getblockfilter (theStack) -- #18398 Fix broken RPCExamples for waitforblock(height) (theStack) -- #18444 Remove final comma for last entry of fixed-size arrays/objects in RPCResult (luke-jr) -- #18459 Remove unused getbalances() code (jonatack) -- #18484 Correctly compute redeemScript from witnessScript for signrawtransaction (achow101) -- #18487 Fix rpcRunLater race in walletpassphrase (promag) -- #18499 Make rpc documentation not depend on call-time rpc args (MarcoFalke) -- #18532 Avoid initialization-order-fiasco on static CRPCCommand tables (MarcoFalke) -- #18541 Make verifychain default values static, not depend on global args (MarcoFalke) -- #18809 Do not advertise dumptxoutset as a way to flush the chainstate (MarcoFalke) -- #18814 Relock wallet only if most recent callback (promag) - -### GUI -- #15023 Restore RPC Console to non-wallet tray icon menu (luke-jr) -- #15084 Don't disable the sync overlay when wallet is disabled (benthecarman) -- #15098 Show addresses for "SendToSelf" transactions (hebasto) -- #15756 Add shortcuts for tab tools (promag) -- #16944 create PSBT with watch-only wallet (Sjors) -- #16964 Change sendcoins dialogue Yes to Send (instagibbs) -- #17068 Always generate `bitcoinstrings.cpp` on `make translate` (D4nte) -- #17096 Rename debug window (Zero-1729) -- #17105 Make RPCConsole::TabTypes an enum class (promag) -- #17125 Add toolTip and placeholderText to sign message fields (dannmat) -- #17165 Remove BIP70 support (fanquake) -- #17180 Improved tooltip for send amount field (JeremyCrookshank) -- #17186 Add placeholder text to the sign message field (Danny-Scott) -- #17195 Send amount placeholder value (JeremyCrookshank) -- #17226 Fix payAmount tooltip in SendCoinsEntry (promag) -- #17360 Cleaning up hide button tool tip (Danny-Scott) -- #17446 Changed tooltip for 'Label' & 'Message' text fields to be more clear (dannmat) -- #17453 Fix intro dialog labels when the prune button is toggled (hebasto) -- #17474 Bugfix: GUI: Recognise `NETWORK_LIMITED` in formatServicesStr (luke-jr) -- #17492 Bump fee returns PSBT on clipboard for watchonly-only wallets (instagibbs) -- #17567 Remove macOS start on login code (fanquake) -- #17587 Show watch-only balance in send screen (Sjors) -- #17694 Disable 3rd-party tx-urls when wallet disabled (brakmic) -- #17696 Force set nPruneSize in QSettings after the intro dialog (hebasto) -- #17702 Move static placeholder texts to forms (laanwj) -- #17826 Log Qt related info (hebasto) -- #17886 Restore English translation option (achow101) -- #17906 Set CConnman byte counters earlier to avoid uninitialized reads (ryanofsky) -- #17935 Hide HD & encryption icons when no wallet loaded (brakmic) -- #17998 Shortcut to close ModalOverlay (emilengler) -- #18007 Bugfix: GUI: Hide the HD/encrypt icons earlier so they get re-shown if another wallet is open (luke-jr) -- #18060 Drop PeerTableModel dependency to ClientModel (promag) -- #18062 Fix unintialized WalletView::progressDialog (promag) -- #18091 Pass clientmodel changes from walletframe to walletviews (jonasschnelli) -- #18101 Fix deprecated QCharRef usage (hebasto) -- #18121 Throttle GUI update pace when -reindex (hebasto) -- #18123 Fix race in WalletModel::pollBalanceChanged (ryanofsky) -- #18160 Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged (promag) -- #18360 Bump transifex slug and update English translations for 0.20 (laanwj) -- #18402 Display mapped AS in peers info window (jonatack) -- #18492 Translations update pre-branch (laanwj) -- #18549 Fix Window -> Minimize menu item (hebasto) -- #18578 Fix leak in CoinControlDialog::updateView (promag) -- #18894 Fix manual coin control with multiple wallets loaded (promag) - -### Build system -- #16667 Remove mingw linker workaround from win gitian descriptor (fanquake) -- #16669 Use new fork of osslsigncode for windows gitian signing (fanquake) -- #16949 Only pass --disable-dependency-tracking to packages that understand it (fanquake) -- #17008 Bump libevent to 2.1.11 in depends (stefanwouldgo) -- #17029 gitian: Various improvements for windows descriptor (dongcarl) -- #17033 Disable _FORTIFY_SOURCE when enable-debug (achow101) -- #17057 Switch to upstream libdmg-hfsplus (fanquake) -- #17066 Remove workaround for ancient libtool (hebasto) -- #17074 Added double quotes (mztriz) -- #17087 Add variable printing target to Makefiles (dongcarl) -- #17118 depends macOS: point --sysroot to SDK (Sjors) -- #17231 Fix boost mac cross build with clang 9+ (theuni) -- #17265 Remove OpenSSL (fanquake) -- #17284 Update retry to current version (RandyMcMillan) -- #17308 nsis: Write to correct filename in first place (dongcarl) -- #17324,#18099 Update univalue subtree (MarcoFalke) -- #17398 Update leveldb to 1.22+ (laanwj) -- #17409 Avoid hardcoded libfaketime dir in gitian (MarcoFalke) -- #17466 Fix C{,XX} pickup (dongcarl) -- #17483 Set gitian arch back to amd64 (MarcoFalke) -- #17486 Make Travis catch unused variables (Sjors) -- #17538 Bump minimum libc to 2.17 for release binaries (fanquake) -- #17542 Create test utility library from src/test/util/ (brakmic) -- #17545 Remove libanl.so.1 from ALLOWED_LIBRARIES (fanquake) -- #17547 Fix configure report about qr (hebasto) -- #17569 Allow export of environ symbols and work around rv64 toolchain issue (laanwj) -- #17647 lcov: filter depends from coverage reports (nijynot) -- #17658 Add ability to skip building qrencode (fanquake) -- #17678 Support for S390X and POWER targets (MarcoFalke) -- #17682 util: Update tinyformat to upstream (laanwj) -- #17698 Don't configure `xcb_proto` (fanquake) -- #17730 Remove Qt networking features (fanquake) -- #17738 Remove linking librt for backwards compatibility (fanquake) -- #17740 Remove configure checks for win libraries we don't link against (fanquake) -- #17741 Included `test_bitcoin-qt` in msvc build (sipsorcery) -- #17756 Remove `WINDOWS_BITS` from build system (fanquake) -- #17769 Set `AC_PREREQ` to 2.69 (fanquake) -- #17880 Add -Wdate-time to Werror flags (fanquake) -- #17910 Remove double `LIBBITCOIN_SERVER` linking (fanquake) -- #17928 Consistent use of package variable (Bushstar) -- #17933 guix: Pin Guix using `guix time-machine` (dongcarl) -- #17948 pass -fno-ident in Windows gitian descriptor (fanquake) -- #18003 Remove --large-address-aware linker flag (fanquake) -- #18004 Don't embed a build-id when building libdmg-hfsplus (fanquake) -- #18051 Fix behavior when `ALLOW_HOST_PACKAGES` unset (hebasto) -- #18059 Add missing attributes to Win installer (fanquake) -- #18104 Skip i686 build by default in guix and gitian (MarcoFalke) -- #18107 Add `cov_fuzz` target (MarcoFalke) -- #18135 Add --enable-determinism configure flag (fanquake) -- #18145 Add Wreturn-type to Werror flags, check on more Travis machines (Sjors) -- #18264 Remove Boost Chrono (fanquake) -- #18290 Set minimum Automake version to 1.13 (hebasto) -- #18320 guix: Remove now-unnecessary gcc make flag (dongcarl) -- #18331 Use git archive as source tarball (hebasto) -- #18397 Fix libevent linking for `bench_bitcoin` binary (hebasto) -- #18426 scripts: `Previous_release`: improve behaviour on failed download (theStack) -- #18429 Remove double `LIBBITCOIN_SERVER` from bench-Makefile (brakmic) -- #18528 Create `test_fuzz` library from src/test/fuzz/fuzz.cpp (brakmic) -- #18558 Fix boost detection for arch armv7l (hebasto) -- #18598 gitian: Add missing automake package to gitian-win-signer.yml (achow101) -- #18676 Check libevent minimum version in configure script (hebasto) -- #18945 Ensure source tarball has leading directory name (laanwj) - -### Platform support -- #16110 Add Android NDK support (icota) -- #16392 macOS toolchain update (fanquake) -- #16569 Increase init file stop timeout (setpill) -- #17151 Remove OpenSSL PRNG seeding (Windows, Qt only) (fanquake) -- #17365 Update README.md with working Android targets and API levels (icota) -- #17521 Only use D-Bus with Qt on linux (fanquake) -- #17550 Set minimum supported macOS to 10.12 (fanquake) -- #17592 Appveyor install libevent[thread] vcpkg (sipsorcery) -- #17660 Remove deprecated key from macOS Info.plist (fanquake) -- #17663 Pass `-dead_strip_dylibs` to ld on macOS (fanquake) -- #17676 Don't use OpenGL in Qt on macOS (fanquake) -- #17686 Add `-bind_at_load` to macOS hardened LDFLAGS (fanquake) -- #17787 scripts: Add macho pie check to security-check.py (fanquake) -- #17800 random: don't special case clock usage on macOS (fanquake) -- #17863 scripts: Add macho dylib checks to symbol-check.py (fanquake) -- #17899 msvc: Ignore msvc linker warning and update to msvc build instructions (sipsorcery) -- #17916 windows: Enable heap terminate-on-corruption (fanquake) -- #18082 logging: Enable `thread_local` usage on macos (fanquake) -- #18108 Fix `.gitignore` policy in `build_msvc` directory (hebasto) -- #18295 scripts: Add macho lazy bindings check to security-check.py (fanquake) -- #18358 util: Fix compilation with mingw-w64 7.0.0 (fanquake) -- #18359 Fix sysctl() detection on macOS (fanquake) -- #18364 random: remove getentropy() fallback for macOS < 10.12 (fanquake) -- #18395 scripts: Add pe dylib checking to symbol-check.py (fanquake) -- #18415 scripts: Add macho tests to test-security-check.py (fanquake) -- #18425 releases: Update with new Windows code signing certificate (achow101) -- #18702 Fix ASLR for bitcoin-cli on Windows (fanquake) - -### Tests and QA -- #12134 Build previous releases and run functional tests (Sjors) -- #13693 Add coverage to estimaterawfee and estimatesmartfee (Empact) -- #13728 lint: Run the ci lint stage on mac (Empact) -- #15443 Add getdescriptorinfo functional test (promag) -- #15888 Add `wallet_implicitsegwit` to test the ability to transform keys between address types (luke-jr) -- #16540 Add `ASSERT_DEBUG_LOG` to unit test framework (MarcoFalke) -- #16597 travis: Run full test suite on native macos (Sjors) -- #16681 Use self.chain instead of 'regtest' in all current tests (jtimon) -- #16786 add unit test for wallet watch-only methods involving PubKeys (theStack) -- #16943 Add generatetodescriptor RPC (MarcoFalke) -- #16973 Fix `combine_logs.py` for AppVeyor build (mzumsande) -- #16975 Show debug log on unit test failure (MarcoFalke) -- #16978 Seed test RNG context for each test case, print seed (MarcoFalke) -- #17009, #17018, #17050, #17051, #17071, #17076, #17083, #17093, #17109, #17113, #17136, #17229, #17291, #17357, #17771, #17777, #17917, #17926, #17972, #17989, #17996, #18009, #18029, #18047, #18126, #18176, #18206, #18353, #18363, #18407, #18417, #18423, #18445, #18455, #18565 Add fuzzing harnesses (practicalswift) -- #17011 ci: Use busybox utils for one build (MarcoFalke) -- #17030 Fix Python Docstring to include all Args (jbampton) -- #17041 ci: Run tests on arm (MarcoFalke) -- #17069 Pass fuzzing inputs as constant references (practicalswift) -- #17091 Add test for loadblock option and linearize scripts (fjahr) -- #17108 fix "tx-size-small" errors after default address change (theStack) -- #17121 Speed up `wallet_backup` by whitelisting peers (immediate tx relay) (theStack) -- #17124 Speed up `wallet_address_types` by whitelisting peers (immediate tx relay) (theStack) -- #17140 Fix bug in `blockfilter_index_tests` (jimpo) -- #17199 use default address type (bech32) for `wallet_bumpfee` tests (theStack) -- #17205 ci: Enable address sanitizer (asan) stack-use-after-return checking (practicalswift) -- #17206 Add testcase to simulate bitcoin schema in leveldb (adamjonas) -- #17209 Remove no longer needed UBSan suppressions (issues fixed). Add documentation (practicalswift) -- #17220 Add unit testing for the CompressScript function (adamjonas) -- #17225 Test serialisation as part of deserialisation fuzzing. Test round-trip equality where possible (practicalswift) -- #17228 Add RegTestingSetup to `setup_common` (MarcoFalke) -- #17233 travis: Run unit and functional tests on native arm (MarcoFalke) -- #17235 Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed (practicalswift) -- #17240 ci: Disable functional tests on mac host (MarcoFalke) -- #17254 Fix `script_p2sh_tests` `OP_PUSHBACK2/4` missing (adamjonas) -- #17267 bench: Fix negative values and zero for -evals flag (nijynot) -- #17275 pubkey: Assert CPubKey's ECCVerifyHandle precondition (practicalswift) -- #17288 Added TestWrapper class for interactive Python environments (jachiang) -- #17292 Add new mempool benchmarks for a complex pool (JeremyRubin) -- #17299 add reason checks for non-standard txs in `test_IsStandard` (theStack) -- #17322 Fix input size assertion in `wallet_bumpfee.py` (instagibbs) -- #17327 Add `rpc_fundrawtransaction` logging (jonatack) -- #17330 Add `shrinkdebugfile=0` to regtest bitcoin.conf (sdaftuar) -- #17340 Speed up fundrawtransaction test (jnewbery) -- #17345 Do not instantiate CAddrDB for static call CAddrDB::Read() (hebasto) -- #17362 Speed up `wallet_avoidreuse`, add logging (jonatack) -- #17363 add "diamond" unit test to MempoolAncestryTests (theStack) -- #17366 Reset global args between test suites (MarcoFalke) -- #17367 ci: Run non-cross-compile builds natively (MarcoFalke) -- #17378 TestShell: Fix typos & implement cleanups (jachiang) -- #17384 Create new test library (MarcoFalke) -- #17387 `wallet_importmulti`: use addresses of the same type as being imported (achow101) -- #17388 Add missing newline in `util_ChainMerge` test (ryanofsky) -- #17390 Add `util_ArgParsing` test (ryanofsky) -- #17420 travis: Rework `cache_err_msg` (MarcoFalke) -- #17423 ci: Make ci system read-only on the git work tree (MarcoFalke) -- #17435 check custom ancestor limit in `mempool_packages.py` (theStack) -- #17455 Update valgrind suppressions (practicalswift) -- #17461 Check custom descendant limit in `mempool_packages.py` (theStack) -- #17469 Remove fragile `assert_memory_usage_stable` (MarcoFalke) -- #17470 ci: Use clang-8 for fuzzing to run on aarch64 ci systems (MarcoFalke) -- #17480 Add unit test for non-standard txs with too large scriptSig (theStack) -- #17497 Skip tests when utils haven't been compiled (fanquake) -- #17502 Add unit test for non-standard bare multisig txs (theStack) -- #17511 Add bounds checks before base58 decoding (sipa) -- #17517 ci: Bump to clang-8 for asan build to avoid segfaults on ppc64le (MarcoFalke) -- #17522 Wait until mempool is loaded in `wallet_abandonconflict` (MarcoFalke) -- #17532 Add functional test for non-standard txs with too large scriptSig (theStack) -- #17541 Add functional test for non-standard bare multisig txs (theStack) -- #17555 Add unit test for non-standard txs with wrong nVersion (dspicher) -- #17571 Add `libtest_util` library to msvc build configuration (sipsorcery) -- #17591 ci: Add big endian platform - s390x (elichai) -- #17593 Move more utility functions into test utility library (mzumsande) -- #17633 Add option --valgrind to run the functional tests under Valgrind (practicalswift) -- #17635 ci: Add centos 7 build (hebasto) -- #17641 Add unit test for leveldb creation with unicode path (sipsorcery) -- #17674 Add initialization order fiasco detection in Travis (practicalswift) -- #17675 Enable tests which are incorrectly skipped when running `test_runner.py --usecli` (practicalswift) -- #17685 Fix bug in the descriptor parsing fuzzing harness (`descriptor_parse`) (practicalswift) -- #17705 re-enable CLI test support by using EncodeDecimal in json.dumps() (fanquake) -- #17720 add unit test for non-standard "scriptsig-not-pushonly" txs (theStack) -- #17767 ci: Fix qemu issues (MarcoFalke) -- #17793 ci: Update github actions ci vcpkg cache on msbuild update (hebasto) -- #17806 Change filemode of `rpc_whitelist.py` (emilengler) -- #17849 ci: Fix brew python link (hebasto) -- #17851 Add `std::to_string` to list of locale dependent functions (practicalswift) -- #17893 Fix double-negative arg test (hebasto) -- #17900 ci: Combine 32-bit build with centos 7 build (theStack) -- #17921 Test `OP_CSV` empty stack fail in `feature_csv_activation.py` (theStack) -- #17931 Fix `p2p_invalid_messages` failing in Python 3.8 because of warning (elichai) -- #17947 add unit test for non-standard txs with too large tx size (theStack) -- #17959 Check specific reject reasons in `feature_csv_activation.py` (theStack) -- #17984 Add p2p test for forcerelay permission (MarcoFalke) -- #18001 Updated appveyor job to checkout a specific vcpkg commit ID (sipsorcery) -- #18008 fix fuzzing using libFuzzer on macOS (fanquake) -- #18013 bench: Fix benchmarks filters (elichai) -- #18018 reset fIsBareMultisigStd after bare-multisig tests (fanquake) -- #18022 Fix appveyor `test_bitcoin` build of `*.raw` (MarcoFalke) -- #18037 util: Allow scheduler to be mocked (amitiuttarwar) -- #18056 ci: Check for submodules (emilengler) -- #18069 Replace 'regtest' leftovers by self.chain (theStack) -- #18081 Set a name for CI Docker containers (fanquake) -- #18109 Avoid hitting some known minor tinyformat issues when fuzzing strprintf(…) (practicalswift) -- #18155 Add harness which fuzzes EvalScript and VerifyScript using a fuzzed signature checker (practicalswift) -- #18159 Add --valgrind option to `test/fuzz/test_runner.py` for running fuzzing test cases under valgrind (practicalswift) -- #18166 ci: Run fuzz testing test cases (bitcoin-core/qa-assets) under valgrind to catch memory errors (practicalswift) -- #18172 Transaction expiry from mempool (0xB10C) -- #18181 Remove incorrect assumptions in `validation_flush_tests` (MarcoFalke) -- #18183 Set `catch_system_errors=no` on boost unit tests (MarcoFalke) -- #18195 Add `cost_of_change` parameter assertions to `bnb_search_test` (yancyribbens) -- #18209 Reduce unneeded whitelist permissions in tests (MarcoFalke) -- #18211 Disable mockforward scheduler unit test for now (MarcoFalke) -- #18213 Fix race in `p2p_segwit` (MarcoFalke) -- #18224 Make AnalyzePSBT next role calculation simple, correct (instagibbs) -- #18228 Add missing syncwithvalidationinterfacequeue (MarcoFalke) -- #18247 Wait for both veracks in `add_p2p_connection` (MarcoFalke) -- #18249 Bump timeouts to accomodate really slow disks (MarcoFalke) -- #18255 Add `bad-txns-*-toolarge` test cases to `invalid_txs` (MarcoFalke) -- #18263 rpc: change setmocktime check to use IsMockableChain (gzhao408) -- #18285 Check that `wait_until` returns if time point is in the past (MarcoFalke) -- #18286 Add locale fuzzer to `FUZZERS_MISSING_CORPORA` (practicalswift) -- #18292 fuzz: Add `assert(script == decompressed_script)` (MarcoFalke) -- #18299 Update `FUZZERS_MISSING_CORPORA` to enable regression fuzzing for all harnesses in master (practicalswift) -- #18300 fuzz: Add option to merge input dir to test runner (MarcoFalke) -- #18305 Explain why test logging should be used (MarcoFalke) -- #18306 Add logging to `wallet_listsinceblock.py` (jonatack) -- #18311 Bumpfee test fix (instagibbs) -- #18314 Add deserialization fuzzing of SnapshotMetadata (`utxo_snapshot`) (practicalswift) -- #18319 fuzz: Add missing `ECC_Start` to `key_io` test (MarcoFalke) -- #18334 Add basic test for BIP 37 (MarcoFalke) -- #18350 Fix mining to an invalid target + ensure that a new block has the correct hash internally (TheQuantumPhysicist) -- #18378 Bugfix & simplify bn2vch using `int.to_bytes` (sipa) -- #18393 Don't assume presence of `__builtin_mul_overflow(…)` in `MultiplicationOverflow(…)` fuzzing harness (practicalswift) -- #18406 add executable flag for `rpc_estimatefee.py` (theStack) -- #18420 listsinceblock block height checks (jonatack) -- #18430 ci: Only clone bitcoin-core/qa-assets when fuzzing (MarcoFalke) -- #18438 ci: Use homebrew addon on native macos (hebasto) -- #18447 Add coverage for script parse error in ParseScript (pierreN) -- #18472 Remove unsafe `BOOST_TEST_MESSAGE` (MarcoFalke) -- #18474 check that peer is connected when calling sync_* (MarcoFalke) -- #18477 ci: Use focal for fuzzers (MarcoFalke) -- #18481 add BIP37 'filterclear' test to p2p_filter.py (theStack) -- #18496 Remove redundant `sync_with_ping` after `add_p2p_connection` (jonatack) -- #18509 fuzz: Avoid running over all inputs after merging them (MarcoFalke) -- #18510 fuzz: Add CScriptNum::getint coverage (MarcoFalke) -- #18514 remove rapidcheck integration and tests (fanquake) -- #18515 Add BIP37 remote crash bug [CVE-2013-5700] test to `p2p_filter.py` (theStack) -- #18516 relax bumpfee `dust_to_fee` txsize an extra vbyte (jonatack) -- #18518 fuzz: Extend descriptor fuzz test (MarcoFalke) -- #18519 fuzz: Extend script fuzz test (MarcoFalke) -- #18521 fuzz: Add `process_messages` harness (MarcoFalke) -- #18529 Add fuzzer version of randomized prevector test (sipa) -- #18534 skip backwards compat tests if not compiled with wallet (fanquake) -- #18540 `wallet_bumpfee` assertion fixup (jonatack) -- #18543 Use one node to avoid a race due to missing sync in `rpc_signrawtransaction` (MarcoFalke) -- #18561 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke) -- #18562 ci: Run unit tests sequential once (MarcoFalke) -- #18563 Fix `unregister_all_during_call` cleanup (ryanofsky) -- #18566 Set `-use_value_profile=1` when merging fuzz inputs (MarcoFalke) -- #18757 Remove enumeration of expected deserialization exceptions in ProcessMessage(…) fuzzer (practicalswift) -- #18878 Add test for conflicted wallet tx notifications (ryanofsky) -- #18975 Remove const to work around compiler error on xenial (laanwj) - -### Documentation -- #16947 Doxygen-friendly script/descriptor.h comments (ch4ot1c) -- #16983 Add detailed info about Bitcoin Core files (hebasto) -- #16986 Doxygen-friendly CuckooCache comments (ch4ot1c) -- #17022 move-only: Steps for "before major release branch-off" (MarcoFalke) -- #17026 Update bips.md for default bech32 addresses in 0.20.0 (MarcoFalke) -- #17081 Fix Makefile target in benchmarking.md (theStack) -- #17102 Add missing indexes/blockfilter/basic to doc/files.md (MarcoFalke) -- #17119 Fix broken bitcoin-cli examples (andrewtoth) -- #17134 Add switch on enum example to developer notes (hebasto) -- #17142 Update macdeploy README to include all files produced by `make deploy` (za-kk) -- #17146 github: Add warning for bug reports (laanwj) -- #17157 Added instructions for how to add an upsteam to forked repo (dannmat) -- #17159 Add a note about backporting (carnhofdaki) -- #17169 Correct function name in ReportHardwareRand() (fanquake) -- #17177 Describe log files + consistent paths in test READMEs (fjahr) -- #17239 Changed miniupnp links to https (sandakersmann) -- #17281 Add developer note on `c_str()` (laanwj) -- #17285 Bip70 removal follow-up (fjahr) -- #17286 Fix help-debug -checkpoints (ariard) -- #17309 update MSVC instructions to remove Qt OpenSSL linking (fanquake) -- #17339 Add template for good first issues (michaelfolkson) -- #17351 Fix some misspellings (RandyMcMillan) -- #17353 Add ShellCheck to lint tests dependencies (hebasto) -- #17370 Update doc/bips.md with recent changes in master (MarcoFalke) -- #17393 Added regtest config for linearize script (gr0kchain) -- #17411 Add some better examples for scripted diff (laanwj) -- #17503 Remove bitness from bitcoin-qt help message and manpage (laanwj) -- #17539 Update and improve Developer Notes (hebasto) -- #17561 Changed MiniUPnPc link to https in dependencies.md (sandakersmann) -- #17596 Change doxygen URL to doxygen.bitcoincore.org (laanwj) -- #17598 Update release process with latest changes (MarcoFalke) -- #17617 Unify unix epoch time descriptions (jonatack) -- #17637 script: Add keyserver to verify-commits readme (emilengler) -- #17648 Rename wallet-tool references to bitcoin-wallet (hel-o) -- #17688 Add "ci" prefix to CONTRIBUTING.md (hebasto) -- #17751 Use recommended shebang approach in documentation code block (hackerrdave) -- #17752 Fix directory path for secp256k1 subtree in developer-notes (hackerrdave) -- #17772 Mention PR Club in CONTRIBUTING.md (emilengler) -- #17804 Misc RPC help fixes (MarcoFalke) -- #17819 Developer notes guideline on RPCExamples addresses (jonatack) -- #17825 Update dependencies.md (hebasto) -- #17873 Add to Doxygen documentation guidelines (jonatack) -- #17907 Fix improper Doxygen inline comments (Empact) -- #17942 Improve fuzzing docs for macOS users (fjahr) -- #17945 Fix doxygen errors (Empact) -- #18025 Add missing supported rpcs to doc/descriptors.md (andrewtoth) -- #18070 Add note about `brew doctor` (givanse) -- #18125 Remove PPA note from release-process.md (fanquake) -- #18170 Minor grammatical changes and flow improvements (travinkeith) -- #18212 Add missing step in win deployment instructions (dangershony) -- #18219 Add warning against wallet.dat re-use (corollari) -- #18253 Correct spelling errors in comments (Empact) -- #18278 interfaces: Describe and follow some code conventions (ryanofsky) -- #18283 Explain rebase policy in CONTRIBUTING.md (MarcoFalke) -- #18340 Mention MAKE=gmake workaround when building on a BSD (fanquake) -- #18341 Replace remaining literal BTC with `CURRENCY_UNIT` (domob1812) -- #18342 Add fuzzing quickstart guides for libFuzzer and afl-fuzz (practicalswift) -- #18344 Fix nit in getblockchaininfo (stevenroose) -- #18379 Comment fix merkle.cpp (4d55397500) -- #18382 note the costs of fetching all pull requests (vasild) -- #18391 Update init and reduce-traffic docs for -blocksonly (glowang) -- #18464 Block-relay-only vs blocksonly (MarcoFalke) -- #18486 Explain new test logging (MarcoFalke) -- #18505 Update webchat URLs in README.md (SuriyaaKudoIsc) -- #18513 Fix git add argument (HashUnlimited) -- #18577 Correct scripted-diff example link (yahiheb) -- #18589 Fix naming of macOS SDK and clarify version (achow101) - -### Miscellaneous -- #15600 lockedpool: When possible, use madvise to avoid including sensitive information in core dumps (luke-jr) -- #15934 Merge settings one place instead of five places (ryanofsky) -- #16115 On bitcoind startup, write config args to debug.log (LarryRuane) -- #16117 util: Replace boost sleep with std sleep (MarcoFalke) -- #16161 util: Fix compilation errors in support/lockedpool.cpp (jkczyz) -- #16802 scripts: In linearize, search for next position of magic bytes rather than fail (takinbo) -- #16889 Add some general std::vector utility functions (sipa) -- #17049 contrib: Bump gitian descriptors for 0.20 (MarcoFalke) -- #17052 scripts: Update `copyright_header` script to include additional files (GChuf) -- #17059 util: Simplify path argument for cblocktreedb ctor (hebasto) -- #17191 random: Remove call to `RAND_screen()` (Windows only) (fanquake) -- #17192 util: Add `check_nonfatal` and use it in src/rpc (MarcoFalke) -- #17218 Replace the LogPrint function with a macro (jkczyz) -- #17266 util: Rename decodedumptime to parseiso8601datetime (elichai) -- #17270 Feed environment data into RNG initializers (sipa) -- #17282 contrib: Remove accounts from bash completion (fanquake) -- #17293 Add assertion to randrange that input is not 0 (JeremyRubin) -- #17325 log: Fix log message for -par=1 (hebasto) -- #17329 linter: Strip trailing / in path for git-subtree-check (jnewbery) -- #17336 scripts: Search for first block file for linearize-data with some block files pruned (Rjected) -- #17361 scripts: Lint gitian descriptors with shellcheck (hebasto) -- #17482 util: Disallow network-qualified command line options (ryanofsky) -- #17507 random: mark RandAddPeriodic and SeedPeriodic as noexcept (fanquake) -- #17527 Fix CPUID subleaf iteration (sipa) -- #17604 util: Make schedulebatchpriority advisory only (fanquake) -- #17650 util: Remove unwanted fields from bitcoin-cli -getinfo (malevolent) -- #17671 script: Fixed wget call in gitian-build.py (willyko) -- #17699 Make env data logging optional (sipa) -- #17721 util: Don't allow base58 decoding of non-base58 strings. add base58 tests (practicalswift) -- #17750 util: Change getwarnings parameter to bool (jnewbery) -- #17753 util: Don't allow base32/64-decoding or parsemoney(…) on strings with embedded nul characters. add tests (practicalswift) -- #17823 scripts: Read suspicious hosts from a file instead of hardcoding (sanjaykdragon) -- #18162 util: Avoid potential uninitialized read in `formatiso8601datetime(int64_t)` by checking `gmtime_s`/`gmtime_r` return value (practicalswift) -- #18167 Fix a violation of C++ standard rules where unions are used for type-punning (TheQuantumPhysicist) -- #18225 util: Fail to parse empty string in parsemoney (MarcoFalke) -- #18270 util: Fail to parse whitespace-only strings in parsemoney(…) (instead of parsing as zero) (practicalswift) -- #18316 util: Helpexamplerpc formatting (jonatack) -- #18357 Fix missing header in sync.h (promag) -- #18412 script: Fix `script_err_sig_pushonly` error string (theStack) -- #18416 util: Limit decimal range of numbers parsescript accepts (pierreN) -- #18503 init: Replace `URL_WEBSITE` with `PACKAGE_URL` (MarcoFalke) -- #18526 Remove PID file at the very end (hebasto) -- #18553 Avoid non-trivial global constants in SHA-NI code (sipa) -- #18665 Do not expose and consider `-logthreadnames` when it does not work (hebasto) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 0xb10c -- 251 -- 4d55397500 -- Aaron Clauson -- Adam Jonas -- Albert -- Amiti Uttarwar -- Andrew Chow -- Andrew Toth -- Anthony Towns -- Antoine Riard -- Ava Barron -- Ben Carman -- Ben Woosley -- Block Mechanic -- Brian Solon -- Bushstar -- Carl Dong -- Carnhof Daki -- Cory Fields -- Daki Carnhof -- Dan Gershony -- Daniel Kraft -- dannmat -- Danny-Scott -- darosior -- David O'Callaghan -- Dominik Spicher -- Elichai Turkel -- Emil Engler -- emu -- Fabian Jahr -- fanquake -- Filip Gospodinov -- Franck Royer -- Gastón I. Silva -- gchuf -- Gleb Naumenko -- Gloria Zhao -- glowang -- Gr0kchain -- Gregory Sanders -- hackerrdave -- Harris -- hel0 -- Hennadii Stepanov -- ianliu -- Igor Cota -- James Chiang -- James O'Beirne -- Jan Beich -- Jan Sarenik -- Jeffrey Czyz -- Jeremy Rubin -- JeremyCrookshank -- Jim Posen -- John Bampton -- John L. Jegutanis -- John Newbery -- Jon Atack -- Jon Layton -- Jonas Schnelli -- João Barbosa -- Jorge Timón -- Karl-Johan Alm -- kodslav -- Larry Ruane -- Luke Dashjr -- malevolent -- MapleLaker -- marcaiaf -- MarcoFalke -- Marius Kjærstad -- Mark Erhardt -- Mark Tyneway -- Martin Erlandsson -- Martin Zumsande -- Matt Corallo -- Matt Ward -- Michael Folkson -- Michael Polzer -- Micky Yun Chan -- Neha Narula -- nijynot -- naumenkogs -- NullFunctor -- Peter Bushnell -- pierrenn -- Pieter Wuille -- practicalswift -- randymcmillan -- Rjected -- Russell Yanofsky -- Samer Afach -- Samuel Dobson -- Sanjay K -- Sebastian Falbesoner -- setpill -- Sjors Provoost -- Stefan Richter -- stefanwouldgo -- Steven Roose -- Suhas Daftuar -- Suriyaa Sundararuban -- TheCharlatan -- Tim Akinbo -- Travin Keith -- tryphe -- Vasil Dimov -- Willy Ko -- Wilson Ccasihue S -- Wladimir J. van der Laan -- Yahia Chiheb -- Yancy Ribbens -- Yusuf Sahin HAMZA -- Zakk -- Zero - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.20.1.md b/doc/release-notes/release-notes-0.20.1.md deleted file mode 100644 index 9fbb29cb822f5..0000000000000 --- a/doc/release-notes/release-notes-0.20.1.md +++ /dev/null @@ -1,158 +0,0 @@ -0.20.1 Release Notes -==================== - -Bitcoin Core version 0.20.1 is now available from: - - - -This minor release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no -longer supported. Additionally, Bitcoin Core does not yet change appearance -when macOS "dark mode" is activated. - -Known Bugs -========== - -The process for generating the source code release ("tarball") has changed in an -effort to make it more complete, however, there are a few regressions in -this release: - -- The generated `configure` script is currently missing, and you will need to - install autotools and run `./autogen.sh` before you can run - `./configure`. This is the same as when checking out from git. - -- Instead of running `make` simply, you should instead run - `BITCOIN_GENBUILD_NO_GIT=1 make`. - -Notable changes -=============== - -Changes regarding misbehaving peers ------------------------------------ - -Peers that misbehave (e.g. send us invalid blocks) are now referred to as -discouraged nodes in log output, as they're not (and weren't) strictly banned: -incoming connections are still allowed from them, but they're preferred for -eviction. - -Furthermore, a few additional changes are introduced to how discouraged -addresses are treated: - -- Discouraging an address does not time out automatically after 24 hours - (or the `-bantime` setting). Depending on traffic from other peers, - discouragement may time out at an indeterminate time. - -- Discouragement is not persisted over restarts. - -- There is no method to list discouraged addresses. They are not returned by - the `listbanned` RPC. That RPC also no longer reports the `ban_reason` - field, as `"manually added"` is the only remaining option. - -- Discouragement cannot be removed with the `setban remove` RPC command. - If you need to remove a discouragement, you can remove all discouragements by - stop-starting your node. - -Notification changes --------------------- - -`-walletnotify` notifications are now sent for wallet transactions that are -removed from the mempool because they conflict with a new block. These -notifications were sent previously before the v0.19 release, but had been -broken since that release (bug -[#18325](https://github.com/bitcoin/bitcoin/issues/18325)). - -PSBT changes ------------- - -PSBTs will contain both the non-witness utxo and the witness utxo for segwit -inputs in order to restore compatibility with wallet software that are now -requiring the full previous transaction for segwit inputs. The witness utxo -is still provided to maintain compatibility with software which relied on its -existence to determine whether an input was segwit. - -0.20.1 change log -================= - -### Mining -- #19019 Fix GBT: Restore "!segwit" and "csv" to "rules" key (luke-jr) - -### P2P protocol and network code -- #19219 Replace automatic bans with discouragement filter (sipa) - -### Wallet -- #19300 Handle concurrent wallet loading (promag) -- #18982 Minimal fix to restore conflicted transaction notifications (ryanofsky) - -### RPC and other APIs -- #19524 Increment input value sum only once per UTXO in decodepsbt (fanquake) -- #19517 psbt: Increment input value sum only once per UTXO in decodepsbt (achow101) -- #19215 psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs (achow101) - -### GUI -- #19097 Add missing QPainterPath include (achow101) -- #19059 update Qt base translations for macOS release (fanquake) - -### Build system -- #19152 improve build OS configure output (skmcontrib) -- #19536 qt, build: Fix QFileDialog for static builds (hebasto) - -### Tests and QA -- #19444 Remove cached directories and associated script blocks from appveyor config (sipsorcery) -- #18640 appveyor: Remove clcache (MarcoFalke) - -### Miscellaneous -- #19194 util: Don't reference errno when pthread fails (miztake) -- #18700 Fix locking on WSL using flock instead of fcntl (meshcollider) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Aaron Clauson -- Andrew Chow -- fanquake -- Hennadii Stepanov -- João Barbosa -- Luke Dashjr -- MarcoFalke -- MIZUTA Takeshi -- Pieter Wuille -- Russell Yanofsky -- sachinkm77 -- Samuel Dobson -- Wladimir J. van der Laan - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.20.2.md b/doc/release-notes/release-notes-0.20.2.md deleted file mode 100644 index ad001bc9c12cf..0000000000000 --- a/doc/release-notes/release-notes-0.20.2.md +++ /dev/null @@ -1,165 +0,0 @@ -0.20.2 Release Notes -==================== - -Bitcoin Core version 0.20.2 is now available from: - - - -This minor release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no -longer supported. Additionally, Bitcoin Core does not yet change appearance -when macOS "dark mode" is activated. - -Known Bugs -========== - -The process for generating the source code release ("tarball") has changed in an -effort to make it more complete, however, there are a few regressions in -this release: - -- The generated `configure` script is currently missing, and you will need to - install autotools and run `./autogen.sh` before you can run - `./configure`. This is the same as when checking out from git. - -- Instead of running `make` simply, you should instead run - `BITCOIN_GENBUILD_NO_GIT=1 make`. - -Notable changes -=============== - -Changes regarding misbehaving peers ------------------------------------ - -Peers that misbehave (e.g. send us invalid blocks) are now referred to as -discouraged nodes in log output, as they're not (and weren't) strictly banned: -incoming connections are still allowed from them, but they're preferred for -eviction. - -Furthermore, a few additional changes are introduced to how discouraged -addresses are treated: - -- Discouraging an address does not time out automatically after 24 hours - (or the `-bantime` setting). Depending on traffic from other peers, - discouragement may time out at an indeterminate time. - -- Discouragement is not persisted over restarts. - -- There is no method to list discouraged addresses. They are not returned by - the `listbanned` RPC. That RPC also no longer reports the `ban_reason` - field, as `"manually added"` is the only remaining option. - -- Discouragement cannot be removed with the `setban remove` RPC command. - If you need to remove a discouragement, you can remove all discouragements by - stop-starting your node. - -Notification changes --------------------- - -`-walletnotify` notifications are now sent for wallet transactions that are -removed from the mempool because they conflict with a new block. These -notifications were sent previously before the v0.19 release, but had been -broken since that release (bug -[#18325](https://github.com/bitcoin/bitcoin/issues/18325)). - -PSBT changes ------------- - -PSBTs will contain both the non-witness utxo and the witness utxo for segwit -inputs in order to restore compatibility with wallet software that are now -requiring the full previous transaction for segwit inputs. The witness utxo -is still provided to maintain compatibility with software which relied on its -existence to determine whether an input was segwit. - -0.20.2 change log -================= - -### P2P protocol and network code - -- #19620 Add txids with non-standard inputs to reject filter (sdaftuar) -- #20146 Send post-verack handshake messages at most once (MarcoFalke) - -### Wallet - -- #19740 Simplify and fix CWallet::SignTransaction (achow101) - -### RPC and other APIs - -- #19836 Properly deserialize txs with witness before signing (MarcoFalke) -- #20731 Add missing description of vout in getrawtransaction help text (benthecarman) - -### Build system - -- #20142 build: set minimum required Boost to 1.48.0 (fanquake) -- #20298 use the new plistlib API (jonasschnelli) -- #20880 gitian: Use custom MacOS code signing tool (achow101) -- #22190 Use latest signapple commit (achow101) - -### Tests and QA - -- #19839 Set appveyor vm version to previous Visual Studio 2019 release. (sipsorcery) -- #19842 Update the vcpkg checkout commit ID in appveyor config. (sipsorcery) -- #20562 Test that a fully signed tx given to signrawtx is unchanged (achow101) - -### Miscellaneous - -- #19192 Extract net permissions doc (MarcoFalke) -- #19777 Correct description for getblockstats's txs field (shesek) -- #20080 Strip any trailing / in -datadir and -blocksdir paths (hebasto) -- #20082 fixes read buffer to use min rather than max (EthanHeilman) -- #20141 Avoid the use of abs64 in timedata (sipa) -- #20756 Add missing field (permissions) to the getpeerinfo help (amitiuttarwar) -- #20861 BIP 350: Implement Bech32m and use it for v1+ segwit addresses (sipa) -- #22124 Update translations after closing 0.20.x on Transifex (hebasto) -- #21471 fix bech32_encode calls in gen_key_io_test_vectors.py (sipa) -- #22837 mention bech32m/BIP350 in doc/descriptors.md (sipa) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Aaron Clauson -- Amiti Uttarwar -- Andrew Chow -- Ethan Heilman -- fanquake -- Hennadii Stepanov -- Jonas Schnelli -- MarcoFalke -- Nadav Ivgi -- Pieter Wuille -- Suhas Daftuar - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.21.0.md b/doc/release-notes/release-notes-0.21.0.md deleted file mode 100644 index 3baba3d49bd08..0000000000000 --- a/doc/release-notes/release-notes-0.21.0.md +++ /dev/null @@ -1,1336 +0,0 @@ -0.21.0 Release Notes -==================== - -Bitcoin Core version 0.21.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no -longer supported. Additionally, Bitcoin Core does not yet change appearance -when macOS "dark mode" is activated. - -The node's known peers are persisted to disk in a file called `peers.dat`. The -format of this file has been changed in a backwards-incompatible way in order to -accommodate the storage of Tor v3 and other BIP155 addresses. This means that if -the file is modified by 0.21.0 or newer then older versions will not be able to -read it. Those old versions, in the event of a downgrade, will log an error -message "Incorrect keysize in addrman deserialization" and will continue normal -operation as if the file was missing, creating a new empty one. (#19954, #20284) - -Notable changes -=============== - -P2P and network changes ------------------------ - -- The mempool now tracks whether transactions submitted via the wallet or RPCs - have been successfully broadcast. Every 10-15 minutes, the node will try to - announce unbroadcast transactions until a peer requests it via a `getdata` - message or the transaction is removed from the mempool for other reasons. - The node will not track the broadcast status of transactions submitted to the - node using P2P relay. This version reduces the initial broadcast guarantees - for wallet transactions submitted via P2P to a node running the wallet. (#18038) - -- The size of the set of transactions that peers have announced and we consider - for requests has been reduced from 100000 to 5000 (per peer), and further - announcements will be ignored when that limit is reached. If you need to dump - (very) large batches of transactions, exceptions can be made for trusted - peers using the "relay" network permission. For localhost for example it can - be enabled using the command line option `-whitelist=relay@127.0.0.1`. - (#19988) - -- This release adds support for Tor version 3 hidden services, and rumoring them - over the network to other peers using - [BIP155](https://github.com/bitcoin/bips/blob/master/bip-0155.mediawiki). - Version 2 hidden services are still fully supported by Bitcoin Core, but the - Tor network will start - [deprecating](https://blog.torproject.org/v2-deprecation-timeline) them in the - coming months. (#19954) - -- The Tor onion service that is automatically created by setting the - `-listenonion` configuration parameter will now be created as a Tor v3 service - instead of Tor v2. The private key that was used for Tor v2 (if any) will be - left untouched in the `onion_private_key` file in the data directory (see - `-datadir`) and can be removed if not needed. Bitcoin Core will no longer - attempt to read it. The private key for the Tor v3 service will be saved in a - file named `onion_v3_private_key`. To use the deprecated Tor v2 service (not - recommended), the `onion_private_key` can be copied over - `onion_v3_private_key`, e.g. - `cp -f onion_private_key onion_v3_private_key`. (#19954) - -- The client writes a file (`anchors.dat`) at shutdown with the network addresses - of the node’s two outbound block-relay-only peers (so called "anchors"). The - next time the node starts, it reads this file and attempts to reconnect to those - same two peers. This prevents an attacker from using node restarts to trigger a - complete change in peers, which would be something they could use as part of an - eclipse attack. (#17428) - -- This release adds support for serving - [BIP157](https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki) compact - filters to peers on the network when enabled using - `-blockfilterindex=1 -peerblockfilters=1`. (#16442) - -- This release adds support for signets - ([BIP325](https://github.com/bitcoin/bips/blob/master/bip-0325.mediawiki)) in - addition to the existing mainnet, testnet, and regtest networks. Signets are - centrally-controlled test networks, allowing them to be more predictable - test environments than the older testnet. One public signet is maintained, and - selectable using `-signet`. It is also possible to create personal signets. - (#18267). - -- This release implements - [BIP339](https://github.com/bitcoin/bips/blob/master/bip-0339.mediawiki) - wtxid relay. When negotiated, transactions are announced using their wtxid - instead of their txid. (#18044). - -- This release implements the proposed Taproot consensus rules - ([BIP341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) and - [BIP342](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki)), - without activation on mainnet. Experimentation with Taproot can be done on - signet, where its rules are already active. (#19553) - -Updated RPCs ------------- - -- The `getpeerinfo` RPC has a new `network` field that provides the type of - network ("ipv4", "ipv6", or "onion") that the peer connected through. (#20002) - -- The `getpeerinfo` RPC now has additional `last_block` and `last_transaction` - fields that return the UNIX epoch time of the last block and the last *valid* - transaction received from each peer. (#19731) - -- `getnetworkinfo` now returns two new fields, `connections_in` and - `connections_out`, that provide the number of inbound and outbound peer - connections. These new fields are in addition to the existing `connections` - field, which returns the total number of peer connections. (#19405) - -- Exposed transaction version numbers are now treated as unsigned 32-bit - integers instead of signed 32-bit integers. This matches their treatment in - consensus logic. Versions greater than 2 continue to be non-standard - (matching previous behavior of smaller than 1 or greater than 2 being - non-standard). Note that this includes the `joinpsbt` command, which combines - partially-signed transactions by selecting the highest version number. - (#16525) - -- `getmempoolinfo` now returns an additional `unbroadcastcount` field. The - mempool tracks locally submitted transactions until their initial broadcast - is acknowledged by a peer. This field returns the count of transactions - waiting for acknowledgement. - -- Mempool RPCs such as `getmempoolentry` and `getrawmempool` with - `verbose=true` now return an additional `unbroadcast` field. This indicates - whether initial broadcast of the transaction has been acknowledged by a - peer. `getmempoolancestors` and `getmempooldescendants` are also updated. - -- The `getpeerinfo` RPC no longer returns the `banscore` field unless the configuration - option `-deprecatedrpc=banscore` is used. The `banscore` field will be fully - removed in the next major release. (#19469) - -- The `testmempoolaccept` RPC returns `vsize` and a `fees` object with the `base` fee - if the transaction would pass validation. (#19940) - -- The `getpeerinfo` RPC now returns a `connection_type` field. This indicates - the type of connection established with the peer. It will return one of six - options. For more information, see the `getpeerinfo` help documentation. - (#19725) - -- The `getpeerinfo` RPC no longer returns the `addnode` field by default. This - field will be fully removed in the next major release. It can be accessed - with the configuration option `-deprecatedrpc=getpeerinfo_addnode`. However, - it is recommended to instead use the `connection_type` field (it will return - `manual` when addnode is true). (#19725) - -- The `getpeerinfo` RPC no longer returns the `whitelisted` field by default. - This field will be fully removed in the next major release. It can be accessed - with the configuration option `-deprecatedrpc=getpeerinfo_whitelisted`. However, - it is recommended to instead use the `permissions` field to understand if specific - privileges have been granted to the peer. (#19770) - -- The `walletcreatefundedpsbt` RPC call will now fail with - `Insufficient funds` when inputs are manually selected but are not enough to cover - the outputs and fee. Additional inputs can automatically be added through the - new `add_inputs` option. (#16377) - -- The `fundrawtransaction` RPC now supports `add_inputs` option that when `false` - prevents adding more inputs if necessary and consequently the RPC fails. - -Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below. - -New RPCs --------- - -- The `getindexinfo` RPC returns the actively running indices of the node, - including their current sync status and height. It also accepts an `index_name` - to specify returning the status of that index only. (#19550) - -Build System ------------- - -Updated settings ----------------- - -- The same ZeroMQ notification (e.g. `-zmqpubhashtx=address`) can now be - specified multiple times to publish the same notification to different ZeroMQ - sockets. (#18309) - -- The `-banscore` configuration option, which modified the default threshold for - disconnecting and discouraging misbehaving peers, has been removed as part of - changes in 0.20.1 and in this release to the handling of misbehaving peers. - Refer to "Changes regarding misbehaving peers" in the 0.20.1 release notes for - details. (#19464) - -- The `-debug=db` logging category, which was deprecated in 0.20 and replaced by - `-debug=walletdb` to distinguish it from `coindb`, has been removed. (#19202) - -- A `download` permission has been extracted from the `noban` permission. For - compatibility, `noban` implies the `download` permission, but this may change - in future releases. Refer to the help of the affected settings `-whitebind` - and `-whitelist` for more details. (#19191) - -- Netmasks that contain 1-bits after 0-bits (the 1-bits are not contiguous on - the left side, e.g. 255.0.255.255) are no longer accepted. They are invalid - according to RFC 4632. Netmasks are used in the `-rpcallowip` and `-whitelist` - configuration options and in the `setban` RPC. (#19628) - -- The `-blocksonly` setting now completely disables fee estimation. (#18766) - -Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below. - -Tools and Utilities -------------------- - -- A new `bitcoin-cli -netinfo` command provides a network peer connections - dashboard that displays data from the `getpeerinfo` and `getnetworkinfo` RPCs - in a human-readable format. An optional integer argument from `0` to `4` may - be passed to see increasing levels of detail. (#19643) - -- A new `bitcoin-cli -generate` command, equivalent to RPC `generatenewaddress` - followed by `generatetoaddress`, can generate blocks for command line testing - purposes. This is a client-side version of the former `generate` RPC. See the - help for details. (#19133) - -- The `bitcoin-cli -getinfo` command now displays the wallet name and balance for - each of the loaded wallets when more than one is loaded (e.g. in multiwallet - mode) and a wallet is not specified with `-rpcwallet`. (#18594) - -- The `connections` field of `bitcoin-cli -getinfo` is now expanded to return a JSON - object with `in`, `out` and `total` numbers of peer connections. It previously - returned a single integer value for the total number of peer connections. (#19405) - -New settings ------------- - -- The `startupnotify` option is used to specify a command to - execute when Bitcoin Core has finished with its startup - sequence. (#15367) - -Wallet ------- - -- Backwards compatibility has been dropped for two `getaddressinfo` RPC - deprecations, as notified in the 0.20 release notes. The deprecated `label` - field has been removed as well as the deprecated `labels` behavior of - returning a JSON object containing `name` and `purpose` key-value pairs. Since - 0.20, the `labels` field returns a JSON array of label names. (#19200) - -- To improve wallet privacy, the frequency of wallet rebroadcast attempts is - reduced from approximately once every 15 minutes to once every 12-36 hours. - To maintain a similar level of guarantee for initial broadcast of wallet - transactions, the mempool tracks these transactions as a part of the newly - introduced unbroadcast set. See the "P2P and network changes" section for - more information on the unbroadcast set. (#18038) - -- The `sendtoaddress` and `sendmany` RPCs accept an optional `verbose=True` - argument to also return the fee reason about the sent tx. (#19501) - -- The wallet can create a transaction without change even when the keypool is - empty. Previously it failed. (#17219) - -- The `-salvagewallet` startup option has been removed. A new `salvage` command - has been added to the `bitcoin-wallet` tool which performs the salvage - operations that `-salvagewallet` did. (#18918) - -- A new configuration flag `-maxapsfee` has been added, which sets the max - allowed avoid partial spends (APS) fee. It defaults to 0 (i.e. fee is the - same with and without APS). Setting it to -1 will disable APS, unless - `-avoidpartialspends` is set. (#14582) - -- The wallet will now avoid partial spends (APS) by default, if this does not - result in a difference in fees compared to the non-APS variant. The allowed - fee threshold can be adjusted using the new `-maxapsfee` configuration - option. (#14582) - -- The `createwallet`, `loadwallet`, and `unloadwallet` RPCs now accept - `load_on_startup` options to modify the settings list. Unless these options - are explicitly set to true or false, the list is not modified, so the RPC - methods remain backwards compatible. (#15937) - -- A new `send` RPC with similar syntax to `walletcreatefundedpsbt`, including - support for coin selection and a custom fee rate, is added. The `send` RPC is - experimental and may change in subsequent releases. (#16378) - -- The `estimate_mode` parameter is now case-insensitive in the `bumpfee`, - `fundrawtransaction`, `sendmany`, `sendtoaddress`, `send` and - `walletcreatefundedpsbt` RPCs. (#11413) - -- The `bumpfee` RPC now uses `conf_target` rather than `confTarget` in the - options. (#11413) - -- `fundrawtransaction` and `walletcreatefundedpsbt` when used with the - `lockUnspents` argument now lock manually selected coins, in addition to - automatically selected coins. Note that locked coins are never used in - automatic coin selection, but can still be manually selected. (#18244) - -- The `-zapwallettxes` startup option has been removed and its functionality - removed from the wallet. This option was originally intended to allow for - rescuing wallets which were affected by a malleability attack. More recently, - it has been used in the fee bumping of transactions that did not signal RBF. - This functionality has been superseded with the abandon transaction feature. (#19671) - -- The error code when no wallet is loaded, but a wallet RPC is called, has been - changed from `-32601` (method not found) to `-18` (wallet not found). - (#20101) - -### Automatic wallet creation removed - -Bitcoin Core will no longer automatically create new wallets on startup. It will -load existing wallets specified by `-wallet` options on the command line or in -`bitcoin.conf` or `settings.json` files. And by default it will also load a -top-level unnamed ("") wallet. However, if specified wallets don't exist, -Bitcoin Core will now just log warnings instead of creating new wallets with -new keys and addresses like previous releases did. - -New wallets can be created through the GUI (which has a more prominent create -wallet option), through the `bitcoin-cli createwallet` or `bitcoin-wallet -create` commands, or the `createwallet` RPC. (#15454, #20186) - -### Experimental Descriptor Wallets - -Please note that Descriptor Wallets are still experimental and not all expected functionality -is available. Additionally there may be some bugs and current functions may change in the future. -Bugs and missing functionality can be reported to the [issue tracker](https://github.com/bitcoin/bitcoin/issues). - -0.21 introduces a new type of wallet - Descriptor Wallets. Descriptor Wallets store -scriptPubKey information using output descriptors. This is in contrast to the Legacy Wallet -structure where keys are used to implicitly generate scriptPubKeys and addresses. Because of this -shift to being script based instead of key based, many of the confusing things that Legacy -Wallets do are not possible with Descriptor Wallets. Descriptor Wallets use a definition -of "mine" for scripts which is simpler and more intuitive than that used by Legacy Wallets. -Descriptor Wallets also uses different semantics for watch-only things and imports. - -As Descriptor Wallets are a new type of wallet, their introduction does not affect existing wallets. -Users who already have a Bitcoin Core wallet can continue to use it as they did before without -any change in behavior. Newly created Legacy Wallets (which remains the default type of wallet) will -behave as they did in previous versions of Bitcoin Core. - -The differences between Descriptor Wallets and Legacy Wallets are largely limited to non user facing -things. They are intended to behave similarly except for the import/export and watchonly functionality -as described below. - -#### Creating Descriptor Wallets - -Descriptor wallets are not the default type of wallet. - -In the GUI, a checkbox has been added to the Create Wallet Dialog to indicate that a -Descriptor Wallet should be created. And a `descriptors` option has been added to `createwallet` RPC. -Setting `descriptors` to `true` will create a Descriptor Wallet instead of a Legacy Wallet. - -Without those options being set, a Legacy Wallet will be created instead. - -#### `IsMine` Semantics - -`IsMine` refers to the function used to determine whether a script belongs to the wallet. -This is used to determine whether an output belongs to the wallet. `IsMine` in Legacy Wallets -returns true if the wallet would be able to sign an input that spends an output with that script. -Since keys can be involved in a variety of different scripts, this definition for `IsMine` can -lead to many unexpected scripts being considered part of the wallet. - -With Descriptor Wallets, descriptors explicitly specify the set of scripts that are owned by -the wallet. Since descriptors are deterministic and easily enumerable, users will know exactly -what scripts the wallet will consider to belong to it. Additionally the implementation of `IsMine` -in Descriptor Wallets is far simpler than for Legacy Wallets. Notably, in Legacy Wallets, `IsMine` -allowed for users to take one type of address (e.g. P2PKH), mutate it into another address type -(e.g. P2WPKH), and the wallet would still detect outputs sending to the new address type -even without that address being requested from the wallet. Descriptor Wallets do not -allow for this and will only watch for the addresses that were explicitly requested from the wallet. - -These changes to `IsMine` will make it easier to reason about what scripts the wallet will -actually be watching for in outputs. However for the vast majority of users, this change is -largely transparent and will not have noticeable effect. - -#### Imports and Exports - -In Legacy Wallets, raw scripts and keys could be imported to the wallet. Those imported scripts -and keys are treated separately from the keys generated by the wallet. This complicates the `IsMine` -logic as it has to distinguish between spendable and watchonly. - -Descriptor Wallets handle importing scripts and keys differently. Only complete descriptors can be -imported. These descriptors are then added to the wallet as if it were a descriptor generated by -the wallet itself. This simplifies the `IsMine` logic so that it no longer has to distinguish -between spendable and watchonly. As such, the watchonly model for Descriptor Wallets is also -different and described in more detail in the next section. - -To import into a Descriptor Wallet, a new `importdescriptors` RPC has been added that uses a syntax -similar to that of `importmulti`. - -As Legacy Wallets and Descriptor Wallets use different mechanisms for storing and importing scripts and keys -the existing import RPCs have been disabled for descriptor wallets. -New export RPCs for Descriptor Wallets have not yet been added. - -The following RPCs are disabled for Descriptor Wallets: - -* `importprivkey` -* `importpubkey` -* `importaddress` -* `importwallet` -* `dumpprivkey` -* `dumpwallet` -* `importmulti` -* `addmultisigaddress` -* `sethdseed` - -#### Watchonly Wallets - -A Legacy Wallet contains both private keys and scripts that were being watched. -Those watched scripts would not contribute to your normal balance. In order to see the watchonly -balance and to use watchonly things in transactions, an `include_watchonly` option was added -to many RPCs that would allow users to do that. However it is easy to forget to include this option. - -Descriptor Wallets move to a per-wallet watchonly model. Instead an entire wallet is considered to be -watchonly depending on whether it was created with private keys disabled. This eliminates the need -to distinguish between things that are watchonly and things that are not within a wallet itself. - -This change does have a caveat. If a Descriptor Wallet with private keys *enabled* has -a multiple key descriptor without all of the private keys (e.g. `multi(...)` with only one private key), -then the wallet will fail to sign and broadcast transactions. Such wallets would need to use the PSBT -workflow but the typical GUI Send, `sendtoaddress`, etc. workflows would still be available, just -non-functional. - -This issue is worsened if the wallet contains both single key (e.g. `wpkh(...)`) descriptors and such -multiple key descriptors as some transactions could be signed and broadcast and others not. This is -due to some transactions containing only single key inputs, while others would contain both single -key and multiple key inputs, depending on which are available and how the coin selection algorithm -selects inputs. However this is not considered to be a supported use case; multisigs -should be in their own wallets which do not already have descriptors. Although users cannot export -descriptors with private keys for now as explained earlier. - -#### BIP 44/49/84 Support - -The change to using descriptors changes the default derivation paths used by Bitcoin Core -to adhere to BIP 44/49/84. Descriptors with different derivation paths can be imported without -issue. - -#### SQLite Database Backend - -Descriptor wallets use SQLite for the wallet file instead of the Berkeley DB used in legacy wallets. -This will break compatibility with any existing tooling that operates on wallets, however compatibility -was already being broken by the move to descriptors. - -### Wallet RPC changes - -- The `upgradewallet` RPC replaces the `-upgradewallet` command line option. - (#15761) - -- The `settxfee` RPC will fail if the fee was set higher than the `-maxtxfee` - command line setting. The wallet will already fail to create transactions - with fees higher than `-maxtxfee`. (#18467) - -- A new `fee_rate` parameter/option denominated in satoshis per vbyte (sat/vB) - is introduced to the `sendtoaddress`, `sendmany`, `fundrawtransaction` and - `walletcreatefundedpsbt` RPCs as well as to the experimental new `send` - RPC. The legacy `feeRate` option in `fundrawtransaction` and - `walletcreatefundedpsbt` still exists for setting a fee rate in BTC per 1,000 - vbytes (BTC/kvB), but it is expected to be deprecated soon to avoid - confusion. For these RPCs, the fee rate error message is updated from BTC/kB - to sat/vB and the help documentation in BTC/kB is updated to BTC/kvB. The - `send` and `sendtoaddress` RPC examples are updated to aid users in creating - transactions with explicit fee rates. (#20305, #11413) - -- The `bumpfee` RPC `fee_rate` option is changed from BTC/kvB to sat/vB and the - help documentation is updated. Users are warned that this is a breaking API - change, but it should be relatively benign: the large (100,000 times) - difference between BTC/kvB and sat/vB units means that a transaction with a - fee rate mistakenly calculated in BTC/kvB rather than sat/vB should raise an - error due to the fee rate being set too low. In the worst case, the - transaction may send at 1 sat/vB, but as Replace-by-Fee (BIP125 RBF) is active - by default when an explicit fee rate is used, the transaction fee can be - bumped. (#20305) - -GUI changes ------------ - -- Wallets created or loaded in the GUI will now be automatically loaded on - startup, so they don't need to be manually reloaded next time Bitcoin Core is - started. The list of wallets to load on startup is stored in - `\/settings.json` and augments any command line or `bitcoin.conf` - `-wallet=` settings that specify more wallets to load. Wallets that are - unloaded in the GUI get removed from the settings list so they won't load - again automatically next startup. (#19754) - -- The GUI Peers window no longer displays a "Ban Score" field. This is part of - changes in 0.20.1 and in this release to the handling of misbehaving - peers. Refer to "Changes regarding misbehaving peers" in the 0.20.1 release - notes for details. (#19512) - -Low-level changes -================= - -RPC ---- - -- To make RPC `sendtoaddress` more consistent with `sendmany` the following error - `sendtoaddress` codes were changed from `-4` to `-6`: - - Insufficient funds - - Fee estimation failed - - Transaction has too long of a mempool chain - -- The `sendrawtransaction` error code for exceeding `maxfeerate` has been changed from - `-26` to `-25`. The error string has been changed from "absurdly-high-fee" to - "Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate)." The - `testmempoolaccept` RPC returns `max-fee-exceeded` rather than `absurdly-high-fee` - as the `reject-reason`. (#19339) - -- To make wallet and rawtransaction RPCs more consistent, the error message for - exceeding maximum feerate has been changed to "Fee exceeds maximum configured by user - (e.g. -maxtxfee, maxfeerate)." (#19339) - -Tests ------ - -- The BIP 325 default signet can be enabled by the `-chain=signet` or `-signet` - setting. The settings `-signetchallenge` and `-signetseednode` allow - enabling a custom signet. - -- The `generateblock` RPC allows testers using regtest mode to - generate blocks that consist of a custom set of transactions. (#17693) - -0.21.0 change log -================= - -### Consensus -- #18267 BIP-325: Signet (kallewoof) -- #20016 uint256: 1 is a constant (ajtowns) -- #20006 Fix misleading error message: Clean stack rule (sanket1729) -- #19953 Implement BIP 340-342 validation (Schnorr/taproot/tapscript) (sipa) -- #20169 Taproot follow-up: Make ComputeEntrySchnorr and ComputeEntryECDSA const to clarify contract (practicalswift) - -### Policy -- #18766 Disable fee estimation in blocksonly mode (darosior) -- #19630 Cleanup fee estimation code (darosior) -- #20165 Only relay Taproot spends if next block has it active (sipa) - -### Mining -- #17946 Fix GBT: Restore "!segwit" and "csv" to "rules" key (luke-jr) - -### Privacy -- #16432 Add privacy to the Overview page (hebasto) -- #18861 Do not answer GETDATA for to-be-announced tx (sipa) -- #18038 Mempool tracks locally submitted transactions to improve wallet privacy (amitiuttarwar) -- #19109 Only allow getdata of recently announced invs (sipa) - -### Block and transaction handling -- #17737 Add ChainstateManager, remove BlockManager global (jamesob) -- #18960 indexes: Add compact block filter headers cache (jnewbery) -- #13204 Faster sigcache nonce (JeremyRubin) -- #19088 Use std::chrono throughout some validation functions (fanquake) -- #19142 Make VerifyDB level 4 interruptible (MarcoFalke) -- #17994 Flush undo files after last block write (kallewoof) -- #18990 log: Properly log txs rejected from mempool (MarcoFalke) -- #18984 Remove unnecessary input blockfile SetPos (dgenr8) -- #19526 log: Avoid treating remote misbehvior as local system error (MarcoFalke) -- #18044 Use wtxid for transaction relay (sdaftuar) -- #18637 coins: allow cache resize after init (jamesob) -- #19854 Avoid locking CTxMemPool::cs recursively in simple cases (hebasto) -- #19478 Remove CTxMempool::mapLinks data structure member (JeremyRubin) -- #19927 Reduce direct `g_chainman` usage (dongcarl) -- #19898 log: print unexpected version warning in validation log category (n-thumann) -- #20036 signet: Add assumed values for default signet (MarcoFalke) -- #20048 chainparams: do not log signet startup messages for other chains (jonatack) -- #19339 re-delegate absurd fee checking from mempool to clients (glozow) -- #20035 signet: Fix uninitialized read in validation (MarcoFalke) -- #20157 Bugfix: chainparams: Add missing (always enabled) Taproot deployment for Signet (luke-jr) -- #20263 Update assumed chain params (MarcoFalke) -- #20372 Avoid signed integer overflow when loading a mempool.dat file with a malformed time field (practicalswift) -- #18621 script: Disallow silent bool -> cscript conversion (MarcoFalke) -- #18612, #18732 script: Remove undocumented and unused operator+ (MarcoFalke) -- #19317 Add a left-justified width field to `log2_work` component for a uniform debug.log output (jamesgmorgan) - -### P2P protocol and network code -- #18544 Limit BIP37 filter lifespan (active between `filterload`..`filterclear`) (theStack) -- #18806 Remove is{Empty,Full} flags from CBloomFilter, clarify CVE fix (theStack) -- #18512 Improve asmap checks and add sanity check (sipa) -- #18877 Serve cfcheckpt requests (jnewbery) -- #18895 Unbroadcast followups: rpcs, nLastResend, mempool sanity check (gzhao408) -- #19010 net processing: Add support for `getcfheaders` (jnewbery) -- #16939 Delay querying DNS seeds (ajtowns) -- #18807 Unbroadcast follow-ups (amitiuttarwar) -- #19044 Add support for getcfilters (jnewbery) -- #19084 improve code documentation for dns seed behaviour (ajtowns) -- #19260 disconnect peers that send filterclear + update existing filter msg disconnect logic (gzhao408) -- #19284 Add seed.bitcoin.wiz.biz to DNS seeds (wiz) -- #19322 split PushInventory() (jnewbery) -- #19204 Reduce inv traffic during IBD (MarcoFalke) -- #19470 banlist: log post-swept banlist size at startup (fanquake) -- #19191 Extract download permission from noban (MarcoFalke) -- #14033 Drop `CADDR_TIME_VERSION` checks now that `MIN_PEER_PROTO_VERSION` is greater (Empact) -- #19464 net, rpc: remove -banscore option, deprecate banscore in getpeerinfo (jonatack) -- #19514 [net/net processing] check banman pointer before dereferencing (jnewbery) -- #19512 banscore updates to gui, tests, release notes (jonatack) -- #19360 improve encapsulation of CNetAddr (vasild) -- #19217 disambiguate block-relay-only variable names from blocksonly variables (glowang) -- #19473 Add -networkactive option (hebasto) -- #19472 [net processing] Reduce `cs_main` scope in MaybeDiscourageAndDisconnect() (jnewbery) -- #19583 clean up Misbehaving() (jnewbery) -- #19534 save the network type explicitly in CNetAddr (vasild) -- #19569 Enable fetching of orphan parents from wtxid peers (sipa) -- #18991 Cache responses to GETADDR to prevent topology leaks (naumenkogs) -- #19596 Deduplicate parent txid loop of requested transactions and missing parents of orphan transactions (sdaftuar) -- #19316 Cleanup logic around connection types (amitiuttarwar) -- #19070 Signal support for compact block filters with `NODE_COMPACT_FILTERS` (jnewbery) -- #19705 Shrink CAddress from 48 to 40 bytes on x64 (vasild) -- #19704 Move ProcessMessage() to PeerLogicValidation (jnewbery) -- #19628 Change CNetAddr::ip to have flexible size (vasild) -- #19797 Remove old check for 3-byte shifted IP addresses from pre-0.2.9 nodes (#19797) -- #19607 Add Peer struct for per-peer data in net processing (jnewbery) -- #19857 improve nLastBlockTime and nLastTXTime documentation (jonatack) -- #19724 Cleanup connection types- followups (amitiuttarwar) -- #19670 Protect localhost and block-relay-only peers from eviction (sdaftuar) -- #19728 Increase the ip address relay branching factor for unreachable networks (sipa) -- #19879 Miscellaneous wtxid followups (amitiuttarwar) -- #19697 Improvements on ADDR caching (naumenkogs) -- #17785 Unify Send and Receive protocol versions (hebasto) -- #19845 CNetAddr: add support to (un)serialize as ADDRv2 (vasild) -- #19107 Move all header verification into the network layer, extend logging (troygiorshev) -- #20003 Exit with error message if -proxy is specified without arguments (instead of continuing without proxy server) (practicalswift) -- #19991 Use alternative port for incoming Tor connections (hebasto) -- #19723 Ignore unknown messages before VERACK (sdaftuar) -- #19954 Complete the BIP155 implementation and upgrade to TORv3 (vasild) -- #20119 BIP155 follow-ups (sipa) -- #19988 Overhaul transaction request logic (sipa) -- #17428 Try to preserve outbound block-relay-only connections during restart (hebasto) -- #19911 Guard `vRecvGetData` with `cs_vRecv` and `orphan_work_set` with `g_cs_orphans` (narula) -- #19753 Don't add AlreadyHave transactions to recentRejects (troygiorshev) -- #20187 Test-before-evict bugfix and improvements for block-relay-only peers (sdaftuar) -- #20237 Hardcoded seeds update for 0.21 (laanwj) -- #20212 Fix output of peer address in version message (vasild) -- #20284 Ensure old versions don't parse peers.dat (vasild) -- #20405 Avoid calculating onion address checksum when version is not 3 (lontivero) -- #20564 Don't send 'sendaddrv2' to pre-70016 software, and send before 'verack' (sipa) -- #20660 Move signet onion seed from v2 to v3 (Sjors) - -### Wallet -- #18262 Exit selection when `best_waste` is 0 (achow101) -- #17824 Prefer full destination groups in coin selection (fjahr) -- #17219 Allow transaction without change if keypool is empty (Sjors) -- #15761 Replace -upgradewallet startup option with upgradewallet RPC (achow101) -- #18671 Add BlockUntilSyncedToCurrentChain to dumpwallet (MarcoFalke) -- #16528 Native Descriptor Wallets using DescriptorScriptPubKeyMan (achow101) -- #18777 Recommend absolute path for dumpwallet (MarcoFalke) -- #16426 Reverse `cs_main`, `cs_wallet` lock order and reduce `cs_main` locking (ariard) -- #18699 Avoid translating RPC errors (MarcoFalke) -- #18782 Make sure no DescriptorScriptPubKeyMan or WalletDescriptor members are left uninitialized after construction (practicalswift) -- #9381 Remove CWalletTx merging logic from AddToWallet (ryanofsky) -- #16946 Include a checksum of encrypted private keys (achow101) -- #17681 Keep inactive seeds after sethdseed and derive keys from them as needed (achow101) -- #18918 Move salvagewallet into wallettool (achow101) -- #14988 Fix for confirmed column in csv export for payment to self transactions (benthecarman) -- #18275 Error if an explicit fee rate was given but the needed fee rate differed (kallewoof) -- #19054 Skip hdKeypath of 'm' when determining inactive hd seeds (achow101) -- #17938 Disallow automatic conversion between disparate hash types (Empact) -- #19237 Check size after unserializing a pubkey (elichai) -- #11413 sendtoaddress/sendmany: Add explicit feerate option (kallewoof) -- #18850 Fix ZapSelectTx to sync wallet spends (bvbfan) -- #18923 Never schedule MaybeCompactWalletDB when `-flushwallet` is off (MarcoFalke) -- #19441 walletdb: Don't reinitialize desc cache with multiple cache entries (achow101) -- #18907 walletdb: Don't remove database transaction logs and instead error (achow101) -- #19334 Introduce WalletDatabase abstract class (achow101) -- #19335 Cleanup and separate BerkeleyDatabase and BerkeleyBatch (achow101) -- #19102 Introduce and use DummyDatabase instead of dummy BerkeleyDatabase (achow101) -- #19568 Wallet should not override signing errors (fjahr) -- #17204 Do not turn `OP_1NEGATE` in scriptSig into `0x0181` in signing code (sipa) (meshcollider) -- #19457 Cleanup wallettool salvage and walletdb extraneous declarations (achow101) -- #15937 Add loadwallet and createwallet `load_on_startup` options (ryanofsky) -- #16841 Replace GetScriptForWitness with GetScriptForDestination (meshcollider) -- #14582 always do avoid partial spends if fees are within a specified range (kallewoof) -- #19743 -maxapsfee follow-up (kallewoof) -- #19289 GetWalletTx and IsMine require `cs_wallet` lock (promag) -- #19671 Remove -zapwallettxes (achow101) -- #19805 Avoid deserializing unused records when salvaging (achow101) -- #19754 wallet, gui: Reload previously loaded wallets on startup (achow101) -- #19738 Avoid multiple BerkeleyBatch in DelAddressBook (promag) -- #19919 bugfix: make LoadWallet assigns status always (AkioNak) -- #16378 The ultimate send RPC (Sjors) -- #15454 Remove the automatic creation and loading of the default wallet (achow101) -- #19501 `send*` RPCs in the wallet returns the "fee reason" (stackman27) -- #20130 Remove db mode string (S3RK) -- #19077 Add sqlite as an alternative wallet database and use it for new descriptor wallets (achow101) -- #20125 Expose database format in getwalletinfo (promag) -- #20198 Show name, format and if uses descriptors in bitcoin-wallet tool (jonasschnelli) -- #20216 Fix buffer over-read in SQLite file magic check (theStack) -- #20186 Make -wallet setting not create wallets (ryanofsky) -- #20230 Fix bug when just created encrypted wallet cannot get address (hebasto) -- #20282 Change `upgradewallet` return type to be an object (jnewbery) -- #20220 Explicit fee rate follow-ups/fixes for 0.21 (jonatack) -- #20199 Ignore (but warn) on duplicate -wallet parameters (jonasschnelli) -- #20324 Set DatabaseStatus::SUCCESS in MakeSQLiteDatabase (MarcoFalke) -- #20266 Fix change detection of imported internal descriptors (achow101) -- #20153 Do not import a descriptor with hardened derivations into a watch-only wallet (S3RK) -- #20344 Fix scanning progress calculation for single block range (theStack) -- #19502 Bugfix: Wallet: Soft-fail exceptions within ListWalletDir file checks (luke-jr) -- #20378 Fix potential division by 0 in WalletLogPrintf (jonasschnelli) -- #18836 Upgradewallet fixes and additional tests (achow101) -- #20139 Do not return warnings from UpgradeWallet() (stackman27) -- #20305 Introduce `fee_rate` sat/vB param/option (jonatack) -- #20426 Allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes (jonatack) -- #20573 wallet, bugfix: allow send with string `fee_rate` amounts (jonatack) - -### RPC and other APIs -- #18574 cli: Call getbalances.ismine.trusted instead of getwalletinfo.balance (jonatack) -- #17693 Add `generateblock` to mine a custom set of transactions (andrewtoth) -- #18495 Remove deprecated migration code (vasild) -- #18493 Remove deprecated "size" from mempool txs (vasild) -- #18467 Improve documentation and return value of settxfee (fjahr) -- #18607 Fix named arguments in documentation (MarcoFalke) -- #17831 doc: Fix and extend getblockstats examples (asoltys) -- #18785 Prevent valgrind false positive in `rest_blockhash_by_height` (ryanofsky) -- #18999 log: Remove "No rpcpassword set" from logs (MarcoFalke) -- #19006 Avoid crash when `g_thread_http` was never started (MarcoFalke) -- #18594 cli: Display multiwallet balances in -getinfo (jonatack) -- #19056 Make gettxoutsetinfo/GetUTXOStats interruptible (MarcoFalke) -- #19112 Remove special case for unknown service flags (MarcoFalke) -- #18826 Expose txinwitness for coinbase in JSON form from RPC (rvagg) -- #19282 Rephrase generatetoaddress help, and use `PACKAGE_NAME` (luke-jr) -- #16377 don't automatically append inputs in walletcreatefundedpsbt (Sjors) -- #19200 Remove deprecated getaddressinfo fields (jonatack) -- #19133 rpc, cli, test: add bitcoin-cli -generate command (jonatack) -- #19469 Deprecate banscore field in getpeerinfo (jonatack) -- #16525 Dump transaction version as an unsigned integer in RPC/TxToUniv (TheBlueMatt) -- #19555 Deduplicate WriteHDKeypath() used in decodepsbt (theStack) -- #19589 Avoid useless mempool query in gettxoutproof (MarcoFalke) -- #19585 RPCResult Type of MempoolEntryDescription should be OBJ (stylesuxx) -- #19634 Document getwalletinfo's `unlocked_until` field as optional (justinmoon) -- #19658 Allow RPC to fetch all addrman records and add records to addrman (jnewbery) -- #19696 Fix addnode remove command error (fjahr) -- #18654 Separate bumpfee's psbt creation function into psbtbumpfee (achow101) -- #19655 Catch listsinceblock `target_confirmations` exceeding block count (adaminsky) -- #19644 Document returned error fields as optional if applicable (theStack) -- #19455 rpc generate: print useful help and error message (jonatack) -- #19550 Add listindices RPC (fjahr) -- #19169 Validate provided keys for `query_options` parameter in listunspent (PastaPastaPasta) -- #18244 fundrawtransaction and walletcreatefundedpsbt also lock manually selected coins (Sjors) -- #14687 zmq: Enable TCP keepalive (mruddy) -- #19405 Add network in/out connections to `getnetworkinfo` and `-getinfo` (jonatack) -- #19878 rawtransaction: Fix argument in combinerawtransaction help message (pinheadmz) -- #19940 Return fee and vsize from testmempoolaccept (gzhao408) -- #13686 zmq: Small cleanups in the ZMQ code (domob1812) -- #19386, #19528, #19717, #19849, #19994 Assert that RPCArg names are equal to CRPCCommand ones (MarcoFalke) -- #19725 Add connection type to getpeerinfo, improve logs (amitiuttarwar) -- #19969 Send RPC bug fix and touch-ups (Sjors) -- #18309 zmq: Add support to listen on multiple interfaces (n-thumann) -- #20055 Set HTTP Content-Type in bitcoin-cli (laanwj) -- #19956 Improve invalid vout value rpc error message (n1rna) -- #20101 Change no wallet loaded message to be clearer (achow101) -- #19998 Add `via_tor` to `getpeerinfo` output (hebasto) -- #19770 getpeerinfo: Deprecate "whitelisted" field (replaced by "permissions") (luke-jr) -- #20120 net, rpc, test, bugfix: update GetNetworkName, GetNetworksInfo, regression tests (jonatack) -- #20595 Improve heuristic hex transaction decoding (sipa) -- #20731 Add missing description of vout in getrawtransaction help text (benthecarman) -- #19328 Add gettxoutsetinfo `hash_type` option (fjahr) -- #19731 Expose nLastBlockTime/nLastTXTime as last `block/last_transaction` in getpeerinfo (jonatack) -- #19572 zmq: Create "sequence" notifier, enabling client-side mempool tracking (instagibbs) -- #20002 Expose peer network in getpeerinfo; simplify/improve -netinfo (jonatack) - -### GUI -- #17905 Avoid redundant tx status updates (ryanofsky) -- #18646 Use `PACKAGE_NAME` in exception message (fanquake) -- #17509 Save and load PSBT (Sjors) -- #18769 Remove bug fix for Qt < 5.5 (10xcryptodev) -- #15768 Add close window shortcut (IPGlider) -- #16224 Bilingual GUI error messages (hebasto) -- #18922 Do not translate InitWarning messages in debug.log (hebasto) -- #18152 Use NotificationStatus enum for signals to GUI (hebasto) -- #18587 Avoid wallet tryGetBalances calls in WalletModel::pollBalanceChanged (ryanofsky) -- #17597 Fix height of QR-less ReceiveRequestDialog (hebasto) -- #17918 Hide non PKHash-Addresses in signing address book (emilengler) -- #17956 Disable unavailable context menu items in transactions tab (kristapsk) -- #17968 Ensure that ModalOverlay is resized properly (hebasto) -- #17993 Balance/TxStatus polling update based on last block hash (furszy) -- #18424 Use parent-child relation to manage lifetime of OptionsModel object (hebasto) -- #18452 Fix shutdown when `waitfor*` cmds are called from RPC console (hebasto) -- #15202 Add Close All Wallets action (promag) -- #19132 lock `cs_main`, `m_cached_tip_mutex` in that order (vasild) -- #18898 Display warnings as rich text (hebasto) -- #19231 add missing translation.h include to fix build (fanquake) -- #18027 "PSBT Operations" dialog (gwillen) -- #19256 Change combiner for signals to `optional_last_value` (fanquake) -- #18896 Reset toolbar after all wallets are closed (hebasto) -- #18993 increase console command max length (10xcryptodev) -- #19323 Fix regression in *txoutset* in GUI console (hebasto) -- #19210 Get rid of cursor in out-of-focus labels (hebasto) -- #19011 Reduce `cs_main` lock accumulation during GUI startup (jonasschnelli) -- #19844 Remove usage of boost::bind (fanquake) -- #20479 Fix QPainter non-determinism on macOS (0.21 backport) (laanwj) -- gui#6 Do not truncate node flag strings in debugwindow peers details tab (Saibato) -- gui#8 Fix regression in TransactionTableModel (hebasto) -- gui#17 doc: Remove outdated comment in TransactionTablePriv (MarcoFalke) -- gui#20 Wrap tooltips in the intro window (hebasto) -- gui#30 Disable the main window toolbar when the modal overlay is shown (hebasto) -- gui#34 Show permissions instead of whitelisted (laanwj) -- gui#35 Parse params directly instead of through node (ryanofsky) -- gui#39 Add visual accenting for the 'Create new receiving address' button (hebasto) -- gui#40 Clarify block height label (hebasto) -- gui#43 bugfix: Call setWalletActionsEnabled(true) only for the first wallet (hebasto) -- gui#97 Relax GUI freezes during IBD (jonasschnelli) -- gui#71 Fix visual quality of text in QR image (hebasto) -- gui#96 Slight improve create wallet dialog (Sjors) -- gui#102 Fix SplashScreen crash when run with -disablewallet (hebasto) -- gui#116 Fix unreasonable default size of the main window without loaded wallets (hebasto) -- gui#120 Fix multiwallet transaction notifications (promag) - -### Build system -- #18504 Drop bitcoin-tx and bitcoin-wallet dependencies on libevent (ryanofsky) -- #18586 Bump gitian descriptors to 0.21 (laanwj) -- #17595 guix: Enable building for `x86_64-w64-mingw32` target (dongcarl) -- #17929 add linker optimisation flags to gitian & guix (Linux) (fanquake) -- #18556 Drop make dist in gitian builds (hebasto) -- #18088 ensure we aren't using GNU extensions (fanquake) -- #18741 guix: Make source tarball using git-archive (dongcarl) -- #18843 warn on potentially uninitialized reads (vasild) -- #17874 make linker checks more robust (fanquake) -- #18535 remove -Qunused-arguments workaround for clang + ccache (fanquake) -- #18743 Add --sysroot option to mac os native compile flags (ryanofsky) -- #18216 test, build: Enable -Werror=sign-compare (Empact) -- #18928 don't pass -w when building for Windows (fanquake) -- #16710 Enable -Wsuggest-override if available (hebasto) -- #18738 Suppress -Wdeprecated-copy warnings (hebasto) -- #18862 Remove fdelt_chk back-compat code and sanity check (fanquake) -- #18887 enable -Werror=gnu (vasild) -- #18956 enforce minimum required Windows version (7) (fanquake) -- #18958 guix: Make V=1 more powerful for debugging (dongcarl) -- #18677 Multiprocess build support (ryanofsky) -- #19094 Only allow ASCII identifiers (laanwj) -- #18820 Propagate well-known vars into depends (dongcarl) -- #19173 turn on --enable-c++17 by --enable-fuzz (vasild) -- #18297 Use pkg-config in BITCOIN_QT_CONFIGURE for all hosts including Windows (hebasto) -- #19301 don't warn when doxygen isn't found (fanquake) -- #19240 macOS toolchain simplification and bump (dongcarl) -- #19356 Fix search for brew-installed BDB 4 on OS X (gwillen) -- #19394 Remove unused `RES_IMAGES` (Bushstar) -- #19403 improve `__builtin_clz*` detection (fanquake) -- #19375 target Windows 7 when building libevent and fix ipv6 usage (fanquake) -- #19331 Do not include server symbols in wallet (MarcoFalke) -- #19257 remove BIP70 configure option (fanquake) -- #18288 Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory (practicalswift) -- #18307 Require pkg-config for all of the hosts (hebasto) -- #19445 Update msvc build to use ISO standard C++17 (sipsorcery) -- #18882 fix -Wformat-security check when compiling with GCC (fanquake) -- #17919 Allow building with system clang (dongcarl) -- #19553 pass -fcommon when building genisoimage (fanquake) -- #19565 call `AC_PATH_TOOL` for dsymutil in macOS cross-compile (fanquake) -- #19530 build LTO support into Apple's ld64 (theuni) -- #19525 add -Wl,-z,separate-code to hardening flags (fanquake) -- #19667 set minimum required Boost to 1.58.0 (fanquake) -- #19672 make clean removes .gcda and .gcno files from fuzz directory (Crypt-iQ) -- #19622 Drop ancient hack in gitian-linux descriptor (hebasto) -- #19688 Add support for llvm-cov (hebasto) -- #19718 Add missed gcov files to 'make clean' (hebasto) -- #19719 Add Werror=range-loop-analysis (MarcoFalke) -- #19015 Enable some commonly enabled compiler diagnostics (practicalswift) -- #19689 build, qt: Add Qt version checking (hebasto) -- #17396 modest Android improvements (icota) -- #18405 Drop all of the ZeroMQ patches (hebasto) -- #15704 Move Win32 defines to configure.ac to ensure they are globally defined (luke-jr) -- #19761 improve sed robustness by not using sed (fanquake) -- #19758 Drop deprecated and unused `GUARDED_VAR` and `PT_GUARDED_VAR` annotations (hebasto) -- #18921 add stack-clash and control-flow protection options to hardening flags (fanquake) -- #19803 Bugfix: Define and use `HAVE_FDATASYNC` correctly outside LevelDB (luke-jr) -- #19685 CMake invocation cleanup (dongcarl) -- #19861 add /usr/local/ to `LCOV_FILTER_PATTERN` for macOS builds (Crypt-iQ) -- #19916 allow user to specify `DIR_FUZZ_SEED_CORPUS` for `cov_fuzz` (Crypt-iQ) -- #19944 Update secp256k1 subtree (including BIP340 support) (sipa) -- #19558 Split pthread flags out of ldflags and dont use when building libconsensus (fanquake) -- #19959 patch qt libpng to fix powerpc build (fanquake) -- #19868 Fix target name (hebasto) -- #19960 The vcpkg tool has introduced a proper way to use manifests (sipsorcery) -- #20065 fuzz: Configure check for main function (MarcoFalke) -- #18750 Optionally skip external warnings (vasild) -- #20147 Update libsecp256k1 (endomorphism, test improvements) (sipa) -- #20156 Make sqlite support optional (compile-time) (luke-jr) -- #20318 Ensure source tarball has leading directory name (MarcoFalke) -- #20447 Patch `qt_intersect_spans` to avoid non-deterministic behavior in LLVM 8 (achow101) -- #20505 Avoid secp256k1.h include from system (dergoegge) -- #20527 Do not ignore Homebrew's SQLite on macOS (hebasto) -- #20478 Don't set BDB flags when configuring without (jonasschnelli) -- #20563 Check that Homebrew's berkeley-db4 package is actually installed (hebasto) -- #19493 Fix clang build on Mac (bvbfan) - -### Tests and QA -- #18593 Complete impl. of `msg_merkleblock` and `wait_for_merkleblock` (theStack) -- #18609 Remove REJECT message code (hebasto) -- #18584 Check that the version message does not leak the local address (MarcoFalke) -- #18597 Extend `wallet_dump` test to cover comments (MarcoFalke) -- #18596 Try once more when RPC connection fails on Windows (MarcoFalke) -- #18451 shift coverage from getunconfirmedbalance to getbalances (jonatack) -- #18631 appveyor: Disable functional tests for now (MarcoFalke) -- #18628 Add various low-level p2p tests (MarcoFalke) -- #18615 Avoid accessing free'd memory in `validation_chainstatemanager_tests` (MarcoFalke) -- #18571 fuzz: Disable debug log file (MarcoFalke) -- #18653 add coverage for bitcoin-cli -rpcwait (jonatack) -- #18660 Verify findCommonAncestor always initializes outputs (ryanofsky) -- #17669 Have coins simulation test also use CCoinsViewDB (jamesob) -- #18662 Replace gArgs with local argsman in bench (MarcoFalke) -- #18641 Create cached blocks not in the future (MarcoFalke) -- #18682 fuzz: `http_request` workaround for libevent < 2.1.1 (theStack) -- #18692 Bump timeout in `wallet_import_rescan` (MarcoFalke) -- #18695 Replace boost::mutex with std::mutex (hebasto) -- #18633 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke) -- #18675 Don't initialize PrecomputedTransactionData in txvalidationcache tests (jnewbery) -- #18691 Add `wait_for_cookie_credentials()` to framework for rpcwait tests (jonatack) -- #18672 Add further BIP37 size limit checks to `p2p_filter.py` (theStack) -- #18721 Fix linter issue (hebasto) -- #18384 More specific `feature_segwit` test error messages and fixing incorrect comments (gzhao408) -- #18575 bench: Remove requirement that all benches use same testing setup (MarcoFalke) -- #18690 Check object hashes in `wait_for_getdata` (robot-visions) -- #18712 display command line options passed to `send_cli()` in debug log (jonatack) -- #18745 Check submitblock return values (MarcoFalke) -- #18756 Use `wait_for_getdata()` in `p2p_compactblocks.py` (theStack) -- #18724 Add coverage for -rpcwallet cli option (jonatack) -- #18754 bench: Add caddrman benchmarks (vasild) -- #18585 Use zero-argument super() shortcut (Python 3.0+) (theStack) -- #18688 fuzz: Run in parallel (MarcoFalke) -- #18770 Remove raw-tx byte juggling in `mempool_reorg` (MarcoFalke) -- #18805 Add missing `sync_all` to `wallet_importdescriptors.py` (achow101) -- #18759 bench: Start nodes with -nodebuglogfile (MarcoFalke) -- #18774 Added test for upgradewallet RPC (brakmic) -- #18485 Add `mempool_updatefromblock.py` (hebasto) -- #18727 Add CreateWalletFromFile test (ryanofsky) -- #18726 Check misbehavior more independently in `p2p_filter.py` (robot-visions) -- #18825 Fix message for `ECC_InitSanityCheck` test (fanquake) -- #18576 Use unittest for `test_framework` unit testing (gzhao408) -- #18828 Strip down previous releases boilerplate (MarcoFalke) -- #18617 Add factor option to adjust test timeouts (brakmic) -- #18855 `feature_backwards_compatibility.py` test downgrade after upgrade (achow101) -- #18864 Add v0.16.3 backwards compatibility test, bump v0.19.0.1 to v0.19.1 (Sjors) -- #18917 fuzz: Fix vector size problem in system fuzzer (brakmic) -- #18901 fuzz: use std::optional for `sep_pos_opt` variable (brakmic) -- #18888 Remove RPCOverloadWrapper boilerplate (MarcoFalke) -- #18952 Avoid os-dependent path (fametrano) -- #18938 Fill fuzzing coverage gaps for functions in consensus/validation.h, primitives/block.h and util/translation.h (practicalswift) -- #18986 Add capability to disable RPC timeout in functional tests (rajarshimaitra) -- #18530 Add test for -blocksonly and -whitelistforcerelay param interaction (glowang) -- #19014 Replace `TEST_PREVIOUS_RELEASES` env var with `test_framework` option (MarcoFalke) -- #19052 Don't limit fuzzing inputs to 1 MB for afl-fuzz (now: ∞ ∀ fuzzers) (practicalswift) -- #19060 Remove global `wait_until` from `p2p_getdata` (MarcoFalke) -- #18926 Pass ArgsManager into `getarg_tests` (glowang) -- #19110 Explain that a bug should be filed when the tests fail (MarcoFalke) -- #18965 Implement `base58_decode` (10xcryptodev) -- #16564 Always define the `raii_event_tests` test suite (candrews) -- #19122 Add missing `sync_blocks` to `wallet_hd` (MarcoFalke) -- #18875 fuzz: Stop nodes in `process_message*` fuzzers (MarcoFalke) -- #18974 Check that invalid witness destinations can not be imported (MarcoFalke) -- #18210 Type hints in Python tests (kiminuo) -- #19159 Make valgrind.supp work on aarch64 (MarcoFalke) -- #19082 Moved the CScriptNum asserts into the unit test in script.py (gillichu) -- #19172 Do not swallow flake8 exit code (hebasto) -- #19188 Avoid overwriting the NodeContext member of the testing setup [-Wshadow-field] (MarcoFalke) -- #18890 `disconnect_nodes` should warn if nodes were already disconnected (robot-visions) -- #19227 change blacklist to blocklist (TrentZ) -- #19230 Move base58 to own module to break circular dependency (sipa) -- #19083 `msg_mempool`, `fRelay`, and other bloomfilter tests (gzhao408) -- #16756 Connection eviction logic tests (mzumsande) -- #19177 Fix and clean `p2p_invalid_messages` functional tests (troygiorshev) -- #19264 Don't import asyncio to test magic bytes (jnewbery) -- #19178 Make `mininode_lock` non-reentrant (jnewbery) -- #19153 Mempool compatibility test (S3RK) -- #18434 Add a test-security target and run it in CI (fanquake) -- #19252 Wait for disconnect in `disconnect_p2ps` + bloomfilter test followups (gzhao408) -- #19298 Add missing `sync_blocks` (MarcoFalke) -- #19304 Check that message sends successfully when header is split across two buffers (troygiorshev) -- #19208 move `sync_blocks` and `sync_mempool` functions to `test_framework.py` (ycshao) -- #19198 Check that peers with forcerelay permission are not asked to feefilter (MarcoFalke) -- #19351 add two edge case tests for CSubNet (vasild) -- #19272 net, test: invalid p2p messages and test framework improvements (jonatack) -- #19348 Bump linter versions (duncandean) -- #19366 Provide main(…) function in fuzzer. Allow building uninstrumented harnesses with --enable-fuzz (practicalswift) -- #19412 move `TEST_RUNNER_EXTRA` into native tsan setup (fanquake) -- #19368 Improve functional tests compatibility with BSD/macOS (S3RK) -- #19028 Set -logthreadnames in unit tests (MarcoFalke) -- #18649 Add std::locale::global to list of locale dependent functions (practicalswift) -- #19140 Avoid fuzzer-specific nullptr dereference in libevent when handling PROXY requests (practicalswift) -- #19214 Auto-detect SHA256 implementation in benchmarks (sipa) -- #19353 Fix mistakenly swapped "previous" and "current" lock orders (hebasto) -- #19533 Remove unnecessary `cs_mains` in `denialofservice_tests` (jnewbery) -- #19423 add functional test for txrelay during and after IBD (gzhao408) -- #16878 Fix non-deterministic coverage of test `DoS_mapOrphans` (davereikher) -- #19548 fuzz: add missing overrides to `signature_checker` (jonatack) -- #19562 Fix fuzzer compilation on macOS (freenancial) -- #19370 Static asserts for consistency of fee defaults (domob1812) -- #19599 clean `message_count` and `last_message` (troygiorshev) -- #19597 test decodepsbt fee calculation (count input value only once per UTXO) (theStack) -- #18011 Replace current benchmarking framework with nanobench (martinus) -- #19489 Fail `wait_until` early if connection is lost (MarcoFalke) -- #19340 Preserve the `LockData` initial state if "potential deadlock detected" exception thrown (hebasto) -- #19632 Catch decimal.InvalidOperation from `TestNodeCLI#send_cli` (Empact) -- #19098 Remove duplicate NodeContext hacks (ryanofsky) -- #19649 Restore test case for p2p transaction blinding (instagibbs) -- #19657 Wait until `is_connected` in `add_p2p_connection` (MarcoFalke) -- #19631 Wait for 'cmpctblock' in `p2p_compactblocks` when it is expected (Empact) -- #19674 use throwaway _ variable for unused loop counters (theStack) -- #19709 Fix 'make cov' with clang (hebasto) -- #19564 `p2p_feefilter` improvements (logging, refactoring, speedup) (theStack) -- #19756 add `sync_all` to fix race condition in wallet groups test (kallewoof) -- #19727 Removing unused classes from `p2p_leak.py` (dhruv) -- #19722 Add test for getblockheader verboseness (torhte) -- #19659 Add a seed corpus generation option to the fuzzing `test_runner` (darosior) -- #19775 Activate segwit in TestChain100Setup (MarcoFalke) -- #19760 Remove confusing mininode terminology (jnewbery) -- #19752 Update `wait_until` usage in tests not to use the one from utils (slmtpz) -- #19839 Set appveyor VM version to previous Visual Studio 2019 release (sipsorcery) -- #19830 Add tsan supp for leveldb::DBImpl::DeleteObsoleteFiles (MarcoFalke) -- #19710 bench: Prevent thread oversubscription and decreases the variance of result values (hebasto) -- #19842 Update the vcpkg checkout commit ID in appveyor config (sipsorcery) -- #19507 Expand functional zmq transaction tests (instagibbs) -- #19816 Rename wait until helper to `wait_until_helper` (MarcoFalke) -- #19859 Fixes failing functional test by changing version (n-thumann) -- #19887 Fix flaky `wallet_basic` test (fjahr) -- #19897 Change `FILE_CHAR_BLOCKLIST` to `FILE_CHARS_DISALLOWED` (verretor) -- #19800 Mockwallet (MarcoFalke) -- #19922 Run `rpc_txoutproof.py` even with wallet disabled (MarcoFalke) -- #19936 batch rpc with params (instagibbs) -- #19971 create default wallet in extended tests (Sjors) -- #19781 add parameterized constructor for `msg_sendcmpct()` (theStack) -- #19963 Clarify blocksonly whitelistforcerelay test (t-bast) -- #20022 Use explicit p2p objects where available (guggero) -- #20028 Check that invalid peer traffic is accounted for (MarcoFalke) -- #20004 Add signet witness commitment section parse tests (MarcoFalke) -- #20034 Get rid of default wallet hacks (ryanofsky) -- #20069 Mention commit id in scripted diff error (laanwj) -- #19947 Cover `change_type` option of "walletcreatefundedpsbt" RPC (guggero) -- #20126 `p2p_leak_tx.py` improvements (use MiniWallet, add `p2p_lock` acquires) (theStack) -- #20129 Don't export `in6addr_loopback` (vasild) -- #20131 Remove unused nVersion=1 in p2p tests (MarcoFalke) -- #20161 Minor Taproot follow-ups (sipa) -- #19401 Use GBT to get block versions correct (luke-jr) -- #20159 `mining_getblocktemplate_longpoll.py` improvements (use MiniWallet, add logging) (theStack) -- #20039 Convert amounts from float to decimal (prayank23) -- #20112 Speed up `wallet_resendwallettransactions` with mockscheduler RPC (MarcoFalke) -- #20247 fuzz: Check for addrv1 compatibility before using addrv1 serializer. Fuzz addrv2 serialization (practicalswift) -- #20167 Add test for -blockversion (MarcoFalke) -- #19877 Clarify `rpc_net` & `p2p_disconnect_ban functional` tests (amitiuttarwar) -- #20258 Remove getnettotals/getpeerinfo consistency test (jnewbery) -- #20242 fuzz: Properly initialize PrecomputedTransactionData (MarcoFalke) -- #20262 Skip --descriptor tests if sqlite is not compiled (achow101) -- #18788 Update more tests to work with descriptor wallets (achow101) -- #20289 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CService (practicalswift) -- #20290 fuzz: Fix DecodeHexTx fuzzing harness issue (practicalswift) -- #20245 Run `script_assets_test` even if built --with-libs=no (MarcoFalke) -- #20300 fuzz: Add missing `ECC_Start` to `descriptor_parse` test (S3RK) -- #20283 Only try witness deser when checking for witness deser failure (MarcoFalke) -- #20303 fuzz: Assert expected DecodeHexTx behaviour when using legacy decoding (practicalswift) -- #20316 Fix `wallet_multiwallet` test issue on Windows (MarcoFalke) -- #20326 Fix `ecdsa_verify` in test framework (stepansnigirev) -- #20328 cirrus: Skip tasks on the gui repo main branch (MarcoFalke) -- #20355 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CSubNet (practicalswift) -- #20332 Mock IBD in `net_processing` fuzzers (MarcoFalke) -- #20218 Suppress `epoll_ctl` data race (MarcoFalke) -- #20375 fuzz: Improve coverage for CPartialMerkleTree fuzzing harness (practicalswift) -- #19669 contrib: Fixup valgrind suppressions file (MarcoFalke) -- #18879 valgrind: remove outdated suppressions (fanquake) -- #19226 Add BerkeleyDatabase tsan suppression (MarcoFalke) -- #20379 Remove no longer needed UBSan suppression (float divide-by-zero in validation.cpp) (practicalswift) -- #18190, #18736, #18744, #18775, #18783, #18867, #18994, #19065, - #19067, #19143, #19222, #19247, #19286, #19296, #19379, #19934, - #20188, #20395 Add fuzzing harnessses (practicalswift) -- #18638 Use mockable time for ping/pong, add tests (MarcoFalke) -- #19951 CNetAddr scoped ipv6 test coverage, rename scopeId to `m_scope_id` (jonatack) -- #20027 Use mockable time everywhere in `net_processing` (sipa) -- #19105 Add Muhash3072 implementation in Python (fjahr) -- #18704, #18752, #18753, #18765, #18839, #18866, #18873, #19022, - #19023, #19429, #19552, #19778, #20176, #20179, #20214, #20292, - #20299, #20322 Fix intermittent test issues (MarcoFalke) -- #20390 CI/Cirrus: Skip `merge_base` step for non-PRs (luke-jr) -- #18634 ci: Add fuzzbuzz integration configuration file (practicalswift) -- #18591 Add C++17 build to Travis (sipa) -- #18581, #18667, #18798, #19495, #19519, #19538 CI improvements (hebasto) -- #18683, #18705, #18735, #18778, #18799, #18829, #18912, #18929, - #19008, #19041, #19164, #19201, #19267, #19276, #19321, #19371, - #19427, #19730, #19746, #19881, #20294, #20339, #20368 CI improvements (MarcoFalke) -- #20489, #20506 MSVC CI improvements (sipsorcery) - -### Miscellaneous -- #18713 scripts: Add macho stack canary check to security-check.py (fanquake) -- #18629 scripts: Add pe .reloc section check to security-check.py (fanquake) -- #18437 util: `Detect posix_fallocate()` instead of assuming (vasild) -- #18413 script: Prevent ub when computing abs value for num opcode serialize (pierreN) -- #18443 lockedpool: avoid sensitive data in core files (FreeBSD) (vasild) -- #18885 contrib: Move optimize-pngs.py script to the maintainer repo (MarcoFalke) -- #18317 Serialization improvements step 6 (all except wallet/gui) (sipa) -- #16127 More thread safety annotation coverage (ajtowns) -- #19228 Update libsecp256k1 subtree (sipa) -- #19277 util: Add assert identity function (MarcoFalke) -- #19491 util: Make assert work with any value (MarcoFalke) -- #19205 script: `previous_release.sh` rewritten in python (bliotti) -- #15935 Add /settings.json persistent settings storage (ryanofsky) -- #19439 script: Linter to check commit message formatting (Ghorbanian) -- #19654 lint: Improve commit message linter in travis (fjahr) -- #15382 util: Add runcommandparsejson (Sjors) -- #19614 util: Use `have_fdatasync` to determine fdatasync() use (fanquake) -- #19813 util, ci: Hard code previous release tarball checksums (hebasto) -- #19841 Implement Keccak and `SHA3_256` (sipa) -- #19643 Add -netinfo peer connections dashboard (jonatack) -- #15367 feature: Added ability for users to add a startup command (benthecarman) -- #19984 log: Remove static log message "Initializing chainstate Chainstate [ibd] @ height -1 (null)" (practicalswift) -- #20092 util: Do not use gargs global in argsmanager member functions (hebasto) -- #20168 contrib: Fix `gen_key_io_test_vectors.py` imports (MarcoFalke) -- #19624 Warn on unknown `rw_settings` (MarcoFalke) -- #20257 Update secp256k1 subtree to latest master (sipa) -- #20346 script: Modify security-check.py to use "==" instead of "is" for literal comparison (tylerchambers) -- #18881 Prevent UB in DeleteLock() function (hebasto) -- #19180, #19189, #19190, #19220, #19399 Replace RecursiveMutex with Mutex (hebasto) -- #19347 Make `cs_inventory` nonrecursive (jnewbery) -- #19773 Avoid recursive lock in IsTrusted (promag) -- #18790 Improve thread naming (hebasto) -- #20140 Restore compatibility with old CSubNet serialization (sipa) -- #17775 DecodeHexTx: Try case where txn has inputs first (instagibbs) - -### Documentation -- #18502 Update docs for getbalance (default minconf should be 0) (uzyn) -- #18632 Fix macos comments in release-notes (MarcoFalke) -- #18645 Update thread information in developer docs (jnewbery) -- #18709 Note why we can't use `thread_local` with glibc back compat (fanquake) -- #18410 Improve commenting for coins.cpp|h (jnewbery) -- #18157 fixing init.md documentation to not require rpcpassword (jkcd) -- #18739 Document how to fuzz Bitcoin Core using Honggfuzz (practicalswift) -- #18779 Better explain GNU ld's dislike of ld64's options (fanquake) -- #18663 Mention build docs in README.md (saahilshangle) -- #18810 Update rest info on block size and json (chrisabrams) -- #18939 Add c++17-enable flag to fuzzing instructions (mzumsande) -- #18957 Add a link from ZMQ doc to ZMQ example in contrib/ (meeDamian) -- #19058 Drop protobuf stuff (hebasto) -- #19061 Add link to Visual Studio build readme (maitrebitcoin) -- #19072 Expand section on Getting Started (MarcoFalke) -- #18968 noban precludes maxuploadtarget disconnects (MarcoFalke) -- #19005 Add documentation for 'checklevel' argument in 'verifychain' RPC… (kcalvinalvin) -- #19192 Extract net permissions doc (MarcoFalke) -- #19071 Separate repository for the gui (MarcoFalke) -- #19018 fixing description of the field sequence in walletcreatefundedpsbt RPC method (limpbrains) -- #19367 Span pitfalls (sipa) -- #19408 Windows WSL build recommendation to temporarily disable Win32 PE support (sipsorcery) -- #19407 explain why passing -mlinker-version is required when cross-compiling (fanquake) -- #19452 afl fuzzing comment about afl-gcc and afl-g++ (Crypt-iQ) -- #19258 improve subtree check instructions (Sjors) -- #19474 Use precise permission flags where possible (MarcoFalke) -- #19494 CONTRIBUTING.md improvements (jonatack) -- #19268 Add non-thread-safe note to FeeFilterRounder::round() (hebasto) -- #19547 Update macOS cross compilation dependencies for Focal (hebasto) -- #19617 Clang 8 or later is required with `FORCE_USE_SYSTEM_CLANG` (fanquake) -- #19639 Remove Reference Links #19582 (RobertHosking) -- #19605 Set `CC_FOR_BUILD` when building on OpenBSD (fanquake) -- #19765 Fix getmempoolancestors RPC result doc (MarcoFalke) -- #19786 Remove label from good first issue template (MarcoFalke) -- #19646 Updated outdated help command for getblocktemplate (jakeleventhal) -- #18817 Document differences in bitcoind and bitcoin-qt locale handling (practicalswift) -- #19870 update PyZMQ install instructions, fix `zmq_sub.py` file permissions (jonatack) -- #19903 Update build-openbsd.md with GUI support (grubles) -- #19241 help: Generate checkpoint height from chainparams (luke-jr) -- #18949 Add CODEOWNERS file to automatically nominate PR reviewers (adamjonas) -- #20014 Mention signet in -help output (hebasto) -- #20015 Added default signet config for linearize script (gr0kchain) -- #19958 Better document features of feelers (naumenkogs) -- #19871 Clarify scope of eviction protection of outbound block-relay peers (ariard) -- #20076 Update and improve files.md (hebasto) -- #20107 Collect release-notes snippets (MarcoFalke) -- #20109 Release notes and followups from 19339 (glozow) -- #20090 Tiny followups to new getpeerinfo connection type field (amitiuttarwar) -- #20152 Update wallet files in files.md (hebasto) -- #19124 Document `ALLOW_HOST_PACKAGES` dependency option (skmcontrib) -- #20271 Document that wallet salvage is experimental (MarcoFalke) -- #20281 Correct getblockstats documentation for `(sw)total_weight` (shesek) -- #20279 release process updates/fixups (jonatack) -- #20238 Missing comments for signet parameters (decryp2kanon) -- #20756 Add missing field (permissions) to the getpeerinfo help (amitiuttarwar) -- #20668 warn that incoming conns are unlikely when not using default ports (adamjonas) -- #19961 tor.md updates (jonatack) -- #19050 Add warning for rest interface limitation (fjahr) -- #19390 doc/REST-interface: Remove stale info (luke-jr) -- #19344 docs: update testgen usage example (Bushstar) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 10xcryptodev -- Aaron Clauson -- Aaron Hook -- Adam Jonas -- Adam Soltys -- Adam Stein -- Akio Nakamura -- Alex Willmer -- Amir Ghorbanian -- Amiti Uttarwar -- Andrew Chow -- Andrew Toth -- Anthony Fieroni -- Anthony Towns -- Antoine Poinsot -- Antoine Riard -- Ben Carman -- Ben Woosley -- Benoit Verret -- Brian Liotti -- Bushstar -- Calvin Kim -- Carl Dong -- Chris Abrams -- Chris L -- Christopher Coverdale -- codeShark149 -- Cory Fields -- Craig Andrews -- Damian Mee -- Daniel Kraft -- Danny Lee -- David Reikher -- DesWurstes -- Dhruv Mehta -- Duncan Dean -- Elichai Turkel -- Elliott Jin -- Emil Engler -- Ethan Heilman -- eugene -- Fabian Jahr -- fanquake -- Ferdinando M. Ametrano -- freenancial -- furszy -- Gillian Chu -- Gleb Naumenko -- Glenn Willen -- Gloria Zhao -- glowang -- gr0kchain -- Gregory Sanders -- grubles -- gzhao408 -- Harris -- Hennadii Stepanov -- Hugo Nguyen -- Igor Cota -- Ivan Metlushko -- Ivan Vershigora -- Jake Leventhal -- James O'Beirne -- Jeremy Rubin -- jgmorgan -- Jim Posen -- “jkcd” -- jmorgan -- John Newbery -- Johnson Lau -- Jon Atack -- Jonas Schnelli -- Jonathan Schoeller -- João Barbosa -- Justin Moon -- kanon -- Karl-Johan Alm -- Kiminuo -- Kristaps Kaupe -- lontivero -- Luke Dashjr -- Marcin Jachymiak -- MarcoFalke -- Martin Ankerl -- Martin Zumsande -- maskoficarus -- Matt Corallo -- Matthew Zipkin -- MeshCollider -- Miguel Herranz -- MIZUTA Takeshi -- mruddy -- Nadav Ivgi -- Neha Narula -- Nicolas Thumann -- Niklas Gögge -- Nima Yazdanmehr -- nsa -- nthumann -- Oliver Gugger -- pad -- pasta -- Peter Bushnell -- pierrenn -- Pieter Wuille -- practicalswift -- Prayank -- Raúl Martínez (RME) -- RandyMcMillan -- Rene Pickhardt -- Riccardo Masutti -- Robert -- Rod Vagg -- Roy Shao -- Russell Yanofsky -- Saahil Shangle -- sachinkm77 -- saibato -- Samuel Dobson -- sanket1729 -- Sebastian Falbesoner -- Seleme Topuz -- Sishir Giri -- Sjors Provoost -- skmcontrib -- Stepan Snigirev -- Stephan Oeste -- Suhas Daftuar -- t-bast -- Tom Harding -- Torhte Butler -- TrentZ -- Troy Giorshev -- tryphe -- Tyler Chambers -- U-Zyn Chua -- Vasil Dimov -- wiz -- Wladimir J. van der Laan - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.21.1.md b/doc/release-notes/release-notes-0.21.1.md deleted file mode 100644 index d032fa8429263..0000000000000 --- a/doc/release-notes/release-notes-0.21.1.md +++ /dev/null @@ -1,203 +0,0 @@ -0.21.1 Release Notes -==================== - -Bitcoin Core version 0.21.1 is now available from: - - - -This minor release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no -longer supported. Additionally, Bitcoin Core does not yet change appearance -when macOS "dark mode" is activated. - -Notable changes -=============== - -## Taproot Soft Fork - -Included in this release are the mainnet and testnet activation -parameters for the taproot soft fork (BIP341) which also adds support -for schnorr signatures (BIP340) and tapscript (BIP342). - -If activated, these improvements will allow users of single-signature -scripts, multisignature scripts, and complex contracts to all use -identical-appearing commitments that enhance their privacy and the -fungibility of all bitcoins. Spenders will enjoy lower fees and the -ability to resolve many multisig scripts and complex contracts with the -same efficiency, low fees, and large anonymity set as single-sig users. -Taproot and schnorr also include efficiency improvements for full nodes -such as the ability to batch signature verification. Together, the -improvements lay the groundwork for future potential -upgrades that may improve efficiency, privacy, and fungibility further. - -Activation for taproot is being managed using a variation of BIP9 -versionbits called Speedy Trial (described in BIP341). Taproot's -versionbit is bit 2, and nodes will begin tracking which blocks signal -support for taproot at the beginning of the first retarget period after -taproot’s start date of 24 April 2021. If 90% of blocks within a -2,016-block retarget period (about two weeks) signal support for taproot -prior to the first retarget period beginning after the time of 11 August -2021, the soft fork will be locked in, and taproot will then be active -as of block 709632 (expected in early or mid November). - -Should taproot not be locked in via Speedy Trial activation, it is -expected that a follow-up activation mechanism will be deployed, with -changes to address the reasons the Speedy Trial method failed. - -This release includes the ability to pay taproot addresses, although -payments to such addresses are not secure until taproot activates. -It also includes the ability to relay and mine taproot transactions -after activation. Beyond those two basic capabilities, this release -does not include any code that allows anyone to directly use taproot. -The addition of taproot-related features to Bitcoin Core's wallet is -expected in later releases once taproot activation is assured. - -All users, businesses, and miners are encouraged to upgrade to this -release (or a subsequent compatible release) unless they object to -activation of taproot. If taproot is locked in, then upgrading before -block 709632 is highly recommended to help enforce taproot's new rules -and to avoid the unlikely case of seeing falsely confirmed transactions. - -Miners who want to activate Taproot should preferably use this release -to control their signaling. The `getblocktemplate` RPC results will -automatically be updated to signal once the appropriate start has been -reached and continue signaling until the timeout occurs or taproot -activates. Alternatively, miners may manually start signaling on bit 2 -at any time; if taproot activates, they will need to ensure they update -their nodes before block 709632 or non-upgraded nodes could cause them to mine on -an invalid chain. See the [versionbits -FAQ](https://bitcoincore.org/en/2016/06/08/version-bits-miners-faq/) for -details. - - -For more information about taproot, please see the following resources: - -- Technical specifications - - [BIP340 Schnorr signatures for secp256k1](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki) - - [BIP341 Taproot: SegWit version 1 spending rules](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) - - [BIP342 Validation of Taproot scripts](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki) - -- Popular articles; - - [Taproot Is Coming: What It Is, and How It Will Benefit Bitcoin](https://bitcoinmagazine.com/technical/taproot-coming-what-it-and-how-it-will-benefit-bitcoin) - - [What do Schnorr Signatures Mean for Bitcoin?](https://academy.binance.com/en/articles/what-do-schnorr-signatures-mean-for-bitcoin) - - [The Schnorr Signature & Taproot Softfork Proposal](https://blog.bitmex.com/the-schnorr-signature-taproot-softfork-proposal/) - -- Development history overview - - [Taproot](https://bitcoinops.org/en/topics/taproot/) - - [Schnorr signatures](https://bitcoinops.org/en/topics/schnorr-signatures/) - - [Tapscript](https://bitcoinops.org/en/topics/tapscript/) - - [Soft fork activation](https://bitcoinops.org/en/topics/soft-fork-activation/) - -- Other - - [Questions and answers related to taproot](https://bitcoin.stackexchange.com/questions/tagged/taproot) - - [Taproot review](https://github.com/ajtowns/taproot-review) - -Updated RPCs ------------- - -- Due to [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) - being implemented, behavior for all RPCs that accept addresses is changed when - a native witness version 1 (or higher) is passed. These now require a Bech32m - encoding instead of a Bech32 one, and Bech32m encoding will be used for such - addresses in RPC output as well. No version 1 addresses should be created - for mainnet until consensus rules are adopted that give them meaning - (e.g. through [BIP 341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)). - Once that happens, Bech32m is expected to be used for them, so this shouldn't - affect any production systems, but may be observed on other networks where such - addresses already have meaning (like signet). - -0.21.1 change log -================= - -### Consensus -- #21377 Speedy trial support for versionbits (ajtowns) -- #21686 Speedy trial activation parameters for Taproot (achow101) - -### P2P protocol and network code -- #20852 allow CSubNet of non-IP networks (vasild) -- #21043 Avoid UBSan warning in ProcessMessage(…) (practicalswift) - -### Wallet -- #21166 Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it (achow101) -- #21083 Avoid requesting fee rates multiple times during coin selection (achow101) - -### RPC and other APIs -- #21201 Disallow sendtoaddress and sendmany when private keys disabled (achow101) - -### Build system -- #21486 link against -lsocket if required for `*ifaddrs` (fanquake) -- #20983 Fix MSVC build after gui#176 (hebasto) - -### Tests and QA -- #21380 Add fuzzing harness for versionbits (ajtowns) -- #20812 fuzz: Bump FuzzedDataProvider.h (MarcoFalke) -- #20740 fuzz: Update FuzzedDataProvider.h from upstream (LLVM) (practicalswift) -- #21446 Update vcpkg checkout commit (sipsorcery) -- #21397 fuzz: Bump FuzzedDataProvider.h (MarcoFalke) -- #21081 Fix the unreachable code at `feature_taproot` (brunoerg) -- #20562 Test that a fully signed tx given to signrawtx is unchanged (achow101) -- #21571 Make sure non-IP peers get discouraged and disconnected (vasild, MarcoFalke) -- #21489 fuzz: cleanups for versionbits fuzzer (ajtowns) - -### Miscellaneous -- #20861 BIP 350: Implement Bech32m and use it for v1+ segwit addresses (sipa) - -### Documentation -- #21384 add signet to bitcoin.conf documentation (jonatack) -- #21342 Remove outdated comment (hebasto) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Aaron Clauson -- Andrew Chow -- Anthony Towns -- Bruno Garcia -- Fabian Jahr -- fanquake -- Hennadii Stepanov -- Jon Atack -- Luke Dashjr -- MarcoFalke -- Pieter Wuille -- practicalswift -- randymcmillan -- Sjors Provoost -- Vasil Dimov -- W. J. van der Laan - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.21.2.md b/doc/release-notes/release-notes-0.21.2.md deleted file mode 100644 index 3b33c48a26985..0000000000000 --- a/doc/release-notes/release-notes-0.21.2.md +++ /dev/null @@ -1,109 +0,0 @@ -0.21.2 Release Notes -==================== - -Bitcoin Core version 0.21.2 is now available from: - - - -This minor release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no -longer supported. Additionally, Bitcoin Core does not yet change appearance -when macOS "dark mode" is activated. - - -0.21.2 change log -================= - -### P2P protocol and network code - -- #21644 use NetPermissions::HasFlag() in CConnman::Bind() (jonatack) -- #22569 Rate limit the processing of rumoured addresses (sipa) - -### Wallet - -- #21907 Do not iterate a directory if having an error while accessing it (hebasto) - -### RPC - -- #19361 Reset scantxoutset progress before inferring descriptors (prusnak) - -### Build System - -- #21932 depends: update Qt 5.9 source url (kittywhiskers) -- #22017 Update Windows code signing certificate (achow101) -- #22191 Use custom MacOS code signing tool (achow101) -- #22713 Fix build with Boost 1.77.0 (sizeofvoid) - -### Tests and QA - -- #20182 Build with --enable-werror by default, and document exceptions (hebasto) -- #20535 Fix intermittent feature_taproot issue (MarcoFalke) -- #21663 Fix macOS brew install command (hebasto) -- #22279 add missing ECCVerifyHandle to base_encode_decode (apoelstra) -- #22730 Run fuzzer task for the master branch only (hebasto) - -### GUI - -- #277 Do not use QClipboard::Selection on Windows and macOS. (hebasto) -- #280 Remove user input from URI error message (prayank23) -- #365 Draw "eye" sign at the beginning of watch-only addresses (hebasto) - -### Miscellaneous - -- #22002 Fix crash when parsing command line with -noincludeconf=0 (MarcoFalke) -- #22137 util: Properly handle -noincludeconf on command line (take 2) (MarcoFalke) - - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- Andrew Poelstra -- fanquake -- Hennadii Stepanov -- Jon Atack -- Kittywhiskers Van Gogh -- Luke Dashjr -- MarcoFalke -- Pavol Rusnak -- Pieter Wuille -- prayank23 -- Rafael Sadowski -- W. J. van der Laan - - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-0.3.12.md b/doc/release-notes/release-notes-0.3.12.md deleted file mode 100644 index 38715bc75fe27..0000000000000 --- a/doc/release-notes/release-notes-0.3.12.md +++ /dev/null @@ -1,13 +0,0 @@ -Version 0.3.12 is now available. - -Features: -* json-rpc errors return a more standard error object. (thanks to Gavin Andresen) -* json-rpc command line returns exit codes. -* json-rpc "backupwallet" command. -* Recovers and continues if an exception is caused by a message you received. Other nodes shouldn't be able to cause an exception, and it hasn't happened before, but if a way is found to cause an exception, this would keep it from being used to stop network nodes. - -If you have json-rpc code that checks the contents of the error string, you need to change it to expect error objects of the form {"code":,"message":}, which is the standard. See this thread: -http://www.bitcoin.org/smf/index.php?topic=969.0 - -Download: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.12/ diff --git a/doc/release-notes/release-notes-0.3.13.md b/doc/release-notes/release-notes-0.3.13.md deleted file mode 100644 index 2b95ff233d4c2..0000000000000 --- a/doc/release-notes/release-notes-0.3.13.md +++ /dev/null @@ -1,26 +0,0 @@ -Version 0.3.13 is now available. You should upgrade to prevent potential problems with 0/unconfirmed transactions. Note: 0.3.13 prevents problems if you haven't already spent a 0/unconfirmed transaction, but if that already happened, you need 0.3.13.2. - -Changes: -* Don't count or spend payments until they have 1 confirmation. -* Internal version number from 312 to 31300. -* Only accept transactions sent by IP address if -allowreceivebyip is specified. -* Dropped DB_PRIVATE Berkeley DB flag. -* Fix problem sending the last cent with sub-cent fractional change. -* Auto-detect whether to use 128-bit 4-way SSE2 on Linux. -Gavin Andresen: -* Option -rpcallowip= to accept json-rpc connections from another machine. -* Clean shutdown on SIGTERM on Linux. - -Download: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.13/ - -(Thanks Laszlo for the Mac OSX build!) - -Note: -The SSE2 auto-detect in the Linux 64-bit version doesn't work with AMD in 64-bit mode. Please try this instead and let me know if it gets it right: -http://www.bitcoin.org/download/bitcoin-0.3.13.1-specialbuild-linux64.tar.gz - -You can still control the SSE2 use manually with -4way and -4way=0. - -Version 0.3.13.2 (SVN rev 161) has improvements for the case where you already had 0/unconfirmed transactions that you might have already spent. Here's a Windows build of it: -http://www.bitcoin.org/download/bitcoin-0.3.13.2-win32-setup.exe diff --git a/doc/release-notes/release-notes-0.3.14.md b/doc/release-notes/release-notes-0.3.14.md deleted file mode 100644 index e73052ed9bf0b..0000000000000 --- a/doc/release-notes/release-notes-0.3.14.md +++ /dev/null @@ -1,11 +0,0 @@ -Version 0.3.14 is now available -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.14/ - -Changes: -* Key pool feature for safer wallet backup -Gavin Andresen: -* TEST network mode with switch -testnet -* Option to use SSL for JSON-RPC connections on unix/osx -* validateaddress RPC command -eurekafag: -* Russian translation diff --git a/doc/release-notes/release-notes-0.3.15.md b/doc/release-notes/release-notes-0.3.15.md deleted file mode 100644 index b98052ef5934d..0000000000000 --- a/doc/release-notes/release-notes-0.3.15.md +++ /dev/null @@ -1,6 +0,0 @@ -* paytxfee switch is now per KB, so it adds the correct fee for large transactions -* sending avoids using coins with less than 6 confirmations if it can -* BitcoinMiner processes transactions in priority order based on age of dependencies -* make sure generation doesn't start before block 74000 downloaded -* bugfixes by Dean Gores -* testnet, keypoololdest and paytxfee added to getinfo diff --git a/doc/release-notes/release-notes-0.3.16.md b/doc/release-notes/release-notes-0.3.16.md deleted file mode 100644 index 743f84f30e9c2..0000000000000 --- a/doc/release-notes/release-notes-0.3.16.md +++ /dev/null @@ -1 +0,0 @@ -Never released. diff --git a/doc/release-notes/release-notes-0.3.17.md b/doc/release-notes/release-notes-0.3.17.md deleted file mode 100644 index d3604b8f8867f..0000000000000 --- a/doc/release-notes/release-notes-0.3.17.md +++ /dev/null @@ -1,12 +0,0 @@ -Version 0.3.17 is now available. - -Changes: -* new getwork, thanks m0mchil -* added transaction fee setting in UI options menu -* free transaction limits -* sendtoaddress returns transaction id instead of "sent" -* getaccountaddress - -The UI transaction fee setting was easy since it was still there from 0.1.5 and all I had to do was re-enable it. - -The accounts-based commands: move, sendfrom and getbalance will be in the next release. We still have some more changes to make first. diff --git a/doc/release-notes/release-notes-0.3.18.md b/doc/release-notes/release-notes-0.3.18.md deleted file mode 100644 index ab1c2e0692ffb..0000000000000 --- a/doc/release-notes/release-notes-0.3.18.md +++ /dev/null @@ -1,11 +0,0 @@ -Changes: -* Fixed a wallet.dat compatibility problem if you downgraded from 0.3.17 and then upgraded again -* IsStandard() check to only include known transaction types in blocks -* Jgarzik's optimisation to speed up the initial block download a little - -The main addition in this release is the Accounts-Based JSON-RPC commands that Gavin's been working on (more details at http://www.bitcoin.org/smf/index.php?topic=1886.0). -* getaccountaddress -* sendfrom -* move -* getbalance -* listtransactions diff --git a/doc/release-notes/release-notes-0.3.19.md b/doc/release-notes/release-notes-0.3.19.md deleted file mode 100644 index fcd867561d623..0000000000000 --- a/doc/release-notes/release-notes-0.3.19.md +++ /dev/null @@ -1,9 +0,0 @@ -There's more work to do on DoS, but I'm doing a quick build of what I have so far in case it's needed, before venturing into more complex ideas. The build for this is version 0.3.19. - -- Added some DoS controls -As Gavin and I have said clearly before, the software is not at all resistant to DoS attack. This is one improvement, but there are still more ways to attack than I can count. - -I'm leaving the -limitfreerelay part as a switch for now and it's there if you need it. - -- Removed "safe mode" alerts -"safe mode" alerts was a temporary measure after the 0.3.9 overflow bug. We can say all we want that users can just run with "-disablesafemode", but it's better just not to have it for the sake of appearances. It was never intended as a long term feature. Safe mode can still be triggered by seeing a longer (greater total PoW) invalid block chain. diff --git a/doc/release-notes/release-notes-0.3.20.1.md b/doc/release-notes/release-notes-0.3.20.1.md deleted file mode 100644 index 6c5682ea4e281..0000000000000 --- a/doc/release-notes/release-notes-0.3.20.1.md +++ /dev/null @@ -1 +0,0 @@ -Never released or release notes were lost. diff --git a/doc/release-notes/release-notes-0.3.20.2.md b/doc/release-notes/release-notes-0.3.20.2.md deleted file mode 100644 index 09ecb736bdb3f..0000000000000 --- a/doc/release-notes/release-notes-0.3.20.2.md +++ /dev/null @@ -1,17 +0,0 @@ -The maxsendbuffer bug (0.3.20.1 clients not being able to download the block chain from other 0.3.20.1 clients) was only going to get -worse as people upgraded, so I cherry-picked the bug fix and created a minor release yesterday. - -The Amazon Machine Images I used to do the builds are available: - - ami-38a05251 Bitcoin-v0.3.20.2 Mingw (Windows; Administrator password 'bitcoin development') - ami-30a05259 Bitcoin_0.3.20.2 Linux32 - ami-8abc4ee3 Bitcoin_0.3.20.2 Linux64 - -(mac build will be done soon) - -If you have already downloaded version 0.3.20.1, please either add this to your bitcoin.conf file: - - maxsendbuffer=10000 - maxreceivebuffer=10000 - -... or download the new version. diff --git a/doc/release-notes/release-notes-0.3.20.md b/doc/release-notes/release-notes-0.3.20.md deleted file mode 100644 index 9ae21802ee89b..0000000000000 --- a/doc/release-notes/release-notes-0.3.20.md +++ /dev/null @@ -1,22 +0,0 @@ -Please checkout the git integration branch from: - -https://github.com/bitcoin/bitcoin - -... and help test. The new features that need testing are: - -* -nolisten : https://github.com/bitcoin/bitcoin/pull/11 -* -rescan : scan block chain for missing wallet transactions -* -printtoconsole : https://github.com/bitcoin/bitcoin/pull/37 -* RPC gettransaction details : https://github.com/bitcoin/bitcoin/pull/24 -* listtransactions new features : https://github.com/bitcoin/bitcoin/pull/10 - -Bug fixes that also need testing: - -* -maxconnections= : https://github.com/bitcoin/bitcoin/pull/42 -* RPC listaccounts minconf : https://github.com/bitcoin/bitcoin/pull/27 -* RPC move, add time to output : https://github.com/bitcoin/bitcoin/pull/21 -* ...and several improvements to --help output. - -This needs more testing on Windows! Please drop me a quick private message, email, or IRC message if you are able to do some testing. If you find bugs, please open an issue at: - -https://github.com/bitcoin/bitcoin/issues diff --git a/doc/release-notes/release-notes-0.3.21.md b/doc/release-notes/release-notes-0.3.21.md deleted file mode 100644 index f3b6bc426470d..0000000000000 --- a/doc/release-notes/release-notes-0.3.21.md +++ /dev/null @@ -1,20 +0,0 @@ -Binaries for Bitcoin version 0.3.21 are available at: - https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.21/ - -Changes and new features from the 0.3.20 release include: - -* Universal Plug and Play support. Enable automatic opening of a port for incoming connections by running bitcoin or bitcoind with the - -upnp=1 command line switch or using the Options dialog box. - -* Support for full-precision bitcoin amounts. You can now send, and bitcoin will display, bitcoin amounts smaller than 0.01. However, sending fewer than 0.01 bitcoins still requires a 0.01 bitcoin fee (so you can send 1.0001 bitcoins without a fee, but you will be asked to pay a fee if you try to send 0.0001). - -* A new method of finding bitcoin nodes to connect with, via DNS A records. Use the -dnsseed option to enable. - -For developers, changes to bitcoin's remote-procedure-call API: - -* New rpc command "sendmany" to send bitcoins to more than one address in a single transaction. - -* Several bug fixes, including a serious intermittent bug that would sometimes cause bitcoind to stop accepting rpc requests. - -* -logtimestamps option, to add a timestamp to each line in debug.log. - -* Immature blocks (newly generated, under 120 confirmations) are now shown in listtransactions. diff --git a/doc/release-notes/release-notes-0.3.22.md b/doc/release-notes/release-notes-0.3.22.md deleted file mode 100644 index 4c05e3e5e78e3..0000000000000 --- a/doc/release-notes/release-notes-0.3.22.md +++ /dev/null @@ -1,16 +0,0 @@ -Download URL: https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.22/ - -This is largely a bugfix and TX fee schedule release. We also hope to make 0.3.23 a quick release, to fix problems that the network has seen due to explosive growth in the past week. - -Notable changes: -* Client will accept and relay TX's with 0.0005 BTC fee schedule (users still pay 0.01 BTC per kb, until next version) -* Non-standard transactions accepted on testnet -* Source code tree reorganized (prep for autotools build) -* Remove "Generate Coins" option from GUI, and remove 4way SSE miner. Internal reference CPU miner remains available, but users are directed to external miners for best hash production. -* IRC is overflowing. Client now bootstraps to channels #bitcoin00 - #bitcoin99 -* DNS names now may be used with -addnode, -connect (requires -dns to enable) - -RPC changes: -* 'listtransactions' adds 'from' param, for range queries -* 'move' may take account balances negative -* 'settxfee' added, to manually set TX fee diff --git a/doc/release-notes/release-notes-0.3.23.md b/doc/release-notes/release-notes-0.3.23.md deleted file mode 100644 index c1d520e4925d6..0000000000000 --- a/doc/release-notes/release-notes-0.3.23.md +++ /dev/null @@ -1,10 +0,0 @@ -Win32, Linux, MacOSX and source releases for bitcoin v0.3.23 have been uploaded to -https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/ - -This is another quick bugfix release, trying to deal with the influx of new bitcoin users. - -Main items of note: - -* P2P connect-to-node logic changed to reduce timeout a bit. The network saw a huge influx of new users, who do not permit incoming connections. This change is a short-term hack, to more quickly hunt for useful P2P connections. Better "leaf node" logic is in the works, but this should let us limp along until then. One may use -upnp to properly forward ports, and help the network. -* Transaction fee reduced to 0.0005 for new transactions -* Client will relay transactions with fees as low as 0.0001 BTC diff --git a/doc/release-notes/release-notes-0.3.24.md b/doc/release-notes/release-notes-0.3.24.md deleted file mode 100644 index d35ac66f2c8a0..0000000000000 --- a/doc/release-notes/release-notes-0.3.24.md +++ /dev/null @@ -1,20 +0,0 @@ -Bitcoin v0.3.24 is now available for download at -https://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.24/ - -This is another bug fix release. We had hoped to have wallet encryption ready for release, but more urgent fixes for existing clients were needed -- most notably block download problems were getting severe. Wallet encryption is ready for testing at https://github.com/bitcoin/bitcoin/pull/352 for the git-savvy, and hopefully will follow shortly in the next release, v0.4. - -Notable fixes in v0.3.24, and the main reasons for this release: - -F1) Block downloads were failing or taking unreasonable amounts of time to complete, because the increased size of the block chain was bumping up against some earlier buffer-size DoS limits. - -F2) Fix crash caused by loss/lack of network connection. - -Notable changes in v0.3.24: - -C1) DNS seeding enabled by default. - -C2) UPNP enabled by default in the GUI client. The percentage of bitcoin clients that accept incoming connections is quite small, and that is a problem. This should help. bitcoind, and unofficial builds, are unchanged (though we encourage use of "-upnp" to help the network!) - -C3) Initial unit testing framework. Bitcoin sorely needs automated tests, and this is a beginning. Contributions welcome. - -C4) Internal wallet code cleanup. While invisible to an end user, this change provides the basis for v0.4's wallet encryption. diff --git a/doc/release-notes/release-notes-0.4.0.md b/doc/release-notes/release-notes-0.4.0.md deleted file mode 100644 index 145072a369d85..0000000000000 --- a/doc/release-notes/release-notes-0.4.0.md +++ /dev/null @@ -1,70 +0,0 @@ -Bitcoin version 0.4.0 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.0/ - -The main feature in this release is wallet private key encryption; -you can set a passphrase that must be entered before sending coins. -See below for more information; if you decide to encrypt your wallet, -WRITE DOWN YOUR PASSPHRASE AND PUT IT IN A SECURE LOCATION. If you -forget or lose your wallet passphrase, you lose your bitcoins. -Previous versions of bitcoin are unable to read encrypted wallets, -and will crash on startup if the wallet is encrypted. - -Also note: bitcoin version 0.4 uses a newer version of Berkeley DB -(bdb version 4.8) than previous versions (bdb 4.7). If you upgrade -to version 0.4 and then revert back to an earlier version of bitcoin -the it may be unable to start because bdb 4.7 cannot read bdb 4.8 -"log" files. - - -Notable bug fixes from version 0.3.24: - -Fix several bitcoin-becomes-unresponsive bugs due to multithreading -deadlocks. - -Optimize database writes for large (lots of inputs) transactions -(fixes a potential denial-of-service attack) - - -Wallet Encryption - -Bitcoin supports native wallet encryption so that people who steal your -wallet file don't automatically get access to all of your Bitcoins. -In order to enable this feature, choose "Encrypt Wallet" from the -Options menu. You will be prompted to enter a passphrase, which -will be used as the key to encrypt your wallet and will be needed -every time you wish to send Bitcoins. If you lose this passphrase, -you will lose access to spend all of the bitcoins in your wallet, -no one, not even the Bitcoin developers can recover your Bitcoins. -This means you are responsible for your own security, store your -passphrase in a secure location and do not forget it. - -Remember that the encryption built into bitcoin only encrypts the -actual keys which are required to send your bitcoins, not the full -wallet. This means that someone who steals your wallet file will -be able to see all the addresses which belong to you, as well as the -relevant transactions, you are only protected from someone spending -your coins. - -It is recommended that you backup your wallet file before you -encrypt your wallet. To do this, close the Bitcoin client and -copy the wallet.dat file from ~/.bitcoin/ on Linux, /Users/(user -name)/Application Support/Bitcoin/ on Mac OSX, and %APPDATA%/Bitcoin/ -on Windows (that is /Users/(user name)/AppData/Roaming/Bitcoin on -Windows Vista and 7 and /Documents and Settings/(user name)/Application -Data/Bitcoin on Windows XP). Once you have copied that file to a -safe location, reopen the Bitcoin client and Encrypt your wallet. -If everything goes fine, delete the backup and enjoy your encrypted -wallet. Note that once you encrypt your wallet, you will never be -able to go back to a version of the Bitcoin client older than 0.4. - -Keep in mind that you are always responsible for your own security. -All it takes is a slightly more advanced wallet-stealing trojan which -installs a keylogger to steal your wallet passphrase as you enter it -in addition to your wallet file and you have lost all your Bitcoins. -Wallet encryption cannot keep you safe if you do not practice -good security, such as running up-to-date antivirus software, only -entering your wallet passphrase in the Bitcoin client and using the -same passphrase only as your wallet passphrase. - -See the doc/README file in the bitcoin source for technical details -of wallet encryption. diff --git a/doc/release-notes/release-notes-0.4.1.md b/doc/release-notes/release-notes-0.4.1.md deleted file mode 100644 index ac471a8d7fedd..0000000000000 --- a/doc/release-notes/release-notes-0.4.1.md +++ /dev/null @@ -1,38 +0,0 @@ -Bitcoin version 0.4.1 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.4.1/ - -This is a bugfix only release based on 0.4.0. - -Please report bugs by replying to this forum thread. - -MAJOR BUG FIX (CVE-2011-4447) - -The wallet encryption feature introduced in Bitcoin version 0.4.0 did not sufficiently secure the private keys. An attacker who -managed to get a copy of your encrypted wallet.dat file might be able to recover some or all of the unencrypted keys and steal the -associated coins. - -If you have a previously encrypted wallet.dat, the first time you run wxbitcoin or bitcoind the wallet will be rewritten, Bitcoin will -shut down, and you will be prompted to restart it to run with the new, properly encrypted file. - -If you had a previously encrypted wallet.dat that might have been copied or stolen (for example, you backed it up to a public -location) you should send all of your bitcoins to yourself using a new bitcoin address and stop using any previously generated addresses. - -Wallets encrypted with this version of Bitcoin are written properly. - -Technical note: the encrypted wallet's 'keypool' will be regenerated the first time you request a new bitcoin address; to be certain that the -new private keys are properly backed up you should: - -1. Run Bitcoin and let it rewrite the wallet.dat file - -2. Run it again, then ask it for a new bitcoin address. -wxBitcoin: new address visible on main window -bitcoind: run the 'walletpassphrase' RPC command to unlock the wallet, then run the 'getnewaddress' RPC command. - -3. If your encrypted wallet.dat may have been copied or stolen, send all of your bitcoins to the new bitcoin address. - -4. Shut down Bitcoin, then backup the wallet.dat file. -IMPORTANT: be sure to request a new bitcoin address before backing up, so that the 'keypool' is regenerated and backed up. - -"Security in depth" is always a good idea, so choosing a secure location for the backup and/or encrypting the backup before uploading it is recommended. And as in previous releases, if your machine is infected by malware there are several ways an attacker might steal your bitcoins. - -Thanks to Alan Reiner (etotheipi) for finding and reporting this bug. diff --git a/doc/release-notes/release-notes-0.4.2.md b/doc/release-notes/release-notes-0.4.2.md deleted file mode 100644 index 6c5682ea4e281..0000000000000 --- a/doc/release-notes/release-notes-0.4.2.md +++ /dev/null @@ -1 +0,0 @@ -Never released or release notes were lost. diff --git a/doc/release-notes/release-notes-0.4.3.md b/doc/release-notes/release-notes-0.4.3.md deleted file mode 100644 index fea1ae75b5e82..0000000000000 --- a/doc/release-notes/release-notes-0.4.3.md +++ /dev/null @@ -1,21 +0,0 @@ -bitcoind version 0.4.3 is now available for download at: -http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.3/ (until Gavin uploads to SourceForge) - -This is a bugfix-only release based on 0.4.0. - -Please note that the wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr. - -Please report bugs for the daemon only using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Stable source code is hosted at Gitorious: -http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.4.3#.tar.gz - -BUG FIXES - -Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticable during initial blockchain download). -Fixed some address-handling deadlocks (client freezes). -No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak). -Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed). -Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr). - diff --git a/doc/release-notes/release-notes-0.4.4.md b/doc/release-notes/release-notes-0.4.4.md deleted file mode 100644 index f435ba71604df..0000000000000 --- a/doc/release-notes/release-notes-0.4.4.md +++ /dev/null @@ -1,30 +0,0 @@ -Bitcoin version 0.4.4 is now available for download at: -http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.4/ - -This is a bugfix-only release based on 0.4.0. - -Please note that the wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr. - -Please report bugs for the daemon only using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Stable source code is hosted at Gitorious: -http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.4.4#.tar.gz - -BUG FIXES - -Limit the number of orphan transactions stored in memory, to prevent a potential denial-of-service attack by flooding orphan transactions. Also never store invalid transactions at all. -Fix possible buffer overflow on systems with very long application data paths. This is not exploitable. -Resolved multiple bugs preventing long-term unlocking of encrypted wallets (issue #922). -Only send local IP in "version" messages if it is globally routable (ie, not private), and try to get such an IP from UPnP if applicable. -Reannounce UPnP port forwards every 20 minutes, to workaround routers expiring old entries, and allow the -upnp option to override any stored setting. -Various memory leaks and potential null pointer deferences have been -fixed. -Several shutdown issues have been fixed. -Check that keys stored in the wallet are valid at startup, and if not, -report corruption. -Various build fixes. -If no password is specified to bitcoind, recommend a secure password. -Update hard-coded fallback seed nodes, choosing recent ones with long uptime and versions at least 0.4.0. -Add checkpoint at block 168,000. - diff --git a/doc/release-notes/release-notes-0.4.5.md b/doc/release-notes/release-notes-0.4.5.md deleted file mode 100644 index 6c5682ea4e281..0000000000000 --- a/doc/release-notes/release-notes-0.4.5.md +++ /dev/null @@ -1 +0,0 @@ -Never released or release notes were lost. diff --git a/doc/release-notes/release-notes-0.4.6.md b/doc/release-notes/release-notes-0.4.6.md deleted file mode 100644 index 07c5e4b6948a5..0000000000000 --- a/doc/release-notes/release-notes-0.4.6.md +++ /dev/null @@ -1,37 +0,0 @@ -bitcoind version 0.4.6 is now available for download at: -Windows: installer | zip (sig) -Source: tar.gz -bitcoind and Bitcoin-Qt version 0.6.0.7 are also tagged in git, but it is recommended to upgrade to 0.6.1. - -These are bugfix-only releases. - -Please report bugs by replying to this forum thread. Note that the 0.4.x wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr. - -BUG FIXES - -Version 0.6.0 allowed importing invalid "private keys", which would be unspendable; 0.6.0.7 will now verify the private key is valid, and refuse to import an invalid one -Verify status of encrypt/decrypt calls to detect failed padding -Check blocks for duplicate transactions earlier. Fixes #1167 -Upgrade Windows builds to OpenSSL 1.0.1b -Set label when selecting an address that already has a label. Fixes #1080 (Bitcoin-Qt) -JSON-RPC listtransactions's from/count handling is now fixed -Optimize and fix multithreaded access, when checking whether we already know about transactions -Fix potential networking deadlock -Proper support for Growl 1.3 notifications -Display an error, rather than crashing, if encoding a QR Code failed (0.6.0.7) -Don't erroneously set "Display addresses" for users who haven't explicitly enabled it (Bitcoin-Qt) -Some non-ASCII input in JSON-RPC expecting hexadecimal may have been misinterpreted rather than rejected -Missing error condition checking added -Do not show green tick unless all known blocks are downloaded. Fixes #921 (Bitcoin-Qt) -Increase time ago of last block for "up to date" status from 30 to 90 minutes -Show a message box when runaway exception happens (Bitcoin-Qt) -Use a messagebox to display the error when -server is provided without providing a rpc password -Show error message instead of exception crash when unable to bind RPC port (Bitcoin-Qt) -Correct sign message bitcoin address tooltip. Fixes #1050 (Bitcoin-Qt) -Removed "(no label)" from QR Code dialog titlebar if we have no label (0.6.0.7) -Removed an ugly line break in tooltip for mature transactions (0.6.0.7) -Add missing tooltip and key shortcut in settings dialog (part of #1088) (Bitcoin-Qt) -Work around issue in boost::program_options that prevents from compiling in clang -Fixed bugs occurring only on platforms with unsigned characters (such as ARM). -Rename make_windows_icon.py to .sh as it is a shell script. Fixes #1099 (Bitcoin-Qt) -Various trivial internal corrections to types used for counting/size loops and warnings diff --git a/doc/release-notes/release-notes-0.5.0.md b/doc/release-notes/release-notes-0.5.0.md deleted file mode 100644 index baa409b5f2fc9..0000000000000 --- a/doc/release-notes/release-notes-0.5.0.md +++ /dev/null @@ -1,70 +0,0 @@ -Bitcoin version 0.5.0 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.0/ - -The major change for this release is a completely new graphical interface that uses the Qt user interface toolkit. - -This release include German, Spanish, Spanish-Castilian, Norwegian and Dutch translations. More translations are welcome; join the project at Transifex if you can help: -https://www.transifex.net/projects/p/bitcoin/ - -Please report bugs using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -For Ubuntu users, there is a new ppa maintained by Matt Corallo which you can add to your system so that it will automatically keep bitcoin up-to-date. Just type "sudo apt-add-repository ppa:bitcoin/bitcoin" in your terminal, then install the bitcoin-qt package. - -MAJOR BUG FIX (CVE-2011-4447) - -The wallet encryption feature introduced in Bitcoin version 0.4.0 did not sufficiently secure the private keys. An attacker who -managed to get a copy of your encrypted wallet.dat file might be able to recover some or all of the unencrypted keys and steal the -associated coins. - -If you have a previously encrypted wallet.dat, the first time you run bitcoin-qt or bitcoind the wallet will be rewritten, Bitcoin will -shut down, and you will be prompted to restart it to run with the new, properly encrypted file. - -If you had a previously encrypted wallet.dat that might have been copied or stolen (for example, you backed it up to a public -location) you should send all of your bitcoins to yourself using a new bitcoin address and stop using any previously generated addresses. - -Wallets encrypted with this version of Bitcoin are written properly. - -Technical note: the encrypted wallet's 'keypool' will be regenerated the first time you request a new bitcoin address; to be certain that the -new private keys are properly backed up you should: - -1. Run Bitcoin and let it rewrite the wallet.dat file - -2. Run it again, then ask it for a new bitcoin address. -Bitcoin-Qt: Address Book, then New Address... -bitcoind: run the 'walletpassphrase' RPC command to unlock the wallet, then run the 'getnewaddress' RPC command. - -3. If your encrypted wallet.dat may have been copied or stolen, send all of your bitcoins to the new bitcoin address. - -4. Shut down Bitcoin, then backup the wallet.dat file. -IMPORTANT: be sure to request a new bitcoin address before backing up, so that the 'keypool' is regenerated and backed up. - -"Security in depth" is always a good idea, so choosing a secure location for the backup and/or encrypting the backup before uploading it is recommended. And as in previous releases, if your machine is infected by malware there are several ways an attacker might steal your bitcoins. - -Thanks to Alan Reiner (etotheipi) for finding and reporting this bug. - -MAJOR GUI CHANGES - -"Splash" graphics at startup that show address/wallet/blockchain loading progress. - -"Synchronizing with network" progress bar to show block-chain download progress. - -Icons at the bottom of the window that show how well connected you are to the network, with tooltips to display details. - -Drag and drop support for bitcoin: URIs on web pages. - -Export transactions as a .csv file. - -Many other GUI improvements, large and small. - -RPC CHANGES - -getmemorypool : new RPC command, provides everything needed to construct a block with a custom generation transaction and submit a solution - -listsinceblock : new RPC command, list transactions since given block - -signmessage/verifymessage : new RPC commands to sign a message with one of your private keys or verify that a message signed by the private key associated with a bitcoin address. - -GENERAL CHANGES - -Faster initial block download. diff --git a/doc/release-notes/release-notes-0.5.1.md b/doc/release-notes/release-notes-0.5.1.md deleted file mode 100644 index d56bff6d956bc..0000000000000 --- a/doc/release-notes/release-notes-0.5.1.md +++ /dev/null @@ -1,43 +0,0 @@ -Bitcoin version 0.5.1 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.1/ - -This is a bugfix-only release. - -This release includes 13 translations, including 5 new translations: -Italian, Hungarian, Ukranian, Portuguese (Brazilian) and Simplified Chinese. -More translations are welcome; join the project at Transifex if you can help: -https://www.transifex.net/projects/p/bitcoin/ - -Please report bugs using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Project source code is hosted at github; we are no longer -distributing .tar.gz files here, you can get them -directly from github: -https://github.com/bitcoin/bitcoin/tarball/v0.5.1 # .tar.gz -https://github.com/bitcoin/bitcoin/zipball/v0.5.1 # .zip - -For Ubuntu users, there is a new ppa maintained by Matt Corallo which -you can add to your system so that it will automatically keep -bitcoin up-to-date. Just type -sudo apt-add-repository ppa:bitcoin/bitcoin -in your terminal, then install the bitcoin-qt package. - - -BUG FIXES - -Re-enable SSL support for the JSON-RPC interface (it was unintentionally -disabled for the 0.5.0 release binaries). - -The code that finds peers via "dns seeds" no longer stops bitcoin startup -if one of the dns seed machines is down. - -Tooltips on the transaction list view were rendering incorrectly (as black boxes -or with a transparent background). - -Prevent a denial-of-service attack involving flooding a bitcoin node with -orphan blocks. - -The wallet passphrase dialog now warns you if the caps lock key was pressed. - -Improved searching in addresses and labels in bitcoin-qt. diff --git a/doc/release-notes/release-notes-0.5.2.md b/doc/release-notes/release-notes-0.5.2.md deleted file mode 100644 index f79816668d8cc..0000000000000 --- a/doc/release-notes/release-notes-0.5.2.md +++ /dev/null @@ -1,22 +0,0 @@ -Bitcoin version 0.5.2 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.2/ - -This is a bugfix-only release based on 0.5.1. - -Please report bugs using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Stable source code is hosted at Gitorious: -http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.2#.tar.gz - -BUG FIXES - -Check all transactions in blocks after the last checkpoint (0.5.0 and 0.5.1 skipped checking ECDSA signatures during initial blockchain download). -Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticable during initial blockchain download; this was -not a security vulnerability). -Fixed some address-handling deadlocks (client freezes). -No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak). -Re-enable SSL support for the JSON-RPC interface (it was unintentionally disabled for the 0.5.0 and 0.5.1 release Linux binaries). -Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed). -Don't show "IP" for transactions which are not necessarily IP transactions. -Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr). diff --git a/doc/release-notes/release-notes-0.5.3.md b/doc/release-notes/release-notes-0.5.3.md deleted file mode 100644 index 7c84c53325c8f..0000000000000 --- a/doc/release-notes/release-notes-0.5.3.md +++ /dev/null @@ -1,42 +0,0 @@ -Bitcoin version 0.5.3 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.3/ - -This is a bugfix-only release based on 0.5.1. -It also includes a few protocol updates. - -Please report bugs using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Stable source code is hosted at Gitorious: -http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.3#.tar.gz - -PROTOCOL UPDATES - -BIP 30: Introduce a new network rule: "a block is not valid if it contains a transaction whose hash already exists in the block chain, unless all that transaction's outputs were already spent before said block" beginning on March 15, 2012, 00:00 UTC. -On testnet, allow mining of min-difficulty blocks if 20 minutes have gone by without mining a regular-difficulty block. This is to make testing Bitcoin easier, and will not affect normal mode. - -BUG FIXES - -Limit the number of orphan transactions stored in memory, to prevent a potential denial-of-service attack by flooding orphan transactions. Also never store invalid transactions at all. -Fix possible buffer overflow on systems with very long application data paths. This is not exploitable. -Resolved multiple bugs preventing long-term unlocking of encrypted wallets -(issue #922). -Only send local IP in "version" messages if it is globally routable (ie, not private), and try to get such an IP from UPnP if applicable. -Reannounce UPnP port forwards every 20 minutes, to workaround routers expiring old entries, and allow the -upnp option to override any stored setting. -Skip splash screen when -min is used, and fix Minimize to Tray function. -Do not blank "label" in Bitcoin-Qt "Send" tab, if the user has already entered something. -Correct various labels and messages. -Various memory leaks and potential null pointer deferences have been fixed. -Handle invalid Bitcoin URIs using "bitcoin://" instead of "bitcoin:". -Several shutdown issues have been fixed. -Revert to "global progress indication", as starting from zero every time was considered too confusing for many users. -Check that keys stored in the wallet are valid at startup, and if not, report corruption. -Enable accessible widgets on Windows, so that people with screen readers such as NVDA can make sense of it. -Various build fixes. -If no password is specified to bitcoind, recommend a secure password. -Automatically focus and scroll to new "Send coins" entries in Bitcoin-Qt. -Show a message box for --help on Windows, for Bitcoin-Qt. -Add missing "About Qt" menu option to show built-in Qt About dialog. -Don't show "-daemon" as an option for Bitcoin-Qt, since it isn't available. -Update hard-coded fallback seed nodes, choosing recent ones with long uptime and versions at least 0.4.0. -Add checkpoint at block 168,000. diff --git a/doc/release-notes/release-notes-0.5.4.md b/doc/release-notes/release-notes-0.5.4.md deleted file mode 100644 index fcde3ac4e3a1b..0000000000000 --- a/doc/release-notes/release-notes-0.5.4.md +++ /dev/null @@ -1,39 +0,0 @@ -Bitcoin version 0.5.4 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.5.4/ -NOTE: 0.5.4rc3 is being renamed to 0.5.4 final with no changes. - -This is a bugfix-only release in the 0.5.x series, plus a few protocol updates. - -Please report bugs using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Stable source code is hosted at Gitorious: -http://gitorious.org/bitcoin/bitcoind-stable/archive-tarball/v0.5.4#.tar.gz - -PROTOCOL UPDATES - -BIP 16: Special-case "pay to script hash" logic to enable minimal validation of new transactions. -Support for validating message signatures produced with compressed public keys. - -BUG FIXES - -Build with thread-safe MingW libraries for Windows, fixing a dangerous memory corruption scenario when exceptions are thrown. -Fix broken testnet mining. -Stop excess inventory relay during initial block download. -When disconnecting a node, clear the received buffer so that we do not process any already received messages. -Yet another attempt at implementing "minimize to tray" that works on all operating systems. -Fix Bitcoin-Qt notifications under Growl 1.3. -Increase required age of Bitcoin-Qt's "not up to date" status from 30 to 90 minutes. -Implemented missing verifications that led to crash on entering some wrong passphrases for encrypted wallets. -Fix default filename suffixes in GNOME save dialog. -Make the "Send coins" tab use the configured unit type, even on the first attempt. -Print detailed wallet loading errors to debug.log when it is corrupt. -Allocate exactly the amount of space needed for signing transactions, instead of a fixed 10k buffer. -Workaround for improbable memory access violation. -Check wallet's minimum version before trying to load it. -Remove wxBitcoin properly when installing Bitcoin-Qt over it. (Windows) -Detail reorganization information better in debug log. -Use a messagebox to display the error when -server is provided without configuring a RPC password. -Testing suite build now honours provided CXXFLAGS. -Removed an extraneous line-break in mature transaction tooltips. -Fix some grammatical errors in translation process documentation. diff --git a/doc/release-notes/release-notes-0.5.5.md b/doc/release-notes/release-notes-0.5.5.md deleted file mode 100644 index 75ebc3e6b6226..0000000000000 --- a/doc/release-notes/release-notes-0.5.5.md +++ /dev/null @@ -1,37 +0,0 @@ -bitcoind and Bitcoin-Qt version 0.5.5 are now available for download at: -Windows: installer | zip (sig) -Source: tar.gz -bitcoind and Bitcoin-Qt version 0.6.0.7 are also tagged in git, but it is recommended to upgrade to 0.6.1. - -These are bugfix-only releases. - -Please report bugs by replying to this forum thread. Note that the 0.4.x wxBitcoin GUI client is no longer maintained nor supported. If someone would like to step up to maintain this, they should contact Luke-Jr. - -BUG FIXES - -Version 0.6.0 allowed importing invalid "private keys", which would be unspendable; 0.6.0.7 will now verify the private key is valid, and refuse to import an invalid one -Verify status of encrypt/decrypt calls to detect failed padding -Check blocks for duplicate transactions earlier. Fixes #1167 -Upgrade Windows builds to OpenSSL 1.0.1b -Set label when selecting an address that already has a label. Fixes #1080 (Bitcoin-Qt) -JSON-RPC listtransactions's from/count handling is now fixed -Optimize and fix multithreaded access, when checking whether we already know about transactions -Fix potential networking deadlock -Proper support for Growl 1.3 notifications -Display an error, rather than crashing, if encoding a QR Code failed (0.6.0.7) -Don't erroneously set "Display addresses" for users who haven't explicitly enabled it (Bitcoin-Qt) -Some non-ASCII input in JSON-RPC expecting hexadecimal may have been misinterpreted rather than rejected -Missing error condition checking added -Do not show green tick unless all known blocks are downloaded. Fixes #921 (Bitcoin-Qt) -Increase time ago of last block for "up to date" status from 30 to 90 minutes -Show a message box when runaway exception happens (Bitcoin-Qt) -Use a messagebox to display the error when -server is provided without providing a rpc password -Show error message instead of exception crash when unable to bind RPC port (Bitcoin-Qt) -Correct sign message bitcoin address tooltip. Fixes #1050 (Bitcoin-Qt) -Removed "(no label)" from QR Code dialog titlebar if we have no label (0.6.0.7) -Removed an ugly line break in tooltip for mature transactions (0.6.0.7) -Add missing tooltip and key shortcut in settings dialog (part of #1088) (Bitcoin-Qt) -Work around issue in boost::program_options that prevents from compiling in clang -Fixed bugs occurring only on platforms with unsigned characters (such as ARM). -Rename make_windows_icon.py to .sh as it is a shell script. Fixes #1099 (Bitcoin-Qt) -Various trivial internal corrections to types used for counting/size loops and warnings diff --git a/doc/release-notes/release-notes-0.6.0.md b/doc/release-notes/release-notes-0.6.0.md deleted file mode 100644 index 1963a36259156..0000000000000 --- a/doc/release-notes/release-notes-0.6.0.md +++ /dev/null @@ -1,138 +0,0 @@ -Bitcoin version 0.6.0 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/test/ - -This release includes more than 20 language localizations. -More translations are welcome; join the -project at Transifex to help: -https://www.transifex.net/projects/p/bitcoin/ - -Please report bugs using the issue tracker at github: -https://github.com/bitcoin/bitcoin/issues - -Project source code is hosted at github; we are no longer -distributing .tar.gz files here, you can get them -directly from github: -https://github.com/bitcoin/bitcoin/tarball/v0.6.0 # .tar.gz -https://github.com/bitcoin/bitcoin/zipball/v0.6.0 # .zip - -For Ubuntu users, there is a ppa maintained by Matt Corallo which -you can add to your system so that it will automatically keep -bitcoin up-to-date. Just type -sudo apt-add-repository ppa:bitcoin/bitcoin -in your terminal, then install the bitcoin-qt package. - - -KNOWN ISSUES - -Shutting down while synchronizing with the network -(downloading the blockchain) can take more than a minute, -because database writes are queued to speed up download -time. - - -NEW FEATURES SINCE BITCOIN VERSION 0.5 - -Initial network synchronization should be much faster -(one or two hours on a typical machine instead of ten or more -hours). - -Backup Wallet menu option. - -Bitcoin-Qt can display and save QR codes for sending -and receiving addresses. - -New context menu on addresses to copy/edit/delete them. - -New Sign Message dialog that allows you to prove that you -own a bitcoin address by creating a digital -signature. - -New wallets created with this version will -use 33-byte 'compressed' public keys instead of -65-byte public keys, resulting in smaller -transactions and less traffic on the bitcoin -network. The shorter keys are already supported -by the network but wallet.dat files containing -short keys are not compatible with earlier -versions of Bitcoin-Qt/bitcoind. - -New command-line argument -blocknotify= -that will spawn a shell process to run -when a new block is accepted. - -New command-line argument -splash=0 to disable -Bitcoin-Qt's initial splash screen - -validateaddress JSON-RPC api command output includes -two new fields for addresses in the wallet: -pubkey : hexadecimal public key -iscompressed : true if pubkey is a short 33-byte key - -New JSON-RPC api commands for dumping/importing -private keys from the wallet (dumprivkey, importprivkey). - -New JSON-RPC api command for getting information about -blocks (getblock, getblockhash). - -New JSON-RPC api command (getmininginfo) for getting -extra information related to mining. The getinfo -JSON-RPC command no longer includes mining-related -information (generate/genproclimit/hashespersec). - - - -NOTABLE CHANGES - -BIP30 implemented (security fix for an attack involving -duplicate "coinbase transactions"). - -The -nolisten, -noupnp and -nodnsseed command-line -options were renamed to -listen, -upnp and -dnsseed, -with a default value of 1. The old names are still -supported for compatibility (so specifying -nolisten -is automatically interpreted as -listen=0; every -boolean argument can now be specified as either --foo or -nofoo). - -The -noirc command-line options was renamed to --irc, with a default value of 0. Run -irc=1 to -get the old behavior. - -Three fill-up-available-memory denial-of-service -attacks were fixed. - - -NOT YET IMPLEMENTED FEATURES - -Support for clicking on bitcoin: URIs and -opening/launching Bitcoin-Qt is available only on Linux, -and only if you configure your desktop to launch -Bitcoin-Qt. All platforms support dragging and dropping -bitcoin: URIs onto the Bitcoin-Qt window to start -payment. - - -PRELIMINARY SUPPORT FOR MULTISIGNATURE TRANSACTIONS - -This release has preliminary support for multisignature -transactions-- transactions that require authorization -from more than one person or device before they -will be accepted by the bitcoin network. - -Prior to this release, multisignature transactions -were considered 'non-standard' and were ignored; -with this release multisignature transactions are -considered standard and will start to be relayed -and accepted into blocks. - -It is expected that future releases of Bitcoin-Qt -will support the creation of multisignature transactions, -once enough of the network has upgraded so relaying -and validating them is robust. - -For this release, creation and testing of multisignature -transactions is limited to the bitcoin test network using -the "addmultisigaddress" JSON-RPC api call. - -Short multisignature address support is included in this -release, as specified in BIP 13 and BIP 16. diff --git a/doc/release-notes/release-notes-0.6.1.md b/doc/release-notes/release-notes-0.6.1.md deleted file mode 100644 index ef7966ecd6809..0000000000000 --- a/doc/release-notes/release-notes-0.6.1.md +++ /dev/null @@ -1,2 +0,0 @@ -Never released - diff --git a/doc/release-notes/release-notes-0.6.2.md b/doc/release-notes/release-notes-0.6.2.md deleted file mode 100644 index bb85fb23a0414..0000000000000 --- a/doc/release-notes/release-notes-0.6.2.md +++ /dev/null @@ -1,50 +0,0 @@ -Bitcoin version 0.6.2 is now available for download at: -http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.2/ - -This is a bug-fix and code-cleanup release, with no major new features. - -Please report bugs using the github issue tracker at: -https://github.com/bitcoin/bitcoin/issues - - -NOTABLE CHANGES - -Much faster shutdowns. However, the blkindex.dat file is no longer -portable to different data directories by default. If you need a -portable blkindex.dat file then run with the new -detachdb=1 option -or the "Detach databases at shutdown" GUI preference. - -Fixed https://github.com/bitcoin/bitcoin/issues/1065, a bug that -could cause long-running nodes to crash. - -Mac and Windows binaries are compiled against OpenSSL 1.0.1b (Linux -binaries are dynamically linked to the version of OpenSSL on the system). - - -CHANGE SUMMARY - -Use 'git shortlog --no-merges v0.6.0..' for a summary of this release. - -Source codebase changes: -- Many source code cleanups and warnings fixes. Close to building with -Wall -- Locking overhaul, and several minor locking fixes -- Several source code portability fixes, e.g. FreeBSD - -JSON-RPC interface changes: -- addmultisigaddress enabled for mainnet (previously only enabled for testnet) - -Network protocol changes: -- protocol version 60001 -- added nonce value to "ping" message (BIP 31) -- added new "pong" message (BIP 31) - -Backend storage changes: -- Less redundant database flushing, especially during initial block download -- Shutdown improvements (see above) - -Qt user interface: -- minor URI handling improvements -- progressbar improvements -- error handling improvements (show message box rather than console exception, -etc.) -- by popular request, make 4th bar of connection icon green diff --git a/doc/release-notes/release-notes-0.6.3.md b/doc/release-notes/release-notes-0.6.3.md deleted file mode 100644 index c27f607b5c58e..0000000000000 --- a/doc/release-notes/release-notes-0.6.3.md +++ /dev/null @@ -1,29 +0,0 @@ -Bitcoin version 0.6.3 is now available for download at: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/ - -This is a bug-fix release, with no new features. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - -CHANGE SUMMARY - -Fixed a serious denial-of-service attack that could cause the -bitcoin process to become unresponsive. Thanks to Sergio Lerner -for finding and responsibly reporting the problem. (CVE-2012-3789) - -Optimized the process of checking transaction signatures, to -speed up processing of new block messages and make propagating -blocks across the network faster. - -Fixed an obscure bug that could cause the bitcoin process to get -stuck on an invalid block-chain, if the invalid chain was -hundreds of blocks long. - -Bitcoin-Qt no longer automatically selects the first address -in the address book (Issue #1384). - -Fixed minimize-to-dock behavior of Bitcoin-Qt on the Mac. - -Added a block checkpoint at block 185,333 to speed up initial -blockchain download. diff --git a/doc/release-notes/release-notes-0.7.0.md b/doc/release-notes/release-notes-0.7.0.md deleted file mode 100644 index d33a58f99ffea..0000000000000 --- a/doc/release-notes/release-notes-0.7.0.md +++ /dev/null @@ -1,169 +0,0 @@ -Bitcoin version 0.7.0 is now available for download at: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.0/ - -We recommend that everybody running prior versions of bitcoind/Bitcoin-Qt -upgrade to this release, except for users running Mac OSX 10.5. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - -Project source code is hosted at github; you can get -source-only tarballs/zipballs directly from there: - https://github.com/bitcoin/bitcoin/tarball/v0.7.0 # .tar.gz - https://github.com/bitcoin/bitcoin/zipball/v0.7.0 # .zip - -Ubuntu Linux users can use the "Personal Package Archive" (PPA) -maintained by Matt Corallo to automatically keep -bitcoin up-to-date. Just type - sudo apt-add-repository ppa:bitcoin/bitcoin - sudo apt-get update -in your terminal, then install the bitcoin-qt package: - sudo apt-get install bitcoin-qt - - -How to Upgrade - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -Code: -/Applications/Bitcoin-Qt -(on Mac) or -Code: -bitcoind/bitcoin-qt -(on Linux). - -If you were running on Linux with a version that might have been compiled -with a different version of Berkeley DB (for example, if you were using the -PPA and are switching to the binary release), then run the old version again -with the -detachdb argument and shut it down; if you do not, then the new -version will not be able to read the database files and will exit with an error. - -Incompatible Changes - -* Replaced the 'getmemorypool' RPC command with 'getblocktemplate/submitblock' - and 'getrawmempool' commands. -* Remove deprecated RPC 'getblocknumber' - -Bitcoin Improvement Proposals implemented - -BIP 22 - 'getblocktemplate', 'submitblock' RPCs -BIP 34 - block version 2, height in coinbase -BIP 35 - 'mempool' message, extended 'getdata' message behavior - - -Core bitcoin handling and blockchain database - -* Reduced CPU usage, by eliminating some redundant hash calculations -* Cache signature verifications, to eliminate redundant signature checks -* Transactions with zero-value outputs are considered non-standard -* Mining: when creating new blocks, sort 'paid' area by fee-per-kb -* Database: better validation of on-disk stored data -* Database: minor optimizations and reliability improvements -* -loadblock=FILE will import an external block file -* Additional DoS (denial-of-service) prevention measures -* New blockchain checkpoint at block 193,000 - - -JSON-RPC API - -* Internal HTTP server is now thread-per-connection, rather than - a single-threaded queue that would stall on network I/O. -* Internal HTTP server supports HTTP/1.1, pipelined requests and - connection keep-alive. -* Support JSON-RPC 2.0 batches, to encapsulate multiple JSON-RPC requests - within a single HTTP request. -* IPv6 support -* Added raw transaction API. See https://gist.github.com/2839617 -* Added 'getrawmempool', to list contents of TX memory pool -* Added 'getpeerinfo', to list data about each connected network peer -* Added 'listaddressgroupings' for better coin control -* Rework getblock call. -* Remove deprecated RPC 'getblocknumber' -* Remove superceded RPC 'getmemorypool' (see BIP 22, above) -* listtransactions output now displays "smart" times for transactions, - and 'blocktime' and 'timereceived' fields were added - - -P2P networking - -* IPv6 support -* Tor hidden service support (see doc/Tor.txt) -* Attempts to fix "stuck blockchain download" problems -* Replace BDB database "addr.dat" with internally-managed "peers.dat" - file containing peer address data. -* Lower default send buffer from 10MB to 1MB -* proxy: SOCKS5 by default -* Support connecting by hostnames passed to proxy -* Add -seednode connections, and use this instead of DNS seeds when proxied -* Added -externalip and -discover -* Add -onlynet to connect only to a given network (IPv4, IPv6, or Tor) -* Separate listening sockets, -bind= - - -Qt GUI - -* Add UI RPC console / debug window -* Re-Enable URI handling on Windows, add safety checks and tray-notifications -* Harmonize the use of ellipsis ("...") to be used in menus, but not on buttons -* Add 2 labels to the overviewpage that display Wallet and Transaction status (obsolete or current) -* Extend the optionsdialog (e.g. language selection) and re-work it to a tabbed UI -* Merge sign/verify message into a single window with tabbed UI -* Ensure a changed bitcoin unit immediately updates all GUI elements that use units -* Update QR Code dialog -* Improve error reporting at startup -* Fine-grained UI updates for a much smoother UI during block downloads -* Remove autocorrection of 0/i in addresses in UI -* Reorganize tray icon menu into more logical order -* Persistently poll for balance change when number of blocks changed -* Much better translations -* Override progress bar design on platforms with segmented progress bars to assist with readability -* Added 'immature balance' display on the overview page -* (Windows only): enable ASLR and DEP for bitcoin-qt.exe -* (Windows only): add meta-data to bitcoin-qt.exe (e.g. description) - -Internal codebase - -* Additional unit tests -* Compile warning fixes - - -Miscellaneous - -* Reopen debug.log upon SIGHUP -* Bash programmable completion for bitcoind(1) -* On supported OS's, each thread is given a useful name - - -Thanks to everybody who contributed to this release: - -Chris Moore -Christian von Roques -David Joel Schwartz -Douglas Huff -Fordy -Gavin Andresen -Giel van Schijndel -Gregory Maxwell -Jeff Garzik -Luke Dashjr -Matt Corallo -Michael Ford -Michael Hendricks -Peter Todd -Philip Kaufmann -Pieter Wuille -R E Broadley -Ricardo M. Correia -Rune K. Svendsen -Scott Ellis -Stephane Glondu -Wladimir J. van der Laan -cardpuncher -coderrr -fanquake -grimd34th -sje397 -xanatos - -Thanks to Sergio Lerner for reporting denial-of-service vulnerabilities fixed in this release. diff --git a/doc/release-notes/release-notes-0.7.1.md b/doc/release-notes/release-notes-0.7.1.md deleted file mode 100644 index 22e910c09fdf5..0000000000000 --- a/doc/release-notes/release-notes-0.7.1.md +++ /dev/null @@ -1,110 +0,0 @@ -Bitcoin version 0.7.1 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.1/ - -This is a bug-fix minor release. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - -Project source code is hosted at github; you can get -source-only tarballs/zipballs directly from there: - https://github.com/bitcoin/bitcoin/tarball/v0.7.1 # .tar.gz - https://github.com/bitcoin/bitcoin/zipball/v0.7.1 # .zip - -Ubuntu Linux users can use the "Personal Package Archive" (PPA) -maintained by Matt Corallo to automatically keep -up-to-date. Just type: - sudo apt-add-repository ppa:bitcoin/bitcoin - sudo apt-get update -in your terminal, then install the bitcoin-qt package: - sudo apt-get install bitcoin-qt - -KNOWN ISSUES ------------- - -Mac OSX 10.5 is no longer supported. - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you were running on Linux with a version that might have been compiled -with a different version of Berkeley DB (for example, if you were using an -Ubuntu PPA version), then run the old version again with the -detachdb -argument and shut it down; if you do not, then the new version will not -be able to read the database files and will exit with an error. - -Explanation of -detachdb (and the new "stop true" RPC command): -The Berkeley DB database library stores data in both ".dat" and -"log" files, so the database is always in a consistent state, -even in case of power failure or other sudden shutdown. The -format of the ".dat" files is portable between different -versions of Berkeley DB, but the "log" files are not-- even minor -version differences may have incompatible "log" files. The --detachdb option moves any pending changes from the "log" files -to the "blkindex.dat" file for maximum compatibility, but makes -shutdown much slower. Note that the "wallet.dat" file is always -detached, and versions prior to 0.6.0 detached all databases -at shutdown. - -New features ------------- - -* Added a boolean argument to the RPC 'stop' command, if true sets - -detachdb to create standalone database .dat files before shutting down. - -* -salvagewallet command-line option, which moves any existing wallet.dat - to wallet.{timestamp}.dat and then attempts to salvage public/private - keys and master encryption keys (if the wallet is encrypted) into - a new wallet.dat. This should only be used if your wallet becomes - corrupted, and is not intended to replace regular wallet backups. - -* Import $DataDir/bootstrap.dat automatically, if it exists. - -Dependency changes ------------------- - -* Qt 4.8.2 for Windows builds - -* openssl 1.0.1c - -Bug fixes ---------- - -* Clicking on a bitcoin: URI on Windows should now launch Bitcoin-Qt properly. - -* When running -testnet, use RPC port 18332 by default. - -* Better detection and handling of corrupt wallet.dat and blkindex.dat files. - Previous versions would crash with a DB_RUNRECOVERY exception, this - version detects most problems and tells you how to recover if it - cannot recover itself. - -* Fixed an uninitialized variable bug that could cause transactions to - be reported out of order. - -* Fixed a bug that could cause occasional crashes on exit. - -* Warn the user that they need to create fresh wallet backups after they - encrypt their wallet. - ----------------------------------------------------- -Thanks to everybody who contributed to this release: - -Gavin Andresen -Jeff Garzik -Luke Dashjr -Mark Friedenbach -Matt Corallo -Philip Kaufmann -Pieter Wuille -Rune K. Svendsen -Virgil Dupras -Wladimir J. van der Laan -fanquake -kjj2 -xanatos diff --git a/doc/release-notes/release-notes-0.7.2.md b/doc/release-notes/release-notes-0.7.2.md deleted file mode 100644 index 40af34962bd9c..0000000000000 --- a/doc/release-notes/release-notes-0.7.2.md +++ /dev/null @@ -1,68 +0,0 @@ -Bitcoin version 0.7.2 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.7.2 - -This is a bug-fix minor release. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you were running on Linux with a version that might have been compiled -with a different version of Berkeley DB (for example, if you were using an -Ubuntu PPA version), then run the old version again with the -detachdb -argument and shut it down; if you do not, then the new version will not -be able to read the database files and will exit with an error. - -Explanation of -detachdb (and the new "stop true" RPC command): -The Berkeley DB database library stores data in both ".dat" and -"log" files, so the database is always in a consistent state, -even in case of power failure or other sudden shutdown. The -format of the ".dat" files is portable between different -versions of Berkeley DB, but the "log" files are not-- even minor -version differences may have incompatible "log" files. The --detachdb option moves any pending changes from the "log" files -to the "blkindex.dat" file for maximum compatibility, but makes -shutdown much slower. Note that the "wallet.dat" file is always -detached, and versions prior to 0.6.0 detached all databases -at shutdown. - -Bug fixes ---------- - -* Prevent RPC 'move' from deadlocking. This was caused by trying to lock the - database twice. - -* Fix use-after-free problems in initialization and shutdown, the latter of - which caused Bitcoin-Qt to crash on Windows when exiting. - -* Correct library linking so building on Windows natively works. - -* Avoid a race condition and out-of-bounds read in block creation/mining code. - -* Improve platform compatibility quirks, including fix for 100% CPU utilization - on FreeBSD 9. - -* A few minor corrections to error handling, and updated translations. - -* OSX 10.5 supported again - ----------------------------------------------------- -Thanks to everybody who contributed to this release: - -Alex -dansmith -Gavin Andresen -Gregory Maxwell -Jeff Garzik -Luke Dashjr -Philip Kaufmann -Pieter Wuille -Wladimir J. van der Laan -grimd34th diff --git a/doc/release-notes/release-notes-0.8.0.md b/doc/release-notes/release-notes-0.8.0.md deleted file mode 100644 index 4e98a7740fc25..0000000000000 --- a/doc/release-notes/release-notes-0.8.0.md +++ /dev/null @@ -1,139 +0,0 @@ -Bitcoin-Qt version 0.8.0 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.0/ - -This is a major release designed to improve performance and handle the -increasing volume of transactions on the network. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -The first time you run after the upgrade a re-indexing process will be -started that will take anywhere from 30 minutes to several hours, -depending on the speed of your machine. - -Incompatible Changes --------------------- - -This release no longer maintains a full index of historical transaction ids -by default, so looking up an arbitrary transaction using the getrawtransaction -RPC call will not work. If you need that functionality, you must run once -with -txindex=1 -reindex=1 to rebuild block-chain indices (see below for more -details). - -Improvements ------------- - -Mac and Windows binaries are signed with certificates owned by the Bitcoin -Foundation, to be compatible with the new security features in OSX 10.8 and -Windows 8. - -LevelDB, a fast, open-source, non-relational database from Google, is -now used to store transaction and block indices. LevelDB works much better -on machines with slow I/O and is faster in general. Berkeley DB is now only -used for the wallet.dat file (public and private wallet keys and transactions -relevant to you). - -Pieter Wuille implemented many optimizations to the way transactions are -verified, so a running, synchronized node uses less working memory and does -much less I/O. He also implemented parallel signature checking, so if you -have a multi-CPU machine all CPUs will be used to verify transactions. - -New Features ------------- - -"Bloom filter" support in the network protocol for sending only relevant transactions to -lightweight clients. - -contrib/verifysfbinaries is a shell-script to verify that the binary downloads -at sourceforge have not been tampered with. If you are able, you can help make -everybody's downloads more secure by running this occasionally to check PGP -signatures against download file checksums. - -contrib/spendfrom is a python-language command-line utility that demonstrates -how to use the "raw transactions" JSON-RPC api to send coins received from particular -addresses (also known as "coin control"). - -New/changed settings (command-line or bitcoin.conf file) --------------------------------------------------------- - -dbcache : controls LevelDB memory usage. - -par : controls how many threads to use to validate transactions. Defaults to the number -of CPUs on your machine, use -par=1 to limit to a single CPU. - -txindex : maintains an extra index of old, spent transaction ids so they will be found -by the getrawtransaction JSON-RPC method. - -reindex : rebuild block and transaction indices from the downloaded block data. - -New JSON-RPC API Features -------------------------- - -lockunspent / listlockunspent allow locking transaction outputs for a period of time so -they will not be spent by other processes that might be accessing the same wallet. - -addnode / getaddednodeinfo methods, to connect to specific peers without restarting. - -importprivkey now takes an optional boolean parameter (default true) to control whether -or not to rescan the blockchain for transactions after importing a new private key. - -Important Bug Fixes -------------------- - -Privacy leak: the position of the "change" output in most transactions was not being -properly randomized, making network analysis of the transaction graph to identify -users' wallets easier. - -Zero-confirmation transaction vulnerability: accepting zero-confirmation transactions -(transactions that have not yet been included in a block) from somebody you do not -trust is still not recommended, because there will always be ways for attackers to -double-spend zero-confirmation transactions. However, this release includes a bug -fix that makes it a little bit more difficult for attackers to double-spend a -certain type ("lockTime in the future") of zero-confirmation transaction. - -Dependency Changes ------------------- - -Qt 4.8.3 (compiling against older versions of Qt 4 should continue to work) - - -Thanks to everybody who contributed to this release: ----------------------------------------------------- - -Alexander Kjeldaas -Andrey Alekseenko -Arnav Singh -Christian von Roques -Eric Lombrozo -Forrest Voight -Gavin Andresen -Gregory Maxwell -Jeff Garzik -Luke Dashjr -Matt Corallo -Mike Cassano -Mike Hearn -Peter Todd -Philip Kaufmann -Pieter Wuille -Richard Schwab -Robert Backhaus -Rune K. Svendsen -Sergio Demian Lerner -Wladimir J. van der Laan -burger2 -default -fanquake -grimd34th -justmoon -redshark1802 -tucenaber -xanatos diff --git a/doc/release-notes/release-notes-0.8.1.md b/doc/release-notes/release-notes-0.8.1.md deleted file mode 100644 index 4fd546bee00f9..0000000000000 --- a/doc/release-notes/release-notes-0.8.1.md +++ /dev/null @@ -1,22 +0,0 @@ -Bitcoin-Qt/bitcoind version 0.8.1 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/ - -This is a maintenance release that adds a new network rule to avoid -a chain-forking incompatibility with versions 0.7.2 and earlier. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you -run 0.8.1 your blockchain files will be re-indexed, which will take -anywhere from 30 minutes to several hours, depending on the speed of -your machine. diff --git a/doc/release-notes/release-notes-0.8.2.md b/doc/release-notes/release-notes-0.8.2.md deleted file mode 100644 index eea9ba2a2c3c8..0000000000000 --- a/doc/release-notes/release-notes-0.8.2.md +++ /dev/null @@ -1,137 +0,0 @@ -Bitcoin-Qt version 0.8.2 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.2/ - -This is a maintenance release that fixes many bugs and includes -a few small new features. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - - -How to Upgrade - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you -run 0.8.2 your blockchain files will be re-indexed, which will take -anywhere from 30 minutes to several hours, depending on the speed of -your machine. - -0.8.2 Release notes - -Fee Policy changes - -The default fee for low-priority transactions is lowered from 0.0005 BTC -(for each 1,000 bytes in the transaction; an average transaction is -about 500 bytes) to 0.0001 BTC. - -Payments (transaction outputs) of 0.543 times the minimum relay fee -(0.00005430 BTC) are now considered 'non-standard', because storing them -costs the network more than they are worth and spending them will usually -cost their owner more in transaction fees than they are worth. - -Non-standard transactions are not relayed across the network, are not included -in blocks by most miners, and will not show up in your wallet until they are -included in a block. - -The default fee policy can be overridden using the -mintxfee and -minrelaytxfee -command-line options, but note that we intend to replace the hard-coded fees -with code that automatically calculates and suggests appropriate fees in the -0.9 release and note that if you set a fee policy significantly different from -the rest of the network your transactions may never confirm. - -Bitcoin-Qt changes - -* New icon and splash screen -* Improve reporting of synchronization process -* Remove hardcoded fee recommendations -* Improve metadata of executable on MacOSX and Windows -* Move export button to individual tabs instead of toolbar -* Add "send coins" command to context menu in address book -* Add "copy txid" command to copy transaction IDs from transaction overview -* Save & restore window size and position when showing & hiding window -* New translations: Arabic (ar), Bosnian (bs), Catalan (ca), Welsh (cy), - Esperanto (eo), Interlingua (la), Latvian (lv) and many improvements - to current translations - -MacOSX: -* OSX support for click-to-pay (bitcoin:) links -* Fix GUI disappearing problem on MacOSX (issue #1522) - -Linux/Unix: -* Copy addresses to middle-mouse-button clipboard - - -Command-line options - -* -walletnotify will call a command on receiving transactions that affect the wallet. -* -alertnotify will call a command on receiving an alert from the network. -* -par now takes a negative number, to leave a certain amount of cores free. - -JSON-RPC API changes - -* fixed a getblocktemplate bug that caused excessive CPU creating blocks. -* listunspent now lists account and address information. -* getinfo now also returns the time adjustment estimated from your peers. -* getpeerinfo now returns bytessent, bytesrecv and syncnode. -* gettxoutsetinfo returns statistics about the unspent transaction output database. -* gettxout returns information about a specific unspent transaction output. - - -Networking changes - -* Significant changes to the networking code, reducing latency and memory consumption. -* Avoid initial block download stalling. -* Remove IRC seeding support. -* Performance tweaks. -* Added testnet DNS seeds. - -Wallet compatibility/rescuing - -* Cases where wallets cannot be opened in another version/installation should be reduced. -* -salvagewallet now works for encrypted wallets. - - -Known Bugs - -* Entering the 'getblocktemplate' or 'getwork' RPC commands into the Bitcoin-Qt debug -console will cause Bitcoin-Qt to crash. Run Bitcoin-Qt with the -server command-line -option to workaround. - -Thanks to everybody who contributed to the 0.8.2 release! - -APerson241 -Andrew Poelstra -Calvin Owens -Chuck LeDuc Díaz -Colin Dean -David Griffith -David Serrano -Eric Lombrozo -Gavin Andresen -Gregory Maxwell -Jeff Garzik -Jonas Schnelli -Larry Gilbert -Luke Dashjr -Matt Corallo -Michael Ford -Mike Hearn -Patrick Brown -Peter Todd -Philip Kaufmann -Pieter Wuille -Richard Schwab -Roman Mindalev -Scott Howard -Tariq Bashir -Warren Togami -Wladimir J. van der Laan -freewil -gladoscc -kjj2 -mb300sd -super3 diff --git a/doc/release-notes/release-notes-0.8.3.md b/doc/release-notes/release-notes-0.8.3.md deleted file mode 100644 index 856c20aa33d5d..0000000000000 --- a/doc/release-notes/release-notes-0.8.3.md +++ /dev/null @@ -1,18 +0,0 @@ -Bitcoin-Qt version 0.8.3 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.3/ - -This is a maintenance release to fix a denial-of-service attack that -can cause nodes to crash. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - -0.8.3 Release notes - -Truncate over-size messages to prevent a memory exhaustion attack. - -Fix a regression that causes excessive re-writing of the 'peers.dat' file. - - -Thanks to Peter Todd for responsibly disclosing the vulnerability -( CVE-2013-4627 ) and creating a fix. diff --git a/doc/release-notes/release-notes-0.8.4.md b/doc/release-notes/release-notes-0.8.4.md deleted file mode 100644 index c6f31f1fa4a58..0000000000000 --- a/doc/release-notes/release-notes-0.8.4.md +++ /dev/null @@ -1,83 +0,0 @@ -Bitcoin-Qt version 0.8.4 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.4/ - -This is a maintenance release to fix a critical bug and three -security issues; we urge all users to upgrade. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you -run 0.8.4 your blockchain files will be re-indexed, which will take -anywhere from 30 minutes to several hours, depending on the speed of -your machine. - -0.8.4 Release notes -=================== - -Security issues ---------------- - -An attacker could send a series of messages that resulted in -an integer division-by-zero error in the Bloom Filter handling -code, causing the Bitcoin-Qt or bitcoind process to crash. -Bloom filters were introduced with version 0.8, so versions 0.8.0 -through 0.8.3 are vulnerable to this critical denial-of-service attack. - -A constant-time algorithm is now used to check RPC password -guess attempts; fixes https://github.com/bitcoin/bitcoin/issues/2838 -(CVE-2013-4165) - -Implement a better fix for the fill-memory-with-orphan-transactions -attack that was fixed in 0.8.3. See -https://bitslog.wordpress.com/2013/07/18/buggy-cve-2013-4627-patch-open-new-vectors-of-attack/ -for a description of the weaknesses of the previous fix. -(CVE-2013-4627) - -Bugs fixed ----------- - -Fix multi-block reorg transaction resurrection. - -Fix non-standard disconnected transactions causing mempool orphans. -This bug could cause nodes running with the -debug flag to crash. - -OSX: use 'FD_FULLSYNC' with LevelDB, which will (hopefully!) -prevent the database corruption issues many people have -experienced on OSX. - -Linux: clicking on bitcoin: links was broken if you were using -a Gnome-based desktop. - -Fix a hang-at-shutdown bug that only affects users that compile -their own version of Bitcoin against Boost versions 1.50-1.52. - -Other changes -------------- - -Checkpoint at block 250,000 to speed up initial block downloads -and make the progress indicator when downloading more accurate. - - -Thanks to everybody who contributed to the 0.8.4 releases! ----------------------------------------------------------- - -Pieter Wuille -Warren Togami -Patrick Strateman -pakt -Gregory Maxwell -Sergio Demian Lerner -grayleonard -Cory Fields -Matt Corallo -Gavin Andresen diff --git a/doc/release-notes/release-notes-0.8.5.md b/doc/release-notes/release-notes-0.8.5.md deleted file mode 100644 index aa93fe7c715c2..0000000000000 --- a/doc/release-notes/release-notes-0.8.5.md +++ /dev/null @@ -1,44 +0,0 @@ -Bitcoin-Qt version 0.8.5 is now available from: - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/ - -This is a maintenance release to fix a critical bug; -we urge all users to upgrade. - -Please report bugs using the issue tracker at github: - https://github.com/bitcoin/bitcoin/issues - - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you -run 0.8.5 your blockchain files will be re-indexed, which will take -anywhere from 30 minutes to several hours, depending on the speed of -your machine. - -0.8.5 Release notes -=================== - -Bugs fixed ----------- - -Transactions with version numbers larger than 0x7fffffff were -incorrectly being relayed and included in blocks. - -Blocks containing transactions with version numbers larger -than 0x7fffffff caused the code that checks for LevelDB database -inconsistencies at startup to erroneously report database -corruption and suggest that you reindex your database. - -This release also contains a non-critical fix to the code that -enforces BIP 34 (block height in the coinbase transaction). - --- - -Thanks to Gregory Maxwell and Pieter Wuille for quickly -identifying and fixing the transaction version number bug. diff --git a/doc/release-notes/release-notes-0.8.6.md b/doc/release-notes/release-notes-0.8.6.md deleted file mode 100644 index 39a45e0db5657..0000000000000 --- a/doc/release-notes/release-notes-0.8.6.md +++ /dev/null @@ -1,66 +0,0 @@ -Bitcoin-Qt version 0.8.6 final is now available from: - - http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.6/ - -This is a maintenance release to fix a critical bug; we urge all users to upgrade. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you already downloaded 0.8.6rc1 you do not need to re-download. This release is exactly the same. - -If you are running an older version, shut it down. Wait -until it has completely shut down (which might take a few minutes for older -versions), then run the installer (on Windows) or just copy over -/Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you -run 0.8.6 your blockchain files will be re-indexed, which will take -anywhere from 30 minutes to several hours, depending on the speed of -your machine. - -0.8.6 Release notes -=================== - -- Default block size increase for miners. - (see https://gist.github.com/gavinandresen/7670433#086-accept-into-block) - -- Remove the all-outputs-must-be-greater-than-CENT-to-qualify-as-free rule for relaying - (see https://gist.github.com/gavinandresen/7670433#086-relaying) - -- Lower maximum size for free transaction creation - (see https://gist.github.com/gavinandresen/7670433#086-wallet) - -- OSX block chain database corruption fixes - - Update leveldb to 1.13 - - Use fcntl with `F_FULLSYNC` instead of fsync on OSX - - Use native Darwin memory barriers - - Replace use of mmap in leveldb for improved reliability (only on OSX) - -- Fix nodes forwarding transactions with empty vins and getting banned - -- Network code performance and robustness improvements - -- Additional debug.log logging for diagnosis of network problems, log timestamps by default - -- Fix Bitcoin-Qt startup crash when clicking dock icon on OSX - -- Fix memory leaks in CKey::SetCompactSignature() and Key::SignCompact() - -- Fix rare GUI crash on send - -- Various small GUI, documentation and build fixes - -Warning -------- - -- There have been frequent reports of users running out of virtual memory on 32-bit systems - during the initial sync. - Hence it is recommended to use a 64-bit executable if possible. - A 64-bit executable for Windows is planned for 0.9. - -Note: Gavin Andresen's GPG signing key for SHA256SUMS.asc has been changed from key id 1FC730C1 to sub key 7BF6E212 (see https://github.com/bitcoin/bitcoin.org/pull/279). diff --git a/doc/release-notes/release-notes-0.9.0.md b/doc/release-notes/release-notes-0.9.0.md deleted file mode 100644 index 170410ca40a3b..0000000000000 --- a/doc/release-notes/release-notes-0.9.0.md +++ /dev/null @@ -1,411 +0,0 @@ -Bitcoin Core version 0.9.0 is now available from: - - https://bitcoin.org/bin/0.9.0/ - -This is a new major version release, bringing both new features and -bug fixes. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), uninstall all -earlier versions of Bitcoin, then run the installer (on Windows) or just copy -over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you run -0.9.0 your blockchain files will be re-indexed, which will take anywhere from -30 minutes to several hours, depending on the speed of your machine. - -On Windows, do not forget to uninstall all earlier versions of the Bitcoin -client first, especially if you are switching to the 64-bit version. - -Windows 64-bit installer -------------------------- - -New in 0.9.0 is the Windows 64-bit version of the client. There have been -frequent reports of users running out of virtual memory on 32-bit systems -during the initial sync. Because of this it is recommended to install the -64-bit version if your system supports it. - -NOTE: Release candidate 2 Windows binaries are not code-signed; use PGP -and the SHA256SUMS.asc file to make sure your binaries are correct. -In the final 0.9.0 release, Windows setup.exe binaries will be code-signed. - -OSX 10.5 / 32-bit no longer supported -------------------------------------- - -0.9.0 drops support for older Macs. The minimum requirements are now: -* A 64-bit-capable CPU (see http://support.apple.com/kb/ht3696); -* Mac OS 10.6 or later (see https://support.apple.com/kb/ht1633). - -Downgrading warnings --------------------- - -The 'chainstate' for this release is not always compatible with previous -releases, so if you run 0.9 and then decide to switch back to a -0.8.x release you might get a blockchain validation error when starting the -old release (due to 'pruned outputs' being omitted from the index of -unspent transaction outputs). - -Running the old release with the -reindex option will rebuild the chainstate -data structures and correct the problem. - -Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan -the blockchain for missing spent coins, which will take a long time (tens -of minutes on a typical machine). - -Rebranding to Bitcoin Core ---------------------------- - -To reduce confusion between Bitcoin-the-network and Bitcoin-the-software we -have renamed the reference client to Bitcoin Core. - - -OP_RETURN and data in the block chain -------------------------------------- -On OP_RETURN: There was been some confusion and misunderstanding in -the community, regarding the OP_RETURN feature in 0.9 and data in the -blockchain. This change is not an endorsement of storing data in the -blockchain. The OP_RETURN change creates a provably-prunable output, -to avoid data storage schemes -- some of which were already deployed -- -that were storing arbitrary data such as images as forever-unspendable -TX outputs, bloating bitcoin's UTXO database. - -Storing arbitrary data in the blockchain is still a bad idea; it is less -costly and far more efficient to store non-currency data elsewhere. - -Autotools build system ------------------------ - -For 0.9.0 we switched to an autotools-based build system instead of individual -(q)makefiles. - -Using the standard "./autogen.sh; ./configure; make" to build Bitcoin-Qt and -bitcoind makes it easier for experienced open source developers to contribute -to the project. - -Be sure to check doc/build-*.md for your platform before building from source. - -Bitcoin-cli -------------- - -Another change in the 0.9 release is moving away from the bitcoind executable -functioning both as a server and as a RPC client. The RPC client functionality -("tell the running bitcoin daemon to do THIS") was split into a separate -executable, 'bitcoin-cli'. The RPC client code will eventually be removed from -bitcoind, but will be kept for backwards compatibility for a release or two. - -`walletpassphrase` RPC ------------------------ - -The behavior of the `walletpassphrase` RPC when the wallet is already unlocked -has changed between 0.8 and 0.9. - -The 0.8 behavior of `walletpassphrase` is to fail when the wallet is already unlocked: - - > walletpassphrase 1000 - walletunlocktime = now + 1000 - > walletpassphrase 10 - Error: Wallet is already unlocked (old unlock time stays) - -The new behavior of `walletpassphrase` is to set a new unlock time overriding -the old one: - - > walletpassphrase 1000 - walletunlocktime = now + 1000 - > walletpassphrase 10 - walletunlocktime = now + 10 (overriding the old unlock time) - -Transaction malleability-related fixes --------------------------------------- - -This release contains a few fixes for transaction ID (TXID) malleability -issues: - -- -nospendzeroconfchange command-line option, to avoid spending - zero-confirmation change -- IsStandard() transaction rules tightened to prevent relaying and mining of - mutated transactions -- Additional information in listtransactions/gettransaction output to - report wallet transactions that conflict with each other because - they spend the same outputs. -- Bug fixes to the getbalance/listaccounts RPC commands, which would report - incorrect balances for double-spent (or mutated) transactions. -- New option: -zapwallettxes to rebuild the wallet's transaction information - -Transaction Fees ----------------- - -This release drops the default fee required to relay transactions across the -network and for miners to consider the transaction in their blocks to -0.01mBTC per kilobyte. - -Note that getting a transaction relayed across the network does NOT guarantee -that the transaction will be accepted by a miner; by default, miners fill -their blocks with 50 kilobytes of high-priority transactions, and then with -700 kilobytes of the highest-fee-per-kilobyte transactions. - -The minimum relay/mining fee-per-kilobyte may be changed with the -minrelaytxfee option. Note that previous releases incorrectly used -the mintxfee setting to determine which low-priority transactions should -be considered for inclusion in blocks. - -The wallet code still uses a default fee for low-priority transactions of -0.1mBTC per kilobyte. During periods of heavy transaction volume, even this -fee may not be enough to get transactions confirmed quickly; the mintxfee -option may be used to override the default. - -0.9.0 Release notes -======================= - -RPC: - -- New notion of 'conflicted' transactions, reported as confirmations: -1 -- 'listreceivedbyaddress' now provides tx ids -- Add raw transaction hex to 'gettransaction' output -- Updated help and tests for 'getreceivedby(account|address)' -- In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction, - but defaulting to 1 for backward compatibility -- Add 'verifychain', to verify chain database at runtime -- Add 'dumpwallet' and 'importwallet' RPCs -- 'keypoolrefill' gains optional size parameter -- Add 'getbestblockhash', to return tip of best chain -- Add 'chainwork' (the total work done by all blocks since the genesis block) - to 'getblock' output -- Make RPC password resistant to timing attacks -- Clarify help messages and add examples -- Add 'getrawchangeaddress' call for raw transaction change destinations -- Reject insanely high fees by default in 'sendrawtransaction' -- Add RPC call 'decodescript' to decode a hex-encoded transaction script -- Make 'validateaddress' provide redeemScript -- Add 'getnetworkhashps' to get the calculated network hashrate -- New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields - in 'getpeerinfo' output -- Adding new 'addrlocal' field to 'getpeerinfo' output -- Add verbose boolean to 'getrawmempool' -- Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance -- Explicitly ensure that wallet is unlocked in `importprivkey` -- Add check for valid keys in `importprivkey` - -Command-line options: - -- New option: -nospendzeroconfchange to never spend unconfirmed change outputs -- New option: -zapwallettxes to rebuild the wallet's transaction information -- Rename option '-tor' to '-onion' to better reflect what it does -- Add '-disablewallet' mode to let bitcoind run entirely without wallet (when - built with wallet) -- Update default '-rpcsslciphers' to include TLSv1.2 -- make '-logtimestamps' default on and rework help-message -- RPC client option: '-rpcwait', to wait for server start -- Remove '-logtodebugger' -- Allow `-noserver` with bitcoind - -Block-chain handling and storage: - -- Update leveldb to 1.15 -- Check for correct genesis (prevent cases where a datadir from the wrong - network is accidentally loaded) -- Allow txindex to be removed and add a reindex dialog -- Log aborted block database rebuilds -- Store orphan blocks in serialized form, to save memory -- Limit the number of orphan blocks in memory to 750 -- Fix non-standard disconnected transactions causing mempool orphans -- Add a new checkpoint at block 279,000 - -Wallet: - -- Bug fixes and new regression tests to correctly compute - the balance of wallets containing double-spent (or mutated) transactions -- Store key creation time. Calculate whole-wallet birthday. -- Optimize rescan to skip blocks prior to birthday -- Let user select wallet file with -wallet=foo.dat -- Consider generated coins mature at 101 instead of 120 blocks -- Improve wallet load time -- Don't count txins for priority to encourage sweeping -- Don't create empty transactions when reading a corrupted wallet -- Fix rescan to start from beginning after importprivkey -- Only create signatures with low S values - -Mining: - -- Increase default -blockmaxsize/prioritysize to 750K/50K -- 'getblocktemplate' does not require a key to create a block template -- Mining code fee policy now matches relay fee policy - -Protocol and network: - -- Drop the fee required to relay a transaction to 0.01mBTC per kilobyte -- Send tx relay flag with version -- New 'reject' P2P message (BIP 0061, see - https://gist.github.com/gavinandresen/7079034 for draft) -- Dump addresses every 15 minutes instead of 10 seconds -- Relay OP_RETURN data TxOut as standard transaction type -- Remove CENT-output free transaction rule when relaying -- Lower maximum size for free transaction creation -- Send multiple inv messages if mempool.size > MAX_INV_SZ -- Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION -- Do not treat fFromMe transaction differently when broadcasting -- Process received messages one at a time without sleeping between messages -- Improve logging of failed connections -- Bump protocol version to 70002 -- Add some additional logging to give extra network insight -- Added new DNS seed from bitcoinstats.com - -Validation: - -- Log reason for non-standard transaction rejection -- Prune provably-unspendable outputs, and adapt consistency check for it. -- Detect any sufficiently long fork and add a warning -- Call the -alertnotify script when we see a long or invalid fork -- Fix multi-block reorg transaction resurrection -- Reject non-canonically-encoded serialization sizes -- Reject dust amounts during validation -- Accept nLockTime transactions that finalize in the next block - -Build system: - -- Switch to autotools-based build system -- Build without wallet by passing `--disable-wallet` to configure, this - removes the BerkeleyDB dependency -- Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more - recent versions -- Windows 64-bit build support -- Solaris compatibility fixes -- Check integrity of gitian input source tarballs -- Enable full GCC Stack-smashing protection for all OSes - -GUI: - -- Switch to Qt 5.2.0 for Windows build -- Add payment request (BIP 0070) support -- Improve options dialog -- Show transaction fee in new send confirmation dialog -- Add total balance in overview page -- Allow user to choose data directory on first start, when data directory is - missing, or when the -choosedatadir option is passed -- Save and restore window positions -- Add vout index to transaction id in transactions details dialog -- Add network traffic graph in debug window -- Add open URI dialog -- Add Coin Control Features -- Improve receive coins workflow: make the 'Receive' tab into a form to request - payments, and move historical address list functionality to File menu. -- Rebrand to `Bitcoin Core` -- Move initialization/shutdown to a thread. This prevents "Not responding" - messages during startup. Also show a window during shutdown. -- Don't regenerate autostart link on every client startup -- Show and store message of normal bitcoin:URI -- Fix richtext detection hang issue on very old Qt versions -- OS X: Make use of the 10.8+ user notification center to display Growl-like - notifications -- OS X: Added NSHighResolutionCapable flag to Info.plist for better font - rendering on Retina displays. -- OS X: Fix bitcoin-qt startup crash when clicking dock icon -- Linux: Fix Gnome bitcoin: URI handler - -Miscellaneous: - -- Add Linux script (contrib/qos/tc.sh) to limit outgoing bandwidth -- Add '-regtest' mode, similar to testnet but private with instant block - generation with 'setgenerate' RPC. -- Add 'linearize.py' script to contrib, for creating bootstrap.dat -- Add separate bitcoin-cli client - -Credits --------- - -Thanks to everyone who contributed to this release: - -- Andrey -- Ashley Holman -- b6393ce9-d324-4fe1-996b-acf82dbc3d53 -- bitsofproof -- Brandon Dahler -- Calvin Tam -- Christian Decker -- Christian von Roques -- Christopher Latham -- Chuck -- coblee -- constantined -- Cory Fields -- Cozz Lovan -- daniel -- Daniel Larimer -- David Hill -- Dmitry Smirnov -- Drak -- Eric Lombrozo -- fanquake -- fcicq -- Florin -- frewil -- Gavin Andresen -- Gregory Maxwell -- gubatron -- Guillermo Céspedes Tabárez -- Haakon Nilsen -- HaltingState -- Han Lin Yap -- harry -- Ian Kelling -- Jeff Garzik -- Johnathan Corgan -- Jonas Schnelli -- Josh Lehan -- Josh Triplett -- Julian Langschaedel -- Kangmo -- Lake Denman -- Luke Dashjr -- Mark Friedenbach -- Matt Corallo -- Michael Bauer -- Michael Ford -- Michagogo -- Midnight Magic -- Mike Hearn -- Nils Schneider -- Noel Tiernan -- Olivier Langlois -- patrick s -- Patrick Strateman -- paveljanik -- Peter Todd -- phantomcircuit -- phelixbtc -- Philip Kaufmann -- Pieter Wuille -- Rav3nPL -- R E Broadley -- regergregregerrge -- Robert Backhaus -- Roman Mindalev -- Rune K. Svendsen -- Ryan Niebur -- Scott Ellis -- Scott Willeke -- Sergey Kazenyuk -- Shawn Wilkinson -- Sined -- sje -- Subo1978 -- super3 -- Tamas Blummer -- theuni -- Thomas Holenstein -- Timon Rapp -- Timothy Stranex -- Tom Geller -- Torstein Husebø -- Vaclav Vobornik -- vhf / victor felder -- Vinnie Falco -- Warren Togami -- Wil Bown -- Wladimir J. van der Laan diff --git a/doc/release-notes/release-notes-0.9.1.md b/doc/release-notes/release-notes-0.9.1.md deleted file mode 100644 index 0552053d27b8f..0000000000000 --- a/doc/release-notes/release-notes-0.9.1.md +++ /dev/null @@ -1,53 +0,0 @@ -Bitcoin Core version 0.9.1 is now available from: - - https://bitcoin.org/bin/0.9.1/ - -This is a security update. It is recommended to upgrade to this release -as soon as possible. - -It is especially important to upgrade if you currently have version -0.9.0 installed and are using the graphical interface OR you are using -bitcoind from any pre-0.9.1 version, and have enabled SSL for RPC and -have configured allowip to allow rpc connections from potentially -hostile hosts. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you run -0.9.1 your blockchain files will be re-indexed, which will take anywhere from -30 minutes to several hours, depending on the speed of your machine. - -0.9.1 Release notes -======================= - -No code changes were made between 0.9.0 and 0.9.1. Only the dependencies were changed. - -- Upgrade OpenSSL to 1.0.1g. This release fixes the following vulnerabilities which can - affect the Bitcoin Core software: - - - CVE-2014-0160 ("heartbleed") - A missing bounds check in the handling of the TLS heartbeat extension can - be used to reveal up to 64k of memory to a connected client or server. - - - CVE-2014-0076 - The Montgomery ladder implementation in OpenSSL does not ensure that - certain swap operations have a constant-time behavior, which makes it - easier for local users to obtain ECDSA nonces via a FLUSH+RELOAD cache - side-channel attack. - -- Add statically built executables to Linux build - -Credits --------- - -Credits go to the OpenSSL team for fixing the vulnerabilities quickly. diff --git a/doc/release-notes/release-notes-0.9.2.1.md b/doc/release-notes/release-notes-0.9.2.1.md deleted file mode 100644 index 3168ad1a5ad79..0000000000000 --- a/doc/release-notes/release-notes-0.9.2.1.md +++ /dev/null @@ -1,207 +0,0 @@ -Bitcoin Core version 0.9.2.1 is now available from: - - https://bitcoin.org/bin/0.9.2.1/ - -This is a new minor version release, bringing mostly bug fixes and some minor -improvements. OpenSSL has been updated because of a security issue (CVE-2014-0224). -Upgrading to this release is recommended. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you run -0.9.2.1 your blockchain files will be re-indexed, which will take anywhere from -30 minutes to several hours, depending on the speed of your machine. - -Downgrading warnings --------------------- - -The 'chainstate' for this release is not always compatible with previous -releases, so if you run 0.9.x and then decide to switch back to a -0.8.x release you might get a blockchain validation error when starting the -old release (due to 'pruned outputs' being omitted from the index of -unspent transaction outputs). - -Running the old release with the -reindex option will rebuild the chainstate -data structures and correct the problem. - -Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan -the blockchain for missing spent coins, which will take a long time (tens -of minutes on a typical machine). - -Important changes -================== - -Gitian OSX build ------------------ - -The deterministic build system that was already used for Windows and Linux -builds is now used for OSX as well. Although the resulting executables have -been tested quite a bit, there could be possible regressions. Be sure to report -these on the Github bug tracker mentioned above. - -Compatibility of Linux build ------------------------------ - -For Linux we now build against Qt 4.6, and filter the symbols for libstdc++ and glibc. -This brings back compatibility with - -- Debian 6+ / Tails -- Ubuntu 10.04 -- CentOS 6.5 - -0.9.2 - 0.9.2.1 Release notes -======================= - -The OpenSSL dependency in the gitian builds has been upgraded to 1.0.1h because of CVE-2014-0224. - -RPC: - -- Add `getwalletinfo`, `getblockchaininfo` and `getnetworkinfo` calls (will replace hodge-podge `getinfo` at some point) -- Add a `relayfee` field to `getnetworkinfo` -- Fix RPC related shutdown hangs and leaks -- Always show syncnode in `getpeerinfo` -- `sendrawtransaction`: report the reject code and reason, and make it possible to re-send transactions that are already in the mempool -- `getmininginfo` show right genproclimit - -Command-line options: - -- Fix `-printblocktree` output -- Show error message if ReadConfigFile fails - -Block-chain handling and storage: - -- Fix for GetBlockValue() after block 13,440,000 (BIP42) -- Upgrade leveldb to 1.17 - -Protocol and network code: - -- Per-peer block download tracking and stalled download detection -- Add new DNS seed from bitnodes.io -- Prevent socket leak in ThreadSocketHandler and correct some proxy related socket leaks -- Use pnode->nLastRecv as sync score (was the wrong way around) - -Wallet: - -- Make GetAvailableCredit run GetHash() only once per transaction (performance improvement) -- Lower paytxfee warning threshold from 0.25 BTC to 0.01 BTC -- Fix importwallet nTimeFirstKey (trigger necessary rescans) -- Log BerkeleyDB version at startup -- CWallet init fix - -Build system: - -- Add OSX build descriptors to gitian -- Fix explicit --disable-qt-dbus -- Don't require db_cxx.h when compiling with wallet disabled and GUI enabled -- Improve missing boost error reporting -- Upgrade miniupnpc version to 1.9 -- gitian-linux: --enable-glibc-back-compat for binary compatibility with old distributions -- gitian: don't export any symbols from executable -- gitian: build against Qt 4.6 -- devtools: add script to check symbols from Linux gitian executables -- Remove build-time no-IPv6 setting - -GUI: - -- Fix various coin control visual issues -- Show number of in/out connections in debug console -- Show weeks as well as years behind for long timespans behind -- Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected. -- Show also value for options overridden on command line in options dialog -- Fill in label from address book also for URIs -- Fixes feel when resizing the last column on tables (issue #2862) -- Fix ESC in disablewallet mode -- Add expert section to wallet tab in optionsdialog -- Do proper boost::path conversion (fixes unicode in datadir) -- Only override -datadir if different from the default (fixes -datadir in config file) -- Show rescan progress at start-up -- Show importwallet progress -- Get required locks upfront in polling functions (avoids hanging on locks) -- Catch Windows shutdown events while client is running -- Optionally add third party links to transaction context menu -- Check for !pixmap() before trying to export QR code (avoids crashes when no QR code could be generated) -- Fix "Start bitcoin on system login" - -Miscellaneous: - -- Replace non-threadsafe C functions (gmtime, strerror and setlocale) -- Add missing cs_main and wallet locks -- Avoid exception at startup when system locale not recognized -- Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input -- devtools: add a script to fetch and postprocess translations - -Credits --------- - -Thanks to everyone who contributed to this release: - -- Addy Yeow -- Altoidnerd -- Andrea D'Amore -- Andreas Schildbach -- Bardi Harborow -- Brandon Dahler -- Bryan Bishop -- Chris Beams -- Christian von Roques -- Cory Fields -- Cozz Lovan -- daniel -- Daniel Newton -- David A. Harding -- ditto-b -- duanemoody -- Eric S. Bullington -- Fabian Raetz -- Gavin Andresen -- Gregory Maxwell -- gubatron -- Haakon Nilsen -- harry -- Hector Jusforgues -- Isidoro Ghezzi -- Jeff Garzik -- Johnathan Corgan -- jtimon -- Kamil Domanski -- langerhans -- Luke Dashjr -- Manuel Araoz -- Mark Friedenbach -- Matt Corallo -- Matthew Bogosian -- Meeh -- Michael Ford -- Michagogo -- Mikael Wikman -- Mike Hearn -- olalonde -- paveljanik -- peryaudo -- Philip Kaufmann -- philsong -- Pieter Wuille -- R E Broadley -- richierichrawr -- Rune K. Svendsen -- rxl -- shshshsh -- Simon de la Rouviere -- Stuart Cardall -- super3 -- Telepatheic -- Thomas Zander -- Torstein Husebø -- Warren Togami -- Wladimir J. van der Laan -- Yoichi Hirai diff --git a/doc/release-notes/release-notes-0.9.2.md b/doc/release-notes/release-notes-0.9.2.md deleted file mode 100644 index a2749e549f766..0000000000000 --- a/doc/release-notes/release-notes-0.9.2.md +++ /dev/null @@ -1,207 +0,0 @@ -Bitcoin Core version 0.9.2 is now available from: - - https://bitcoin.org/bin/0.9.2/ - -This is a new minor version release, bringing mostly bug fixes and some minor -improvements. OpenSSL has been updated because of a security issue (CVE-2014-0224). -Upgrading to this release is recommended. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you run -0.9.2 your blockchain files will be re-indexed, which will take anywhere from -30 minutes to several hours, depending on the speed of your machine. - -Downgrading warnings --------------------- - -The 'chainstate' for this release is not always compatible with previous -releases, so if you run 0.9.x and then decide to switch back to a -0.8.x release you might get a blockchain validation error when starting the -old release (due to 'pruned outputs' being omitted from the index of -unspent transaction outputs). - -Running the old release with the -reindex option will rebuild the chainstate -data structures and correct the problem. - -Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan -the blockchain for missing spent coins, which will take a long time (tens -of minutes on a typical machine). - -Important changes -================== - -Gitian OSX build ------------------ - -The deterministic build system that was already used for Windows and Linux -builds is now used for OSX as well. Although the resulting executables have -been tested quite a bit, there could be possible regressions. Be sure to report -these on the Github bug tracker mentioned above. - -Compatibility of Linux build ------------------------------ - -For Linux we now build against Qt 4.6, and filter the symbols for libstdc++ and glibc. -This brings back compatibility with - -- Debian 6+ / Tails -- Ubuntu 10.04 -- CentOS 6.5 - -0.9.2 Release notes -======================= - -The OpenSSL dependency in the gitian builds has been upgraded to 1.0.1h because of CVE-2014-0224. - -RPC: - -- Add `getwalletinfo`, `getblockchaininfo` and `getnetworkinfo` calls (will replace hodge-podge `getinfo` at some point) -- Add a `relayfee` field to `getnetworkinfo` -- Fix RPC related shutdown hangs and leaks -- Always show syncnode in `getpeerinfo` -- `sendrawtransaction`: report the reject code and reason, and make it possible to re-send transactions that are already in the mempool -- `getmininginfo` show right genproclimit - -Command-line options: - -- Fix `-printblocktree` output -- Show error message if ReadConfigFile fails - -Block-chain handling and storage: - -- Fix for GetBlockValue() after block 13,440,000 (BIP42) -- Upgrade leveldb to 1.17 - -Protocol and network code: - -- Per-peer block download tracking and stalled download detection -- Add new DNS seed from bitnodes.io -- Prevent socket leak in ThreadSocketHandler and correct some proxy related socket leaks -- Use pnode->nLastRecv as sync score (was the wrong way around) - -Wallet: - -- Make GetAvailableCredit run GetHash() only once per transaction (performance improvement) -- Lower paytxfee warning threshold from 0.25 BTC to 0.01 BTC -- Fix importwallet nTimeFirstKey (trigger necessary rescans) -- Log BerkeleyDB version at startup -- CWallet init fix - -Build system: - -- Add OSX build descriptors to gitian -- Fix explicit --disable-qt-dbus -- Don't require db_cxx.h when compiling with wallet disabled and GUI enabled -- Improve missing boost error reporting -- Upgrade miniupnpc version to 1.9 -- gitian-linux: --enable-glibc-back-compat for binary compatibility with old distributions -- gitian: don't export any symbols from executable -- gitian: build against Qt 4.6 -- devtools: add script to check symbols from Linux gitian executables -- Remove build-time no-IPv6 setting - -GUI: - -- Fix various coin control visual issues -- Show number of in/out connections in debug console -- Show weeks as well as years behind for long timespans behind -- Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected. -- Show also value for options overridden on command line in options dialog -- Fill in label from address book also for URIs -- Fixes feel when resizing the last column on tables (issue #2862) -- Fix ESC in disablewallet mode -- Add expert section to wallet tab in optionsdialog -- Do proper boost::path conversion (fixes unicode in datadir) -- Only override -datadir if different from the default (fixes -datadir in config file) -- Show rescan progress at start-up -- Show importwallet progress -- Get required locks upfront in polling functions (avoids hanging on locks) -- Catch Windows shutdown events while client is running -- Optionally add third party links to transaction context menu -- Check for !pixmap() before trying to export QR code (avoids crashes when no QR code could be generated) -- Fix "Start bitcoin on system login" - -Miscellaneous: - -- Replace non-threadsafe C functions (gmtime, strerror and setlocale) -- Add missing cs_main and wallet locks -- Avoid exception at startup when system locale not recognized -- Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input -- devtools: add a script to fetch and postprocess translations - -Credits --------- - -Thanks to everyone who contributed to this release: - -- Addy Yeow -- Altoidnerd -- Andrea D'Amore -- Andreas Schildbach -- Bardi Harborow -- Brandon Dahler -- Bryan Bishop -- Chris Beams -- Christian von Roques -- Cory Fields -- Cozz Lovan -- daniel -- Daniel Newton -- David A. Harding -- ditto-b -- duanemoody -- Eric S. Bullington -- Fabian Raetz -- Gavin Andresen -- Gregory Maxwell -- gubatron -- Haakon Nilsen -- harry -- Hector Jusforgues -- Isidoro Ghezzi -- Jeff Garzik -- Johnathan Corgan -- jtimon -- Kamil Domanski -- langerhans -- Luke Dashjr -- Manuel Araoz -- Mark Friedenbach -- Matt Corallo -- Matthew Bogosian -- Meeh -- Michael Ford -- Michagogo -- Mikael Wikman -- Mike Hearn -- olalonde -- paveljanik -- peryaudo -- Philip Kaufmann -- philsong -- Pieter Wuille -- R E Broadley -- richierichrawr -- Rune K. Svendsen -- rxl -- shshshsh -- Simon de la Rouviere -- Stuart Cardall -- super3 -- Telepatheic -- Thomas Zander -- Torstein Husebø -- Warren Togami -- Wladimir J. van der Laan -- Yoichi Hirai diff --git a/doc/release-notes/release-notes-0.9.3.md b/doc/release-notes/release-notes-0.9.3.md deleted file mode 100644 index 0765a360b29da..0000000000000 --- a/doc/release-notes/release-notes-0.9.3.md +++ /dev/null @@ -1,101 +0,0 @@ -Bitcoin Core version 0.9.3 is now available from: - - https://bitcoin.org/bin/0.9.3/ - -This is a new minor version release, bringing only bug fixes and updated -translations. Upgrading to this release is recommended. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -Upgrading and downgrading -========================== - -How to Upgrade --------------- - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -If you are upgrading from version 0.7.2 or earlier, the first time you run -0.9.3 your blockchain files will be re-indexed, which will take anywhere from -30 minutes to several hours, depending on the speed of your machine. - -Downgrading warnings --------------------- - -The 'chainstate' for this release is not always compatible with previous -releases, so if you run 0.9.x and then decide to switch back to a -0.8.x release you might get a blockchain validation error when starting the -old release (due to 'pruned outputs' being omitted from the index of -unspent transaction outputs). - -Running the old release with the -reindex option will rebuild the chainstate -data structures and correct the problem. - -Also, the first time you run a 0.8.x release on a 0.9 wallet it will rescan -the blockchain for missing spent coins, which will take a long time (tens -of minutes on a typical machine). - -0.9.3 Release notes -======================= - -RPC: -- Avoid a segfault on getblock if it can't read a block from disk -- Add paranoid return value checks in base58 - -Protocol and network code: -- Don't poll showmyip.com, it doesn't exist anymore -- Add a way to limit deserialized string lengths and use it -- Add a new checkpoint at block 295,000 -- Increase IsStandard() scriptSig length -- Avoid querying DNS seeds, if we have open connections -- Remove a useless millisleep in socket handler -- Stricter memory limits on CNode -- Better orphan transaction handling -- Add `-maxorphantx=` and `-maxorphanblocks=` options for control over the maximum orphan transactions and blocks - -Wallet: -- Check redeemScript size does not exceed 520 byte limit -- Ignore (and warn about) too-long redeemScripts while loading wallet - -GUI: -- fix 'opens in testnet mode when presented with a BIP-72 link with no fallback' -- AvailableCoins: acquire cs_main mutex -- Fix unicode character display on MacOSX - -Miscellaneous: -- key.cpp: fail with a friendlier message on missing ssl EC support -- Remove bignum dependency for scripts -- Upgrade OpenSSL to 1.0.1i (see https://www.openssl.org/news/secadv_20140806.txt - just to be sure, no critical issues for Bitcoin Core) -- Upgrade miniupnpc to 1.9.20140701 -- Fix boost detection in build system on some platforms - -Credits --------- - -Thanks to everyone who contributed to this release: - -- Andrew Poelstra -- Cory Fields -- Gavin Andresen -- Jeff Garzik -- Johnathan Corgan -- Julian Haight -- Michael Ford -- Pavel Vasin -- Peter Todd -- phantomcircuit -- Pieter Wuille -- Rose Toomey -- Ruben Dario Ponticelli -- shshshsh -- Trevin Hofmann -- Warren Togami -- Wladimir J. van der Laan -- Zak Wilcox - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.9.4.md b/doc/release-notes/release-notes-0.9.4.md deleted file mode 100644 index 7ee73246a9b04..0000000000000 --- a/doc/release-notes/release-notes-0.9.4.md +++ /dev/null @@ -1,95 +0,0 @@ -Bitcoin Core version 0.9.4 is now available from: - - https://bitcoin.org/bin/0.9.4/ - -This is a new minor version release, bringing only bug fixes and updated -translations. Upgrading to this release is recommended. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade -=============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -OpenSSL Warning -================ - -OpenSSL 1.0.0p / 1.0.1k was recently released and is being pushed out by -various operating system maintainers. Review by Gregory Maxwell determined that -this update is incompatible with the Bitcoin system and could lead to consensus -forks. - -Bitcoin Core released binaries from https://bitcoin.org are unaffected, -as are any built with the gitian deterministic build system. - -However, if you are running either - -- The Ubuntu PPA from https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin -- A third-party or self-compiled Bitcoin Core - -upgrade to Bitcoin Core 0.9.4, which includes a workaround, **before** updating -OpenSSL. - -The incompatibility is due to the OpenSSL update changing the -behavior of ECDSA validation to reject any signature which is -not encoded in a very rigid manner. This was a result of -OpenSSL's change for CVE-2014-8275 "Certificate fingerprints -can be modified". - -We are specifically aware of potential hard-forks due to signature -encoding handling and had been hoping to close them via BIP62 in 0.10. -BIP62's purpose is to improve transaction malleability handling and -as a side effect rigidly defines the encoding for signatures, but the -overall scope of BIP62 has made it take longer than we'd like to -deploy. - -0.9.4 changelog -================ - -Validation: -- `b8e81b7` consensus: guard against openssl's new strict DER checks -- `60c51f1` fail immediately on an empty signature -- `037bfef` Improve robustness of DER recoding code - -Command-line options: -- `cd5164a` Make -proxy set all network types, avoiding a connect leak. - -P2P: -- `bb424e4` Limit the number of new addressses to accumulate - -RPC: -- `0a94661` Disable SSLv3 (in favor of TLS) for the RPC client and server. - -Build system: -- `f047dfa` gitian: openssl-1.0.1i.tar.gz -> openssl-1.0.1k.tar.gz -- `5b9f78d` build: Fix OSX build when using Homebrew and qt5 -- `ffab1dd` Keep symlinks when copying into .app bundle -- `613247f` osx: fix signing to make Gatekeeper happy (again) - -Miscellaneous: -- `25b49b5` Refactor -alertnotify code -- `2743529` doc: Add instructions for consistent Mac OS X build names - -Credits --------- - -Thanks to who contributed to this release, at least: - -- Cory Fields -- Gavin Andresen -- Gregory Maxwell -- Jeff Garzik -- Luke Dashjr -- Matt Corallo -- Pieter Wuille -- Saivann -- Sergio Demian Lerner -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-0.9.5.md b/doc/release-notes/release-notes-0.9.5.md deleted file mode 100644 index bed0af9879bf4..0000000000000 --- a/doc/release-notes/release-notes-0.9.5.md +++ /dev/null @@ -1,60 +0,0 @@ -Bitcoin Core version 0.9.5 is now available from: - - https://bitcoin.org/bin/0.9.5/ - -This is a new minor version release, with the goal of backporting BIP66. There -are also a few bug fixes and updated translations. Upgrading to this release is -recommended. - -Please report bugs using the issue tracker at github: - - https://github.com/bitcoin/bitcoin/issues - -How to Upgrade -=============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes for older versions), then run the -installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or -bitcoind/bitcoin-qt (on Linux). - -Notable changes -================ - -Mining and relay policy enhancements ------------------------------------- - -Bitcoin Core's block templates are now for version 3 blocks only, and any mining -software relying on its `getblocktemplate` must be updated in parallel to use -libblkmaker either version 0.4.2 or any version from 0.5.1 onward. -If you are solo mining, this will affect you the moment you upgrade Bitcoin -Core, which must be done prior to BIP66 achieving its 951/1001 status. -If you are mining with the stratum mining protocol: this does not affect you. -If you are mining with the getblocktemplate protocol to a pool: this will affect -you at the pool operator's discretion, which must be no later than BIP66 -achieving its 951/1001 status. - -0.9.5 changelog -================ - -- `74f29c2` Check pindexBestForkBase for null -- `9cd1dd9` Fix priority calculation in CreateTransaction -- `6b4163b` Sanitize command strings before logging them. -- `3230b32` Raise version of created blocks, and enforce DERSIG in mempool -- `989d499` Backport of some of BIP66's tests -- `ab03660` Implement BIP 66 validation rules and switchover logic -- `8438074` build: fix dynamic boost check when --with-boost= is used - -Credits --------- - -Thanks to who contributed to this release, at least: - -- 21E14 -- Alex Morcos -- Cory Fields -- Gregory Maxwell -- Pieter Wuille -- Wladimir J. van der Laan - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). diff --git a/doc/release-notes/release-notes-22.0.md b/doc/release-notes/release-notes-22.0.md deleted file mode 100644 index 972c91aa6fafa..0000000000000 --- a/doc/release-notes/release-notes-22.0.md +++ /dev/null @@ -1,1163 +0,0 @@ -22.0 Release Notes -================== - -Bitcoin Core version 22.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.14+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 22.0 onwards, macOS versions earlier than 10.14 are no longer supported. - -Notable changes -=============== - -P2P and network changes ------------------------ -- Added support for running Bitcoin Core as an - [I2P (Invisible Internet Project)](https://en.wikipedia.org/wiki/I2P) service - and connect to such services. See [i2p.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/i2p.md) for details. (#20685) -- This release removes support for Tor version 2 hidden services in favor of Tor - v3 only, as the Tor network [dropped support for Tor - v2](https://blog.torproject.org/v2-deprecation-timeline) with the release of - Tor version 0.4.6. Henceforth, Bitcoin Core ignores Tor v2 addresses; it - neither rumors them over the network to other peers, nor stores them in memory - or to `peers.dat`. (#22050) - -- Added NAT-PMP port mapping support via - [`libnatpmp`](https://miniupnp.tuxfamily.org/libnatpmp.html). (#18077) - -New and Updated RPCs --------------------- - -- Due to [BIP 350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) - being implemented, behavior for all RPCs that accept addresses is changed when - a native witness version 1 (or higher) is passed. These now require a Bech32m - encoding instead of a Bech32 one, and Bech32m encoding will be used for such - addresses in RPC output as well. No version 1 addresses should be created - for mainnet until consensus rules are adopted that give them meaning - (as will happen through [BIP 341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)). - Once that happens, Bech32m is expected to be used for them, so this shouldn't - affect any production systems, but may be observed on other networks where such - addresses already have meaning (like signet). (#20861) - -- The `getpeerinfo` RPC returns two new boolean fields, `bip152_hb_to` and - `bip152_hb_from`, that respectively indicate whether we selected a peer to be - in compact blocks high-bandwidth mode or whether a peer selected us as a - compact blocks high-bandwidth peer. High-bandwidth peers send new block - announcements via a `cmpctblock` message rather than the usual inv/headers - announcements. See BIP 152 for more details. (#19776) - -- `getpeerinfo` no longer returns the following fields: `addnode`, `banscore`, - and `whitelisted`, which were previously deprecated in 0.21. Instead of - `addnode`, the `connection_type` field returns manual. Instead of - `whitelisted`, the `permissions` field indicates if the peer has special - privileges. The `banscore` field has simply been removed. (#20755) - -- The following RPCs: `gettxout`, `getrawtransaction`, `decoderawtransaction`, - `decodescript`, `gettransaction`, and REST endpoints: `/rest/tx`, - `/rest/getutxos`, `/rest/block` deprecated the following fields (which are no - longer returned in the responses by default): `addresses`, `reqSigs`. - The `-deprecatedrpc=addresses` flag must be passed for these fields to be - included in the RPC response. This flag/option will be available only for this major release, after which - the deprecation will be removed entirely. Note that these fields are attributes of - the `scriptPubKey` object returned in the RPC response. However, in the response - of `decodescript` these fields are top-level attributes, and included again as attributes - of the `scriptPubKey` object. (#20286) - -- When creating a hex-encoded bitcoin transaction using the `bitcoin-tx` utility - with the `-json` option set, the following fields: `addresses`, `reqSigs` are no longer - returned in the tx output of the response. (#20286) - -- The `listbanned` RPC now returns two new numeric fields: `ban_duration` and `time_remaining`. - Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires, - both in seconds. Additionally, the `ban_created` field is repositioned to come before `banned_until`. (#21602) - -- The `setban` RPC can ban onion addresses again. This fixes a regression introduced in version 0.21.0. (#20852) - -- The `getnodeaddresses` RPC now returns a "network" field indicating the - network type (ipv4, ipv6, onion, or i2p) for each address. (#21594) - -- `getnodeaddresses` now also accepts a "network" argument (ipv4, ipv6, onion, - or i2p) to return only addresses of the specified network. (#21843) - -- The `testmempoolaccept` RPC now accepts multiple transactions (still experimental at the moment, - API may be unstable). This is intended for testing transaction packages with dependency - relationships; it is not recommended for batch-validating independent transactions. In addition to - mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a - total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or - the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to - the accuracy of the test accept: it's possible for `testmempoolaccept` to return "allowed"=True for a - group of transactions, but "too-long-mempool-chain" if they are actually submitted. (#20833) - -- `addmultisigaddress` and `createmultisig` now support up to 20 keys for - Segwit addresses. (#20867) - -Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below. - -Build System ------------- - -- Release binaries are now produced using the new `guix`-based build system. - The [/doc/release-process.md](/doc/release-process.md) document has been updated accordingly. - -Files ------ - -- The list of banned hosts and networks (via `setban` RPC) is now saved on disk - in JSON format in `banlist.json` instead of `banlist.dat`. `banlist.dat` is - only read on startup if `banlist.json` is not present. Changes are only written to the new - `banlist.json`. A future version of Bitcoin Core may completely ignore - `banlist.dat`. (#20966) - -New settings ------------- - -- The `-natpmp` option has been added to use NAT-PMP to map the listening port. - If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP - prevails over one from NAT-PMP. (#18077) - -Updated settings ----------------- - -Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below. - -- Passing an invalid `-rpcauth` argument now cause bitcoind to fail to start. (#20461) - -Tools and Utilities -------------------- - -- A new CLI `-addrinfo` command returns the number of addresses known to the - node per network type (including Tor v2 versus v3) and total. This can be - useful to see if the node knows enough addresses in a network to use options - like `-onlynet=` or to upgrade to this release of Bitcoin Core 22.0 - that supports Tor v3 only. (#21595) - -- A new `-rpcwaittimeout` argument to `bitcoin-cli` sets the timeout - in seconds to use with `-rpcwait`. If the timeout expires, - `bitcoin-cli` will report a failure. (#21056) - -Wallet ------- - -- External signers such as hardware wallets can now be used through the new RPC methods `enumeratesigners` and `displayaddress`. Support is also added to the `send` RPC call. This feature is experimental. See [external-signer.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/external-signer.md) for details. (#16546) - -- A new `listdescriptors` RPC is available to inspect the contents of descriptor-enabled wallets. - The RPC returns public versions of all imported descriptors, including their timestamp and flags. - For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226) - -- The `bumpfee` RPC is not available with wallets that have private keys - disabled. `psbtbumpfee` can be used instead. (#20891) - -- The `fundrawtransaction`, `send` and `walletcreatefundedpsbt` RPCs now support an `include_unsafe` option - that when `true` allows using unsafe inputs to fund the transaction. - Note that the resulting transaction may become invalid if one of the unsafe inputs disappears. - If that happens, the transaction must be funded with different inputs and republished. (#21359) - -- We now support up to 20 keys in `multi()` and `sortedmulti()` descriptors - under `wsh()`. (#20867) - -- Taproot descriptors can be imported into the wallet only after activation has occurred on the network (e.g. mainnet, testnet, signet) in use. See [descriptors.md](https://github.com/bitcoin/bitcoin/blob/22.x/doc/descriptors.md) for supported descriptors. - -GUI changes ------------ - -- External signers such as hardware wallets can now be used. These require an external tool such as [HWI](https://github.com/bitcoin-core/HWI) to be installed and configured under Options -> Wallet. When creating a new wallet a new option "External signer" will appear in the dialog. If the device is detected, its name is suggested as the wallet name. The watch-only keys are then automatically imported. Receive addresses can be verified on the device. The send dialog will automatically use the connected device. This feature is experimental and the UI may freeze for a few seconds when performing these actions. - -Low-level changes -================= - -RPC ---- - -- The RPC server can process a limited number of simultaneous RPC requests. - Previously, if this limit was exceeded, the RPC server would respond with - [status code 500 (`HTTP_INTERNAL_SERVER_ERROR`)](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_server_errors). - Now it returns status code 503 (`HTTP_SERVICE_UNAVAILABLE`). (#18335) - -- Error codes have been updated to be more accurate for the following error cases (#18466): - - `signmessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the - passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). - - `verifymessage` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the - passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). - - `verifymessage` now returns RPC_TYPE_ERROR (-3) if the passed signature - is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5). - -Tests ------ - -22.0 change log -=============== - -A detailed list of changes in this version follows. To keep the list to a manageable length, small refactors and typo fixes are not included, and similar changes are sometimes condensed into one line. - -### Consensus -- bitcoin/bitcoin#19438 Introduce deploymentstatus (ajtowns) -- bitcoin/bitcoin#20207 Follow-up extra comments on taproot code and tests (sipa) -- bitcoin/bitcoin#21330 Deal with missing data in signature hashes more consistently (sipa) - -### Policy -- bitcoin/bitcoin#18766 Disable fee estimation in blocksonly mode (by removing the fee estimates global) (darosior) -- bitcoin/bitcoin#20497 Add `MAX_STANDARD_SCRIPTSIG_SIZE` to policy (sanket1729) -- bitcoin/bitcoin#20611 Move `TX_MAX_STANDARD_VERSION` to policy (MarcoFalke) - -### Mining -- bitcoin/bitcoin#19937, bitcoin/bitcoin#20923 Signet mining utility (ajtowns) - -### Block and transaction handling -- bitcoin/bitcoin#14501 Fix possible data race when committing block files (luke-jr) -- bitcoin/bitcoin#15946 Allow maintaining the blockfilterindex when using prune (jonasschnelli) -- bitcoin/bitcoin#18710 Add local thread pool to CCheckQueue (hebasto) -- bitcoin/bitcoin#19521 Coinstats Index (fjahr) -- bitcoin/bitcoin#19806 UTXO snapshot activation (jamesob) -- bitcoin/bitcoin#19905 Remove dead CheckForkWarningConditionsOnNewFork (MarcoFalke) -- bitcoin/bitcoin#19935 Move SaltedHashers to separate file and add some new ones (achow101) -- bitcoin/bitcoin#20054 Remove confusing and useless "unexpected version" warning (MarcoFalke) -- bitcoin/bitcoin#20519 Handle rename failure in `DumpMempool(…)` by using the `RenameOver(…)` return value (practicalswift) -- bitcoin/bitcoin#20749, bitcoin/bitcoin#20750, bitcoin/bitcoin#21055, bitcoin/bitcoin#21270, bitcoin/bitcoin#21525, bitcoin/bitcoin#21391, bitcoin/bitcoin#21767, bitcoin/bitcoin#21866 Prune `g_chainman` usage (dongcarl) -- bitcoin/bitcoin#20833 rpc/validation: enable packages through testmempoolaccept (glozow) -- bitcoin/bitcoin#20834 Locks and docs in ATMP and CheckInputsFromMempoolAndCache (glozow) -- bitcoin/bitcoin#20854 Remove unnecessary try-block (amitiuttarwar) -- bitcoin/bitcoin#20868 Remove redundant check on pindex (jarolrod) -- bitcoin/bitcoin#20921 Don't try to invalidate genesis block in CChainState::InvalidateBlock (theStack) -- bitcoin/bitcoin#20972 Locks: Annotate CTxMemPool::check to require `cs_main` (dongcarl) -- bitcoin/bitcoin#21009 Remove RewindBlockIndex logic (dhruv) -- bitcoin/bitcoin#21025 Guard chainman chainstates with `cs_main` (dongcarl) -- bitcoin/bitcoin#21202 Two small clang lock annotation improvements (amitiuttarwar) -- bitcoin/bitcoin#21523 Run VerifyDB on all chainstates (jamesob) -- bitcoin/bitcoin#21573 Update libsecp256k1 subtree to latest master (sipa) -- bitcoin/bitcoin#21582, bitcoin/bitcoin#21584, bitcoin/bitcoin#21585 Fix assumeutxo crashes (MarcoFalke) -- bitcoin/bitcoin#21681 Fix ActivateSnapshot to use hardcoded nChainTx (jamesob) -- bitcoin/bitcoin#21796 index: Avoid async shutdown on init error (MarcoFalke) -- bitcoin/bitcoin#21946 Document and test lack of inherited signaling in RBF policy (ariard) -- bitcoin/bitcoin#22084 Package testmempoolaccept followups (glozow) -- bitcoin/bitcoin#22102 Remove `Warning:` from warning message printed for unknown new rules (prayank23) -- bitcoin/bitcoin#22112 Force port 0 in I2P (vasild) -- bitcoin/bitcoin#22135 CRegTestParams: Use `args` instead of `gArgs` (kiminuo) -- bitcoin/bitcoin#22146 Reject invalid coin height and output index when loading assumeutxo (MarcoFalke) -- bitcoin/bitcoin#22253 Distinguish between same tx and same-nonwitness-data tx in mempool (glozow) -- bitcoin/bitcoin#22261 Two small fixes to node broadcast logic (jnewbery) -- bitcoin/bitcoin#22415 Make `m_mempool` optional in CChainState (jamesob) -- bitcoin/bitcoin#22499 Update assumed chain params (sriramdvt) -- bitcoin/bitcoin#22589 net, doc: update I2P hardcoded seeds and docs for 22.0 (jonatack) - -### P2P protocol and network code -- bitcoin/bitcoin#18077 Add NAT-PMP port forwarding support (hebasto) -- bitcoin/bitcoin#18722 addrman: improve performance by using more suitable containers (vasild) -- bitcoin/bitcoin#18819 Replace `cs_feeFilter` with simple std::atomic (MarcoFalke) -- bitcoin/bitcoin#19203 Add regression fuzz harness for CVE-2017-18350. Add FuzzedSocket (practicalswift) -- bitcoin/bitcoin#19288 fuzz: Add fuzzing harness for TorController (practicalswift) -- bitcoin/bitcoin#19415 Make DNS lookup mockable, add fuzzing harness (practicalswift) -- bitcoin/bitcoin#19509 Per-Peer Message Capture (troygiorshev) -- bitcoin/bitcoin#19763 Don't try to relay to the address' originator (vasild) -- bitcoin/bitcoin#19771 Replace enum CConnMan::NumConnections with enum class ConnectionDirection (luke-jr) -- bitcoin/bitcoin#19776 net, rpc: expose high bandwidth mode state via getpeerinfo (theStack) -- bitcoin/bitcoin#19832 Put disconnecting logs into BCLog::NET category (hebasto) -- bitcoin/bitcoin#19858 Periodically make block-relay connections and sync headers (sdaftuar) -- bitcoin/bitcoin#19884 No delay in adding fixed seeds if -dnsseed=0 and peers.dat is empty (dhruv) -- bitcoin/bitcoin#20079 Treat handshake misbehavior like unknown message (MarcoFalke) -- bitcoin/bitcoin#20138 Assume that SetCommonVersion is called at most once per peer (MarcoFalke) -- bitcoin/bitcoin#20162 p2p: declare Announcement::m_state as uint8_t, add getter/setter (jonatack) -- bitcoin/bitcoin#20197 Protect onions in AttemptToEvictConnection(), add eviction protection test coverage (jonatack) -- bitcoin/bitcoin#20210 assert `CNode::m_inbound_onion` is inbound in ctor, add getter, unit tests (jonatack) -- bitcoin/bitcoin#20228 addrman: Make addrman a top-level component (jnewbery) -- bitcoin/bitcoin#20234 Don't bind on 0.0.0.0 if binds are restricted to Tor (vasild) -- bitcoin/bitcoin#20477 Add unit testing of node eviction logic (practicalswift) -- bitcoin/bitcoin#20516 Well-defined CAddress disk serialization, and addrv2 anchors.dat (sipa) -- bitcoin/bitcoin#20557 addrman: Fix new table bucketing during unserialization (jnewbery) -- bitcoin/bitcoin#20561 Periodically clear `m_addr_known` (sdaftuar) -- bitcoin/bitcoin#20599 net processing: Tolerate sendheaders and sendcmpct messages before verack (jnewbery) -- bitcoin/bitcoin#20616 Check CJDNS address is valid (lontivero) -- bitcoin/bitcoin#20617 Remove `m_is_manual_connection` from CNodeState (ariard) -- bitcoin/bitcoin#20624 net processing: Remove nStartingHeight check from block relay (jnewbery) -- bitcoin/bitcoin#20651 Make p2p recv buffer timeout 20 minutes for all peers (jnewbery) -- bitcoin/bitcoin#20661 Only select from addrv2-capable peers for torv3 address relay (sipa) -- bitcoin/bitcoin#20685 Add I2P support using I2P SAM (vasild) -- bitcoin/bitcoin#20690 Clean up logging of outbound connection type (sdaftuar) -- bitcoin/bitcoin#20721 Move ping data to `net_processing` (jnewbery) -- bitcoin/bitcoin#20724 Cleanup of -debug=net log messages (ajtowns) -- bitcoin/bitcoin#20747 net processing: Remove dropmessagestest (jnewbery) -- bitcoin/bitcoin#20764 cli -netinfo peer connections dashboard updates 🎄 ✨ (jonatack) -- bitcoin/bitcoin#20788 add RAII socket and use it instead of bare SOCKET (vasild) -- bitcoin/bitcoin#20791 remove unused legacyWhitelisted in AcceptConnection() (jonatack) -- bitcoin/bitcoin#20816 Move RecordBytesSent() call out of `cs_vSend` lock (jnewbery) -- bitcoin/bitcoin#20845 Log to net debug in MaybeDiscourageAndDisconnect except for noban and manual peers (MarcoFalke) -- bitcoin/bitcoin#20864 Move SocketSendData lock annotation to header (MarcoFalke) -- bitcoin/bitcoin#20965 net, rpc: return `NET_UNROUTABLE` as `not_publicly_routable`, automate helps (jonatack) -- bitcoin/bitcoin#20966 banman: save the banlist in a JSON format on disk (vasild) -- bitcoin/bitcoin#21015 Make all of `net_processing` (and some of net) use std::chrono types (dhruv) -- bitcoin/bitcoin#21029 bitcoin-cli: Correct docs (no "generatenewaddress" exists) (luke-jr) -- bitcoin/bitcoin#21148 Split orphan handling from `net_processing` into txorphanage (ajtowns) -- bitcoin/bitcoin#21162 Net Processing: Move RelayTransaction() into PeerManager (jnewbery) -- bitcoin/bitcoin#21167 make `CNode::m_inbound_onion` public, initialize explicitly (jonatack) -- bitcoin/bitcoin#21186 net/net processing: Move addr data into `net_processing` (jnewbery) -- bitcoin/bitcoin#21187 Net processing: Only call PushAddress() from `net_processing` (jnewbery) -- bitcoin/bitcoin#21198 Address outstanding review comments from PR20721 (jnewbery) -- bitcoin/bitcoin#21222 log: Clarify log message when file does not exist (MarcoFalke) -- bitcoin/bitcoin#21235 Clarify disconnect log message in ProcessGetBlockData, remove send bool (MarcoFalke) -- bitcoin/bitcoin#21236 Net processing: Extract `addr` send functionality into MaybeSendAddr() (jnewbery) -- bitcoin/bitcoin#21261 update inbound eviction protection for multiple networks, add I2P peers (jonatack) -- bitcoin/bitcoin#21328 net, refactor: pass uint16 CService::port as uint16 (jonatack) -- bitcoin/bitcoin#21387 Refactor sock to add I2P fuzz and unit tests (vasild) -- bitcoin/bitcoin#21395 Net processing: Remove unused CNodeState.address member (jnewbery) -- bitcoin/bitcoin#21407 i2p: limit the size of incoming messages (vasild) -- bitcoin/bitcoin#21506 p2p, refactor: make NetPermissionFlags an enum class (jonatack) -- bitcoin/bitcoin#21509 Don't send FEEFILTER in blocksonly mode (mzumsande) -- bitcoin/bitcoin#21560 Add Tor v3 hardcoded seeds (laanwj) -- bitcoin/bitcoin#21563 Restrict period when `cs_vNodes` mutex is locked (hebasto) -- bitcoin/bitcoin#21564 Avoid calling getnameinfo when formatting IPv4 addresses in CNetAddr::ToStringIP (practicalswift) -- bitcoin/bitcoin#21631 i2p: always check the return value of Sock::Wait() (vasild) -- bitcoin/bitcoin#21644 p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind() (jonatack) -- bitcoin/bitcoin#21659 flag relevant Sock methods with [[nodiscard]] (vasild) -- bitcoin/bitcoin#21750 remove unnecessary check of `CNode::cs_vSend` (vasild) -- bitcoin/bitcoin#21756 Avoid calling `getnameinfo` when formatting IPv6 addresses in `CNetAddr::ToStringIP` (practicalswift) -- bitcoin/bitcoin#21775 Limit `m_block_inv_mutex` (MarcoFalke) -- bitcoin/bitcoin#21825 Add I2P hardcoded seeds (jonatack) -- bitcoin/bitcoin#21843 p2p, rpc: enable GetAddr, GetAddresses, and getnodeaddresses by network (jonatack) -- bitcoin/bitcoin#21845 net processing: Don't require locking `cs_main` before calling RelayTransactions() (jnewbery) -- bitcoin/bitcoin#21872 Sanitize message type for logging (laanwj) -- bitcoin/bitcoin#21914 Use stronger AddLocal() for our I2P address (vasild) -- bitcoin/bitcoin#21985 Return IPv6 scope id in `CNetAddr::ToStringIP()` (laanwj) -- bitcoin/bitcoin#21992 Remove -feefilter option (amadeuszpawlik) -- bitcoin/bitcoin#21996 Pass strings to NetPermissions::TryParse functions by const ref (jonatack) -- bitcoin/bitcoin#22013 ignore block-relay-only peers when skipping DNS seed (ajtowns) -- bitcoin/bitcoin#22050 Remove tor v2 support (jonatack) -- bitcoin/bitcoin#22096 AddrFetch - don't disconnect on self-announcements (mzumsande) -- bitcoin/bitcoin#22141 net processing: Remove hash and fValidatedHeaders from QueuedBlock (jnewbery) -- bitcoin/bitcoin#22144 Randomize message processing peer order (sipa) -- bitcoin/bitcoin#22147 Protect last outbound HB compact block peer (sdaftuar) -- bitcoin/bitcoin#22179 Torv2 removal followups (vasild) -- bitcoin/bitcoin#22211 Relay I2P addresses even if not reachable (by us) (vasild) -- bitcoin/bitcoin#22284 Performance improvements to ProtectEvictionCandidatesByRatio() (jonatack) -- bitcoin/bitcoin#22387 Rate limit the processing of rumoured addresses (sipa) -- bitcoin/bitcoin#22455 addrman: detect on-disk corrupted nNew and nTried during unserialization (vasild) - -### Wallet -- bitcoin/bitcoin#15710 Catch `ios_base::failure` specifically (Bushstar) -- bitcoin/bitcoin#16546 External signer support - Wallet Box edition (Sjors) -- bitcoin/bitcoin#17331 Use effective values throughout coin selection (achow101) -- bitcoin/bitcoin#18418 Increase `OUTPUT_GROUP_MAX_ENTRIES` to 100 (fjahr) -- bitcoin/bitcoin#18842 Mark replaced tx to not be in the mempool anymore (MarcoFalke) -- bitcoin/bitcoin#19136 Add `parent_desc` to `getaddressinfo` (achow101) -- bitcoin/bitcoin#19137 wallettool: Add dump and createfromdump commands (achow101) -- bitcoin/bitcoin#19651 `importdescriptor`s update existing (S3RK) -- bitcoin/bitcoin#20040 Refactor OutputGroups to handle fees and spending eligibility on grouping (achow101) -- bitcoin/bitcoin#20202 Make BDB support optional (achow101) -- bitcoin/bitcoin#20226, bitcoin/bitcoin#21277, - bitcoin/bitcoin#21063 Add `listdescriptors` command (S3RK) -- bitcoin/bitcoin#20267 Disable and fix tests for when BDB is not compiled (achow101) -- bitcoin/bitcoin#20275 List all wallets in non-SQLite and non-BDB builds (ryanofsky) -- bitcoin/bitcoin#20365 wallettool: Add parameter to create descriptors wallet (S3RK) -- bitcoin/bitcoin#20403 `upgradewallet` fixes, improvements, test coverage (jonatack) -- bitcoin/bitcoin#20448 `unloadwallet`: Allow specifying `wallet_name` param matching RPC endpoint wallet (luke-jr) -- bitcoin/bitcoin#20536 Error with "Transaction too large" if the funded tx will end up being too large after signing (achow101) -- bitcoin/bitcoin#20687 Add missing check for -descriptors wallet tool option (MarcoFalke) -- bitcoin/bitcoin#20952 Add BerkeleyDB version sanity check at init time (laanwj) -- bitcoin/bitcoin#21127 Load flags before everything else (Sjors) -- bitcoin/bitcoin#21141 Add new format string placeholders for walletnotify (maayank) -- bitcoin/bitcoin#21238 A few descriptor improvements to prepare for Taproot support (sipa) -- bitcoin/bitcoin#21302 `createwallet` examples for descriptor wallets (S3RK) -- bitcoin/bitcoin#21329 descriptor wallet: Cache last hardened xpub and use in normalized descriptors (achow101) -- bitcoin/bitcoin#21365 Basic Taproot signing support for descriptor wallets (sipa) -- bitcoin/bitcoin#21417 Misc external signer improvement and HWI 2 support (Sjors) -- bitcoin/bitcoin#21467 Move external signer out of wallet module (Sjors) -- bitcoin/bitcoin#21572 Fix wrong wallet RPC context set after #21366 (ryanofsky) -- bitcoin/bitcoin#21574 Drop JSONRPCRequest constructors after #21366 (ryanofsky) -- bitcoin/bitcoin#21666 Miscellaneous external signer changes (fanquake) -- bitcoin/bitcoin#21759 Document coin selection code (glozow) -- bitcoin/bitcoin#21786 Ensure sat/vB feerates are in range (mantissa of 3) (jonatack) -- bitcoin/bitcoin#21944 Fix issues when `walletdir` is root directory (prayank23) -- bitcoin/bitcoin#22042 Replace size/weight estimate tuple with struct for named fields (instagibbs) -- bitcoin/bitcoin#22051 Basic Taproot derivation support for descriptors (sipa) -- bitcoin/bitcoin#22154 Add OutputType::BECH32M and related wallet support for fetching bech32m addresses (achow101) -- bitcoin/bitcoin#22156 Allow tr() import only when Taproot is active (achow101) -- bitcoin/bitcoin#22166 Add support for inferring tr() descriptors (sipa) -- bitcoin/bitcoin#22173 Do not load external signers wallets when unsupported (achow101) -- bitcoin/bitcoin#22308 Add missing BlockUntilSyncedToCurrentChain (MarcoFalke) -- bitcoin/bitcoin#22334 Do not spam about non-existent spk managers (S3RK) -- bitcoin/bitcoin#22379 Erase spkmans rather than setting to nullptr (achow101) -- bitcoin/bitcoin#22421 Make IsSegWitOutput return true for taproot outputs (sipa) -- bitcoin/bitcoin#22461 Change ScriptPubKeyMan::Upgrade default to True (achow101) -- bitcoin/bitcoin#22492 Reorder locks in dumpwallet to avoid lock order assertion (achow101) -- bitcoin/bitcoin#22686 Use GetSelectionAmount in ApproximateBestSubset (achow101) - -### RPC and other APIs -- bitcoin/bitcoin#18335, bitcoin/bitcoin#21484 cli: Print useful error if bitcoind rpc work queue exceeded (LarryRuane) -- bitcoin/bitcoin#18466 Fix invalid parameter error codes for `{sign,verify}message` RPCs (theStack) -- bitcoin/bitcoin#18772 Calculate fees in `getblock` using BlockUndo data (robot-visions) -- bitcoin/bitcoin#19033 http: Release work queue after event base finish (promag) -- bitcoin/bitcoin#19055 Add MuHash3072 implementation (fjahr) -- bitcoin/bitcoin#19145 Add `hash_type` MUHASH for gettxoutsetinfo (fjahr) -- bitcoin/bitcoin#19847 Avoid duplicate set lookup in `gettxoutproof` (promag) -- bitcoin/bitcoin#20286 Deprecate `addresses` and `reqSigs` from RPC outputs (mjdietzx) -- bitcoin/bitcoin#20459 Fail to return undocumented return values (MarcoFalke) -- bitcoin/bitcoin#20461 Validate `-rpcauth` arguments (promag) -- bitcoin/bitcoin#20556 Properly document return values (`submitblock`, `gettxout`, `getblocktemplate`, `scantxoutset`) (MarcoFalke) -- bitcoin/bitcoin#20755 Remove deprecated fields from `getpeerinfo` (amitiuttarwar) -- bitcoin/bitcoin#20832 Better error messages for invalid addresses (eilx2) -- bitcoin/bitcoin#20867 Support up to 20 keys for multisig under Segwit context (darosior) -- bitcoin/bitcoin#20877 cli: `-netinfo` user help and argument parsing improvements (jonatack) -- bitcoin/bitcoin#20891 Remove deprecated bumpfee behavior (achow101) -- bitcoin/bitcoin#20916 Return wtxid from `testmempoolaccept` (MarcoFalke) -- bitcoin/bitcoin#20917 Add missing signet mentions in network name lists (theStack) -- bitcoin/bitcoin#20941 Document `RPC_TRANSACTION_ALREADY_IN_CHAIN` exception (jarolrod) -- bitcoin/bitcoin#20944 Return total fee in `getmempoolinfo` (MarcoFalke) -- bitcoin/bitcoin#20964 Add specific error code for "wallet already loaded" (laanwj) -- bitcoin/bitcoin#21053 Document {previous,next}blockhash as optional (theStack) -- bitcoin/bitcoin#21056 Add a `-rpcwaittimeout` parameter to limit time spent waiting (cdecker) -- bitcoin/bitcoin#21192 cli: Treat high detail levels as maximum in `-netinfo` (laanwj) -- bitcoin/bitcoin#21311 Document optional fields for `getchaintxstats` result (theStack) -- bitcoin/bitcoin#21359 `include_unsafe` option for fundrawtransaction (t-bast) -- bitcoin/bitcoin#21426 Remove `scantxoutset` EXPERIMENTAL warning (jonatack) -- bitcoin/bitcoin#21544 Missing doc updates for bumpfee psbt update (MarcoFalke) -- bitcoin/bitcoin#21594 Add `network` field to `getnodeaddresses` (jonatack) -- bitcoin/bitcoin#21595, bitcoin/bitcoin#21753 cli: Create `-addrinfo` (jonatack) -- bitcoin/bitcoin#21602 Add additional ban time fields to `listbanned` (jarolrod) -- bitcoin/bitcoin#21679 Keep default argument value in correct type (promag) -- bitcoin/bitcoin#21718 Improve error message for `getblock` invalid datatype (klementtan) -- bitcoin/bitcoin#21913 RPCHelpMan fixes (kallewoof) -- bitcoin/bitcoin#22021 `bumpfee`/`psbtbumpfee` fixes and updates (jonatack) -- bitcoin/bitcoin#22043 `addpeeraddress` test coverage, code simplify/constness (jonatack) -- bitcoin/bitcoin#22327 cli: Avoid truncating `-rpcwaittimeout` (MarcoFalke) - -### GUI -- bitcoin/bitcoin#18948 Call setParent() in the parent's context (hebasto) -- bitcoin/bitcoin#20482 Add depends qt fix for ARM macs (jonasschnelli) -- bitcoin/bitcoin#21836 scripted-diff: Replace three dots with ellipsis in the ui strings (hebasto) -- bitcoin/bitcoin#21935 Enable external signer support for GUI builds (Sjors) -- bitcoin/bitcoin#22133 Make QWindowsVistaStylePlugin available again (regression) (hebasto) -- bitcoin-core/gui#4 UI external signer support (e.g. hardware wallet) (Sjors) -- bitcoin-core/gui#13 Hide peer detail view if multiple are selected (promag) -- bitcoin-core/gui#18 Add peertablesortproxy module (hebasto) -- bitcoin-core/gui#21 Improve pruning tooltip (fluffypony, BitcoinErrorLog) -- bitcoin-core/gui#72 Log static plugins meta data and used style (hebasto) -- bitcoin-core/gui#79 Embed monospaced font (hebasto) -- bitcoin-core/gui#85 Remove unused "What's This" button in dialogs on Windows OS (hebasto) -- bitcoin-core/gui#115 Replace "Hide tray icon" option with positive "Show tray icon" one (hebasto) -- bitcoin-core/gui#118 Remove BDB version from the Information tab (hebasto) -- bitcoin-core/gui#121 Early subscribe core signals in transaction table model (promag) -- bitcoin-core/gui#123 Do not accept command while executing another one (hebasto) -- bitcoin-core/gui#125 Enable changing the autoprune block space size in intro dialog (luke-jr) -- bitcoin-core/gui#138 Unlock encrypted wallet "OK" button bugfix (mjdietzx) -- bitcoin-core/gui#139 doc: Improve gui/src/qt README.md (jarolrod) -- bitcoin-core/gui#154 Support macOS Dark mode (goums, Uplab) -- bitcoin-core/gui#162 Add network to peers window and peer details (jonatack) -- bitcoin-core/gui#163, bitcoin-core/gui#180 Peer details: replace Direction with Connection Type (jonatack) -- bitcoin-core/gui#164 Handle peer addition/removal in a right way (hebasto) -- bitcoin-core/gui#165 Save QSplitter state in QSettings (hebasto) -- bitcoin-core/gui#173 Follow Qt docs when implementing rowCount and columnCount (hebasto) -- bitcoin-core/gui#179 Add Type column to peers window, update peer details name/tooltip (jonatack) -- bitcoin-core/gui#186 Add information to "Confirm fee bump" window (prayank23) -- bitcoin-core/gui#189 Drop workaround for QTBUG-42503 which was fixed in Qt 5.5.0 (prusnak) -- bitcoin-core/gui#194 Save/restore RPCConsole geometry only for window (hebasto) -- bitcoin-core/gui#202 Fix right panel toggle in peers tab (RandyMcMillan) -- bitcoin-core/gui#203 Display plain "Inbound" in peer details (jonatack) -- bitcoin-core/gui#204 Drop buggy TableViewLastColumnResizingFixer class (hebasto) -- bitcoin-core/gui#205, bitcoin-core/gui#229 Save/restore TransactionView and recentRequestsView tables column sizes (hebasto) -- bitcoin-core/gui#206 Display fRelayTxes and `bip152_highbandwidth_{to, from}` in peer details (jonatack) -- bitcoin-core/gui#213 Add Copy Address Action to Payment Requests (jarolrod) -- bitcoin-core/gui#214 Disable requests context menu actions when appropriate (jarolrod) -- bitcoin-core/gui#217 Make warning label look clickable (jarolrod) -- bitcoin-core/gui#219 Prevent the main window popup menu (hebasto) -- bitcoin-core/gui#220 Do not translate file extensions (hebasto) -- bitcoin-core/gui#221 RPCConsole translatable string fixes and improvements (jonatack) -- bitcoin-core/gui#226 Add "Last Block" and "Last Tx" rows to peer details area (jonatack) -- bitcoin-core/gui#233 qt test: Don't bind to regtest port (achow101) -- bitcoin-core/gui#243 Fix issue when disabling the auto-enabled blank wallet checkbox (jarolrod) -- bitcoin-core/gui#246 Revert "qt: Use "fusion" style on macOS Big Sur with old Qt" (hebasto) -- bitcoin-core/gui#248 For values of "Bytes transferred" and "Bytes/s" with 1000-based prefix names use 1000-based divisor instead of 1024-based (wodry) -- bitcoin-core/gui#251 Improve URI/file handling message (hebasto) -- bitcoin-core/gui#256 Save/restore column sizes of the tables in the Peers tab (hebasto) -- bitcoin-core/gui#260 Handle exceptions isntead of crash (hebasto) -- bitcoin-core/gui#263 Revamp context menus (hebasto) -- bitcoin-core/gui#271 Don't clear console prompt when font resizing (jarolrod) -- bitcoin-core/gui#275 Support runtime appearance adjustment on macOS (hebasto) -- bitcoin-core/gui#276 Elide long strings in their middle in the Peers tab (hebasto) -- bitcoin-core/gui#281 Set shortcuts for console's resize buttons (jarolrod) -- bitcoin-core/gui#293 Enable wordWrap for Services (RandyMcMillan) -- bitcoin-core/gui#296 Do not use QObject::tr plural syntax for numbers with a unit symbol (hebasto) -- bitcoin-core/gui#297 Avoid unnecessary translations (hebasto) -- bitcoin-core/gui#298 Peertableview alternating row colors (RandyMcMillan) -- bitcoin-core/gui#300 Remove progress bar on modal overlay (brunoerg) -- bitcoin-core/gui#309 Add access to the Peers tab from the network icon (hebasto) -- bitcoin-core/gui#311 Peers Window rename 'Peer id' to 'Peer' (jarolrod) -- bitcoin-core/gui#313 Optimize string concatenation by default (hebasto) -- bitcoin-core/gui#325 Align numbers in the "Peer Id" column to the right (hebasto) -- bitcoin-core/gui#329 Make console buttons look clickable (jarolrod) -- bitcoin-core/gui#330 Allow prompt icon to be colorized (jarolrod) -- bitcoin-core/gui#331 Make RPC console welcome message translation-friendly (hebasto) -- bitcoin-core/gui#332 Replace disambiguation strings with translator comments (hebasto) -- bitcoin-core/gui#335 test: Use QSignalSpy instead of QEventLoop (jarolrod) -- bitcoin-core/gui#343 Improve the GUI responsiveness when progress dialogs are used (hebasto) -- bitcoin-core/gui#361 Fix GUI segfault caused by bitcoin/bitcoin#22216 (ryanofsky) -- bitcoin-core/gui#362 Add keyboard shortcuts to context menus (luke-jr) -- bitcoin-core/gui#366 Dark Mode fixes/portability (luke-jr) -- bitcoin-core/gui#375 Emit dataChanged signal to dynamically re-sort Peers table (hebasto) -- bitcoin-core/gui#393 Fix regression in "Encrypt Wallet" menu item (hebasto) -- bitcoin-core/gui#396 Ensure external signer option remains disabled without signers (achow101) -- bitcoin-core/gui#406 Handle new added plurals in `bitcoin_en.ts` (hebasto) - -### Build system -- bitcoin/bitcoin#17227 Add Android packaging support (icota) -- bitcoin/bitcoin#17920 guix: Build support for macOS (dongcarl) -- bitcoin/bitcoin#18298 Fix Qt processing of configure script for depends with DEBUG=1 (hebasto) -- bitcoin/bitcoin#19160 multiprocess: Add basic spawn and IPC support (ryanofsky) -- bitcoin/bitcoin#19504 Bump minimum python version to 3.6 (ajtowns) -- bitcoin/bitcoin#19522 fix building libconsensus with reduced exports for Darwin targets (fanquake) -- bitcoin/bitcoin#19683 Pin clang search paths for darwin host (dongcarl) -- bitcoin/bitcoin#19764 Split boost into build/host packages + bump + cleanup (dongcarl) -- bitcoin/bitcoin#19817 libtapi 1100.0.11 (fanquake) -- bitcoin/bitcoin#19846 enable unused member function diagnostic (Zero-1729) -- bitcoin/bitcoin#19867 Document and cleanup Qt hacks (fanquake) -- bitcoin/bitcoin#20046 Set `CMAKE_INSTALL_RPATH` for native packages (ryanofsky) -- bitcoin/bitcoin#20223 Drop the leading 0 from the version number (achow101) -- bitcoin/bitcoin#20333 Remove `native_biplist` dependency (fanquake) -- bitcoin/bitcoin#20353 configure: Support -fdebug-prefix-map and -fmacro-prefix-map (ajtowns) -- bitcoin/bitcoin#20359 Various config.site.in improvements and linting (dongcarl) -- bitcoin/bitcoin#20413 Require C++17 compiler (MarcoFalke) -- bitcoin/bitcoin#20419 Set minimum supported macOS to 10.14 (fanquake) -- bitcoin/bitcoin#20421 miniupnpc 2.2.2 (fanquake) -- bitcoin/bitcoin#20422 Mac deployment unification (fanquake) -- bitcoin/bitcoin#20424 Update univalue subtree (MarcoFalke) -- bitcoin/bitcoin#20449 Fix Windows installer build (achow101) -- bitcoin/bitcoin#20468 Warn when generating man pages for binaries built from a dirty branch (tylerchambers) -- bitcoin/bitcoin#20469 Avoid secp256k1.h include from system (dergoegge) -- bitcoin/bitcoin#20470 Replace genisoimage with xorriso (dongcarl) -- bitcoin/bitcoin#20471 Use C++17 in depends (fanquake) -- bitcoin/bitcoin#20496 Drop unneeded macOS framework dependencies (hebasto) -- bitcoin/bitcoin#20520 Do not force Precompiled Headers (PCH) for building Qt on Linux (hebasto) -- bitcoin/bitcoin#20549 Support make src/bitcoin-node and src/bitcoin-gui (promag) -- bitcoin/bitcoin#20565 Ensure PIC build for bdb on Android (BlockMechanic) -- bitcoin/bitcoin#20594 Fix getauxval calls in randomenv.cpp (jonasschnelli) -- bitcoin/bitcoin#20603 Update crc32c subtree (MarcoFalke) -- bitcoin/bitcoin#20609 configure: output notice that test binary is disabled by fuzzing (apoelstra) -- bitcoin/bitcoin#20619 guix: Quality of life improvements (dongcarl) -- bitcoin/bitcoin#20629 Improve id string robustness (dongcarl) -- bitcoin/bitcoin#20641 Use Qt top-level build facilities (hebasto) -- bitcoin/bitcoin#20650 Drop workaround for a fixed bug in Qt build system (hebasto) -- bitcoin/bitcoin#20673 Use more legible qmake commands in qt package (hebasto) -- bitcoin/bitcoin#20684 Define .INTERMEDIATE target once only (hebasto) -- bitcoin/bitcoin#20720 more robustly check for fcf-protection support (fanquake) -- bitcoin/bitcoin#20734 Make platform-specific targets available for proper platform builds only (hebasto) -- bitcoin/bitcoin#20936 build fuzz tests by default (danben) -- bitcoin/bitcoin#20937 guix: Make nsis reproducible by respecting SOURCE-DATE-EPOCH (dongcarl) -- bitcoin/bitcoin#20938 fix linking against -latomic when building for riscv (fanquake) -- bitcoin/bitcoin#20939 fix `RELOC_SECTION` security check for bitcoin-util (fanquake) -- bitcoin/bitcoin#20963 gitian-linux: Build binaries for 64-bit POWER (continued) (laanwj) -- bitcoin/bitcoin#21036 gitian: Bump descriptors to focal for 22.0 (fanquake) -- bitcoin/bitcoin#21045 Adds switch to enable/disable randomized base address in MSVC builds (EthanHeilman) -- bitcoin/bitcoin#21065 make macOS HOST in download-osx generic (fanquake) -- bitcoin/bitcoin#21078 guix: only download sources for hosts being built (fanquake) -- bitcoin/bitcoin#21116 Disable --disable-fuzz-binary for gitian/guix builds (hebasto) -- bitcoin/bitcoin#21182 remove mostly pointless `BOOST_PROCESS` macro (fanquake) -- bitcoin/bitcoin#21205 actually fail when Boost is missing (fanquake) -- bitcoin/bitcoin#21209 use newer source for libnatpmp (fanquake) -- bitcoin/bitcoin#21226 Fix fuzz binary compilation under windows (danben) -- bitcoin/bitcoin#21231 Add /opt/homebrew to path to look for boost libraries (fyquah) -- bitcoin/bitcoin#21239 guix: Add codesignature attachment support for osx+win (dongcarl) -- bitcoin/bitcoin#21250 Make `HAVE_O_CLOEXEC` available outside LevelDB (bugfix) (theStack) -- bitcoin/bitcoin#21272 guix: Passthrough `SDK_PATH` into container (dongcarl) -- bitcoin/bitcoin#21274 assumptions: Assume C++17 (fanquake) -- bitcoin/bitcoin#21286 Bump minimum Qt version to 5.9.5 (hebasto) -- bitcoin/bitcoin#21298 guix: Bump time-machine, glibc, and linux-headers (dongcarl) -- bitcoin/bitcoin#21304 guix: Add guix-clean script + establish gc-root for container profiles (dongcarl) -- bitcoin/bitcoin#21320 fix libnatpmp macos cross compile (fanquake) -- bitcoin/bitcoin#21321 guix: Add curl to required tool list (hebasto) -- bitcoin/bitcoin#21333 set Unicode true for NSIS installer (fanquake) -- bitcoin/bitcoin#21339 Make `AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER])` unconditional (hebasto) -- bitcoin/bitcoin#21349 Fix fuzz-cuckoocache cross-compiling with DEBUG=1 (hebasto) -- bitcoin/bitcoin#21354 build, doc: Drop no longer required packages from macOS cross-compiling dependencies (hebasto) -- bitcoin/bitcoin#21363 build, qt: Improve Qt static plugins/libs check code (hebasto) -- bitcoin/bitcoin#21375 guix: Misc feedback-based fixes + hier restructuring (dongcarl) -- bitcoin/bitcoin#21376 Qt 5.12.10 (fanquake) -- bitcoin/bitcoin#21382 Clean remnants of QTBUG-34748 fix (hebasto) -- bitcoin/bitcoin#21400 Fix regression introduced in #21363 (hebasto) -- bitcoin/bitcoin#21403 set --build when configuring packages in depends (fanquake) -- bitcoin/bitcoin#21421 don't try and use -fstack-clash-protection on Windows (fanquake) -- bitcoin/bitcoin#21423 Cleanups and follow ups after bumping Qt to 5.12.10 (hebasto) -- bitcoin/bitcoin#21427 Fix `id_string` invocations (dongcarl) -- bitcoin/bitcoin#21430 Add -Werror=implicit-fallthrough compile flag (hebasto) -- bitcoin/bitcoin#21457 Split libtapi and clang out of `native_cctools` (fanquake) -- bitcoin/bitcoin#21462 guix: Add guix-{attest,verify} scripts (dongcarl) -- bitcoin/bitcoin#21495 build, qt: Fix static builds on macOS Big Sur (hebasto) -- bitcoin/bitcoin#21497 Do not opt-in unused CoreWLAN stuff in depends for macOS (hebasto) -- bitcoin/bitcoin#21543 Enable safe warnings for msvc builds (hebasto) -- bitcoin/bitcoin#21565 Make `bitcoin_qt.m4` more generic (fanquake) -- bitcoin/bitcoin#21610 remove -Wdeprecated-register from NOWARN flags (fanquake) -- bitcoin/bitcoin#21613 enable -Wdocumentation (fanquake) -- bitcoin/bitcoin#21629 Fix configuring when building depends with `NO_BDB=1` (fanquake) -- bitcoin/bitcoin#21654 build, qt: Make Qt rcc output always deterministic (hebasto) -- bitcoin/bitcoin#21655 build, qt: No longer need to set `QT_RCC_TEST=1` for determinism (hebasto) -- bitcoin/bitcoin#21658 fix make deploy for arm64-darwin (sgulls) -- bitcoin/bitcoin#21694 Use XLIFF file to provide more context to Transifex translators (hebasto) -- bitcoin/bitcoin#21708, bitcoin/bitcoin#21593 Drop pointless sed commands (hebasto) -- bitcoin/bitcoin#21731 Update msvc build to use Qt5.12.10 binaries (sipsorcery) -- bitcoin/bitcoin#21733 Re-add command to install vcpkg (dplusplus1024) -- bitcoin/bitcoin#21793 Use `-isysroot` over `--sysroot` on macOS (fanquake) -- bitcoin/bitcoin#21869 Add missing `-D_LIBCPP_DEBUG=1` to debug flags (MarcoFalke) -- bitcoin/bitcoin#21889 macho: check for control flow instrumentation (fanquake) -- bitcoin/bitcoin#21920 Improve macro for testing -latomic requirement (MarcoFalke) -- bitcoin/bitcoin#21991 libevent 2.1.12-stable (fanquake) -- bitcoin/bitcoin#22054 Bump Qt version to 5.12.11 (hebasto) -- bitcoin/bitcoin#22063 Use Qt archive of the same version as the compiled binaries (hebasto) -- bitcoin/bitcoin#22070 Don't use cf-protection when targeting arm-apple-darwin (fanquake) -- bitcoin/bitcoin#22071 Latest config.guess and config.sub (fanquake) -- bitcoin/bitcoin#22075 guix: Misc leftover usability improvements (dongcarl) -- bitcoin/bitcoin#22123 Fix qt.mk for mac arm64 (promag) -- bitcoin/bitcoin#22174 build, qt: Fix libraries linking order for Linux hosts (hebasto) -- bitcoin/bitcoin#22182 guix: Overhaul how guix-{attest,verify} works and hierarchy (dongcarl) -- bitcoin/bitcoin#22186 build, qt: Fix compiling qt package in depends with GCC 11 (hebasto) -- bitcoin/bitcoin#22199 macdeploy: minor fixups and simplifications (fanquake) -- bitcoin/bitcoin#22230 Fix MSVC linker /SubSystem option for bitcoin-qt.exe (hebasto) -- bitcoin/bitcoin#22234 Mark print-% target as phony (dgoncharov) -- bitcoin/bitcoin#22238 improve detection of eBPF support (fanquake) -- bitcoin/bitcoin#22258 Disable deprecated-copy warning only when external warnings are enabled (MarcoFalke) -- bitcoin/bitcoin#22320 set minimum required Boost to 1.64.0 (fanquake) -- bitcoin/bitcoin#22348 Fix cross build for Windows with Boost Process (hebasto) -- bitcoin/bitcoin#22365 guix: Avoid relying on newer symbols by rebasing our cross toolchains on older glibcs (dongcarl) -- bitcoin/bitcoin#22381 guix: Test security-check sanity before performing them (with macOS) (fanquake) -- bitcoin/bitcoin#22405 Remove --enable-glibc-back-compat from Guix build (fanquake) -- bitcoin/bitcoin#22406 Remove --enable-determinism configure option (fanquake) -- bitcoin/bitcoin#22410 Avoid GCC 7.1 ABI change warning in guix build (sipa) -- bitcoin/bitcoin#22436 use aarch64 Clang if cross-compiling for darwin on aarch64 (fanquake) -- bitcoin/bitcoin#22465 guix: Pin kernel-header version, time-machine to upstream 1.3.0 commit (dongcarl) -- bitcoin/bitcoin#22511 guix: Silence `getent(1)` invocation, doc fixups (dongcarl) -- bitcoin/bitcoin#22531 guix: Fixes to guix-{attest,verify} (achow101) -- bitcoin/bitcoin#22642 release: Release with separate sha256sums and sig files (dongcarl) -- bitcoin/bitcoin#22685 clientversion: No suffix `#if CLIENT_VERSION_IS_RELEASE` (dongcarl) -- bitcoin/bitcoin#22713 Fix build with Boost 1.77.0 (sizeofvoid) - -### Tests and QA -- bitcoin/bitcoin#14604 Add test and refactor `feature_block.py` (sanket1729) -- bitcoin/bitcoin#17556 Change `feature_config_args.py` not to rely on strange regtest=0 behavior (ryanofsky) -- bitcoin/bitcoin#18795 wallet issue with orphaned rewards (domob1812) -- bitcoin/bitcoin#18847 compressor: Use a prevector in CompressScript serialization (jb55) -- bitcoin/bitcoin#19259 fuzz: Add fuzzing harness for LoadMempool(…) and DumpMempool(…) (practicalswift) -- bitcoin/bitcoin#19315 Allow outbound & block-relay-only connections in functional tests. (amitiuttarwar) -- bitcoin/bitcoin#19698 Apply strict verification flags for transaction tests and assert backwards compatibility (glozow) -- bitcoin/bitcoin#19801 Check for all possible `OP_CLTV` fail reasons in `feature_cltv.py` (BIP 65) (theStack) -- bitcoin/bitcoin#19893 Remove or explain syncwithvalidationinterfacequeue (MarcoFalke) -- bitcoin/bitcoin#19972 fuzz: Add fuzzing harness for node eviction logic (practicalswift) -- bitcoin/bitcoin#19982 Fix inconsistent lock order in `wallet_tests/CreateWallet` (hebasto) -- bitcoin/bitcoin#20000 Fix creation of "std::string"s with \0s (vasild) -- bitcoin/bitcoin#20047 Use `wait_for_{block,header}` helpers in `p2p_fingerprint.py` (theStack) -- bitcoin/bitcoin#20171 Add functional test `test_txid_inv_delay` (ariard) -- bitcoin/bitcoin#20189 Switch to BIP341's suggested scheme for outputs without script (sipa) -- bitcoin/bitcoin#20248 Fix length of R check in `key_signature_tests` (dgpv) -- bitcoin/bitcoin#20276, bitcoin/bitcoin#20385, bitcoin/bitcoin#20688, bitcoin/bitcoin#20692 Run various mempool tests even with wallet disabled (mjdietzx) -- bitcoin/bitcoin#20323 Create or use existing properly initialized NodeContexts (dongcarl) -- bitcoin/bitcoin#20354 Add `feature_taproot.py --previous_release` (MarcoFalke) -- bitcoin/bitcoin#20370 fuzz: Version handshake (MarcoFalke) -- bitcoin/bitcoin#20377 fuzz: Fill various small fuzzing gaps (practicalswift) -- bitcoin/bitcoin#20425 fuzz: Make CAddrMan fuzzing harness deterministic (practicalswift) -- bitcoin/bitcoin#20430 Sanitizers: Add suppression for unsigned-integer-overflow in libstdc++ (jonasschnelli) -- bitcoin/bitcoin#20437 fuzz: Avoid time-based "non-determinism" in fuzzing harnesses by using mocked GetTime() (practicalswift) -- bitcoin/bitcoin#20458 Add `is_bdb_compiled` helper (Sjors) -- bitcoin/bitcoin#20466 Fix intermittent `p2p_fingerprint` issue (MarcoFalke) -- bitcoin/bitcoin#20472 Add testing of ParseInt/ParseUInt edge cases with leading +/-/0:s (practicalswift) -- bitcoin/bitcoin#20507 sync: print proper lock order location when double lock is detected (vasild) -- bitcoin/bitcoin#20522 Fix sync issue in `disconnect_p2ps` (amitiuttarwar) -- bitcoin/bitcoin#20524 Move `MIN_VERSION_SUPPORTED` to p2p.py (jnewbery) -- bitcoin/bitcoin#20540 Fix `wallet_multiwallet` issue on windows (MarcoFalke) -- bitcoin/bitcoin#20560 fuzz: Link all targets once (MarcoFalke) -- bitcoin/bitcoin#20567 Add option to git-subtree-check to do full check, add help (laanwj) -- bitcoin/bitcoin#20569 Fix intermittent `wallet_multiwallet` issue with `got_loading_error` (MarcoFalke) -- bitcoin/bitcoin#20613 Use Popen.wait instead of RPC in `assert_start_raises_init_error` (MarcoFalke) -- bitcoin/bitcoin#20663 fuzz: Hide `script_assets_test_minimizer` (MarcoFalke) -- bitcoin/bitcoin#20674 fuzz: Call SendMessages after ProcessMessage to increase coverage (MarcoFalke) -- bitcoin/bitcoin#20683 Fix restart node race (MarcoFalke) -- bitcoin/bitcoin#20686 fuzz: replace CNode code with fuzz/util.h::ConsumeNode() (jonatack) -- bitcoin/bitcoin#20733 Inline non-member functions with body in fuzzing headers (pstratem) -- bitcoin/bitcoin#20737 Add missing assignment in `mempool_resurrect.py` (MarcoFalke) -- bitcoin/bitcoin#20745 Correct `epoll_ctl` data race suppression (hebasto) -- bitcoin/bitcoin#20748 Add race:SendZmqMessage tsan suppression (MarcoFalke) -- bitcoin/bitcoin#20760 Set correct nValue for multi-op-return policy check (MarcoFalke) -- bitcoin/bitcoin#20761 fuzz: Check that `NULL_DATA` is unspendable (MarcoFalke) -- bitcoin/bitcoin#20765 fuzz: Check that certain script TxoutType are nonstandard (mjdietzx) -- bitcoin/bitcoin#20772 fuzz: Bolster ExtractDestination(s) checks (mjdietzx) -- bitcoin/bitcoin#20789 fuzz: Rework strong and weak net enum fuzzing (MarcoFalke) -- bitcoin/bitcoin#20828 fuzz: Introduce CallOneOf helper to replace switch-case (MarcoFalke) -- bitcoin/bitcoin#20839 fuzz: Avoid extraneous copy of input data, using Span<> (MarcoFalke) -- bitcoin/bitcoin#20844 Add sanitizer suppressions for AMD EPYC CPUs (MarcoFalke) -- bitcoin/bitcoin#20857 Update documentation in `feature_csv_activation.py` (PiRK) -- bitcoin/bitcoin#20876 Replace getmempoolentry with testmempoolaccept in MiniWallet (MarcoFalke) -- bitcoin/bitcoin#20881 fuzz: net permission flags in net processing (MarcoFalke) -- bitcoin/bitcoin#20882 fuzz: Add missing muhash registration (MarcoFalke) -- bitcoin/bitcoin#20908 fuzz: Use mocktime in `process_message*` fuzz targets (MarcoFalke) -- bitcoin/bitcoin#20915 fuzz: Fail if message type is not fuzzed (MarcoFalke) -- bitcoin/bitcoin#20946 fuzz: Consolidate fuzzing TestingSetup initialization (dongcarl) -- bitcoin/bitcoin#20954 Declare `nodes` type `in test_framework.py` (kiminuo) -- bitcoin/bitcoin#20955 Fix `get_previous_releases.py` for aarch64 (MarcoFalke) -- bitcoin/bitcoin#20969 check that getblockfilter RPC fails without block filter index (theStack) -- bitcoin/bitcoin#20971 Work around libFuzzer deadlock (MarcoFalke) -- bitcoin/bitcoin#20993 Store subversion (user agent) as string in `msg_version` (theStack) -- bitcoin/bitcoin#20995 fuzz: Avoid initializing version to less than `MIN_PEER_PROTO_VERSION` (MarcoFalke) -- bitcoin/bitcoin#20998 Fix BlockToJsonVerbose benchmark (martinus) -- bitcoin/bitcoin#21003 Move MakeNoLogFileContext to `libtest_util`, and use it in bench (MarcoFalke) -- bitcoin/bitcoin#21008 Fix zmq test flakiness, improve speed (theStack) -- bitcoin/bitcoin#21023 fuzz: Disable shuffle when merge=1 (MarcoFalke) -- bitcoin/bitcoin#21037 fuzz: Avoid designated initialization (C++20) in fuzz tests (practicalswift) -- bitcoin/bitcoin#21042 doc, test: Improve `setup_clean_chain` documentation (fjahr) -- bitcoin/bitcoin#21080 fuzz: Configure check for main function (take 2) (MarcoFalke) -- bitcoin/bitcoin#21084 Fix timeout decrease in `feature_assumevalid` (brunoerg) -- bitcoin/bitcoin#21096 Re-add dead code detection (flack) -- bitcoin/bitcoin#21100 Remove unused function `xor_bytes` (theStack) -- bitcoin/bitcoin#21115 Fix Windows cross build (hebasto) -- bitcoin/bitcoin#21117 Remove `assert_blockchain_height` (MarcoFalke) -- bitcoin/bitcoin#21121 Small unit test improvements, including helper to make mempool transaction (amitiuttarwar) -- bitcoin/bitcoin#21124 Remove unnecessary assignment in bdb (brunoerg) -- bitcoin/bitcoin#21125 Change `BOOST_CHECK` to `BOOST_CHECK_EQUAL` for paths (kiminuo) -- bitcoin/bitcoin#21142, bitcoin/bitcoin#21512 fuzz: Add `tx_pool` fuzz target (MarcoFalke) -- bitcoin/bitcoin#21165 Use mocktime in `test_seed_peers` (dhruv) -- bitcoin/bitcoin#21169 fuzz: Add RPC interface fuzzing. Increase fuzzing coverage from 65% to 70% (practicalswift) -- bitcoin/bitcoin#21170 bench: Add benchmark to write json into a string (martinus) -- bitcoin/bitcoin#21178 Run `mempool_reorg.py` even with wallet disabled (DariusParvin) -- bitcoin/bitcoin#21185 fuzz: Remove expensive and redundant muhash from crypto fuzz target (MarcoFalke) -- bitcoin/bitcoin#21200 Speed up `rpc_blockchain.py` by removing miniwallet.generate() (MarcoFalke) -- bitcoin/bitcoin#21211 Move `P2WSH_OP_TRUE` to shared test library (MarcoFalke) -- bitcoin/bitcoin#21228 Avoid comparision of integers with different signs (jonasschnelli) -- bitcoin/bitcoin#21230 Fix `NODE_NETWORK_LIMITED_MIN_BLOCKS` disconnection (MarcoFalke) -- bitcoin/bitcoin#21252 Add missing wait for sync to `feature_blockfilterindex_prune` (MarcoFalke) -- bitcoin/bitcoin#21254 Avoid connecting to real network when running tests (MarcoFalke) -- bitcoin/bitcoin#21264 fuzz: Two scripted diff renames (MarcoFalke) -- bitcoin/bitcoin#21280 Bug fix in `transaction_tests` (glozow) -- bitcoin/bitcoin#21293 Replace accidentally placed bit-OR with logical-OR (hebasto) -- bitcoin/bitcoin#21297 `feature_blockfilterindex_prune.py` improvements (jonatack) -- bitcoin/bitcoin#21310 zmq test: fix sync-up by matching notification to generated block (theStack) -- bitcoin/bitcoin#21334 Additional BIP9 tests (Sjors) -- bitcoin/bitcoin#21338 Add functional test for anchors.dat (brunoerg) -- bitcoin/bitcoin#21345 Bring `p2p_leak.py` up to date (mzumsande) -- bitcoin/bitcoin#21357 Unconditionally check for fRelay field in test framework (jarolrod) -- bitcoin/bitcoin#21358 fuzz: Add missing include (`test/util/setup_common.h`) (MarcoFalke) -- bitcoin/bitcoin#21371 fuzz: fix gcc Woverloaded-virtual build warnings (jonatack) -- bitcoin/bitcoin#21373 Generate fewer blocks in `feature_nulldummy` to fix timeouts, speed up (jonatack) -- bitcoin/bitcoin#21390 Test improvements for UTXO set hash tests (fjahr) -- bitcoin/bitcoin#21410 increase `rpc_timeout` for fundrawtx `test_transaction_too_large` (jonatack) -- bitcoin/bitcoin#21411 add logging, reduce blocks, move `sync_all` in `wallet_` groups (jonatack) -- bitcoin/bitcoin#21438 Add ParseUInt8() test coverage (jonatack) -- bitcoin/bitcoin#21443 fuzz: Implement `fuzzed_dns_lookup_function` as a lambda (practicalswift) -- bitcoin/bitcoin#21445 cirrus: Use SSD cluster for speedup (MarcoFalke) -- bitcoin/bitcoin#21477 Add test for CNetAddr::ToString IPv6 address formatting (RFC 5952) (practicalswift) -- bitcoin/bitcoin#21487 fuzz: Use ConsumeWeakEnum in addrman for service flags (MarcoFalke) -- bitcoin/bitcoin#21488 Add ParseUInt16() unit test and fuzz coverage (jonatack) -- bitcoin/bitcoin#21491 test: remove duplicate assertions in util_tests (jonatack) -- bitcoin/bitcoin#21522 fuzz: Use PickValue where possible (MarcoFalke) -- bitcoin/bitcoin#21531 remove qt byteswap compattests (fanquake) -- bitcoin/bitcoin#21557 small cleanup in RPCNestedTests tests (fanquake) -- bitcoin/bitcoin#21586 Add missing suppression for signed-integer-overflow:txmempool.cpp (MarcoFalke) -- bitcoin/bitcoin#21592 Remove option to make TestChain100Setup non-deterministic (MarcoFalke) -- bitcoin/bitcoin#21597 Document `race:validation_chainstatemanager_tests` suppression (MarcoFalke) -- bitcoin/bitcoin#21599 Replace file level integer overflow suppression with function level suppression (practicalswift) -- bitcoin/bitcoin#21604 Document why no symbol names can be used for suppressions (MarcoFalke) -- bitcoin/bitcoin#21606 fuzz: Extend psbt fuzz target a bit (MarcoFalke) -- bitcoin/bitcoin#21617 fuzz: Fix uninitialized read in i2p test (MarcoFalke) -- bitcoin/bitcoin#21630 fuzz: split FuzzedSock interface and implementation (vasild) -- bitcoin/bitcoin#21634 Skip SQLite fsyncs while testing (achow101) -- bitcoin/bitcoin#21669 Remove spurious double lock tsan suppressions by bumping to clang-12 (MarcoFalke) -- bitcoin/bitcoin#21676 Use mocktime to avoid intermittent failure in `rpc_tests` (MarcoFalke) -- bitcoin/bitcoin#21677 fuzz: Avoid use of low file descriptor ids (which may be in use) in FuzzedSock (practicalswift) -- bitcoin/bitcoin#21678 Fix TestPotentialDeadLockDetected suppression (hebasto) -- bitcoin/bitcoin#21689 Remove intermittently failing and not very meaningful `BOOST_CHECK` in `cnetaddr_basic` (practicalswift) -- bitcoin/bitcoin#21691 Check that no versionbits are re-used (MarcoFalke) -- bitcoin/bitcoin#21707 Extend functional tests for addr relay (mzumsande) -- bitcoin/bitcoin#21712 Test default `include_mempool` value of gettxout (promag) -- bitcoin/bitcoin#21738 Use clang-12 for ASAN, Add missing suppression (MarcoFalke) -- bitcoin/bitcoin#21740 add new python linter to check file names and permissions (windsok) -- bitcoin/bitcoin#21749 Bump shellcheck version (hebasto) -- bitcoin/bitcoin#21754 Run `feature_cltv` with MiniWallet (MarcoFalke) -- bitcoin/bitcoin#21762 Speed up `mempool_spend_coinbase.py` (MarcoFalke) -- bitcoin/bitcoin#21773 fuzz: Ensure prevout is consensus-valid (MarcoFalke) -- bitcoin/bitcoin#21777 Fix `feature_notifications.py` intermittent issue (MarcoFalke) -- bitcoin/bitcoin#21785 Fix intermittent issue in `p2p_addr_relay.py` (MarcoFalke) -- bitcoin/bitcoin#21787 Fix off-by-ones in `rpc_fundrawtransaction` assertions (jonatack) -- bitcoin/bitcoin#21792 Fix intermittent issue in `p2p_segwit.py` (MarcoFalke) -- bitcoin/bitcoin#21795 fuzz: Terminate immediately if a fuzzing harness tries to perform a DNS lookup (belt and suspenders) (practicalswift) -- bitcoin/bitcoin#21798 fuzz: Create a block template in `tx_pool` targets (MarcoFalke) -- bitcoin/bitcoin#21804 Speed up `p2p_segwit.py` (jnewbery) -- bitcoin/bitcoin#21810 fuzz: Various RPC fuzzer follow-ups (practicalswift) -- bitcoin/bitcoin#21814 Fix `feature_config_args.py` intermittent issue (MarcoFalke) -- bitcoin/bitcoin#21821 Add missing test for empty P2WSH redeem (MarcoFalke) -- bitcoin/bitcoin#21822 Resolve bug in `interface_bitcoin_cli.py` (klementtan) -- bitcoin/bitcoin#21846 fuzz: Add `-fsanitize=integer` suppression needed for RPC fuzzer (`generateblock`) (practicalswift) -- bitcoin/bitcoin#21849 fuzz: Limit toxic test globals to their respective scope (MarcoFalke) -- bitcoin/bitcoin#21867 use MiniWallet for `p2p_blocksonly.py` (theStack) -- bitcoin/bitcoin#21873 minor fixes & improvements for files linter test (windsok) -- bitcoin/bitcoin#21874 fuzz: Add `WRITE_ALL_FUZZ_TARGETS_AND_ABORT` (MarcoFalke) -- bitcoin/bitcoin#21884 fuzz: Remove unused --enable-danger-fuzz-link-all option (MarcoFalke) -- bitcoin/bitcoin#21890 fuzz: Limit ParseISO8601DateTime fuzzing to 32-bit (MarcoFalke) -- bitcoin/bitcoin#21891 fuzz: Remove strprintf test cases that are known to fail (MarcoFalke) -- bitcoin/bitcoin#21892 fuzz: Avoid excessively large min fee rate in `tx_pool` (MarcoFalke) -- bitcoin/bitcoin#21895 Add TSA annotations to the WorkQueue class members (hebasto) -- bitcoin/bitcoin#21900 use MiniWallet for `feature_csv_activation.py` (theStack) -- bitcoin/bitcoin#21909 fuzz: Limit max insertions in timedata fuzz test (MarcoFalke) -- bitcoin/bitcoin#21922 fuzz: Avoid timeout in EncodeBase58 (MarcoFalke) -- bitcoin/bitcoin#21927 fuzz: Run const CScript member functions only once (MarcoFalke) -- bitcoin/bitcoin#21929 fuzz: Remove incorrect float round-trip serialization test (MarcoFalke) -- bitcoin/bitcoin#21936 fuzz: Terminate immediately if a fuzzing harness tries to create a TCP socket (belt and suspenders) (practicalswift) -- bitcoin/bitcoin#21941 fuzz: Call const member functions in addrman fuzz test only once (MarcoFalke) -- bitcoin/bitcoin#21945 add P2PK support to MiniWallet (theStack) -- bitcoin/bitcoin#21948 Fix off-by-one in mockscheduler test RPC (MarcoFalke) -- bitcoin/bitcoin#21953 fuzz: Add `utxo_snapshot` target (MarcoFalke) -- bitcoin/bitcoin#21970 fuzz: Add missing CheckTransaction before CheckTxInputs (MarcoFalke) -- bitcoin/bitcoin#21989 Use `COINBASE_MATURITY` in functional tests (kiminuo) -- bitcoin/bitcoin#22003 Add thread safety annotations (ajtowns) -- bitcoin/bitcoin#22004 fuzz: Speed up transaction fuzz target (MarcoFalke) -- bitcoin/bitcoin#22005 fuzz: Speed up banman fuzz target (MarcoFalke) -- bitcoin/bitcoin#22029 [fuzz] Improve transport deserialization fuzz test coverage (dhruv) -- bitcoin/bitcoin#22048 MiniWallet: introduce enum type for output mode (theStack) -- bitcoin/bitcoin#22057 use MiniWallet (P2PK mode) for `feature_dersig.py` (theStack) -- bitcoin/bitcoin#22065 Mark `CheckTxInputs` `[[nodiscard]]`. Avoid UUM in fuzzing harness `coins_view` (practicalswift) -- bitcoin/bitcoin#22069 fuzz: don't try and use fopencookie() when building for Android (fanquake) -- bitcoin/bitcoin#22082 update nanobench from release 4.0.0 to 4.3.4 (martinus) -- bitcoin/bitcoin#22086 remove BasicTestingSetup from unit tests that don't need it (fanquake) -- bitcoin/bitcoin#22089 MiniWallet: fix fee calculation for P2PK and check tx vsize (theStack) -- bitcoin/bitcoin#21107, bitcoin/bitcoin#22092 Convert documentation into type annotations (fanquake) -- bitcoin/bitcoin#22095 Additional BIP32 test vector for hardened derivation with leading zeros (kristapsk) -- bitcoin/bitcoin#22103 Fix IPv6 check on BSD systems (n-thumann) -- bitcoin/bitcoin#22118 check anchors.dat when node starts for the first time (brunoerg) -- bitcoin/bitcoin#22120 `p2p_invalid_block`: Check that a block rejected due to too-new tim… (willcl-ark) -- bitcoin/bitcoin#22153 Fix `p2p_leak.py` intermittent failure (mzumsande) -- bitcoin/bitcoin#22169 p2p, rpc, fuzz: various tiny follow-ups (jonatack) -- bitcoin/bitcoin#22176 Correct outstanding -Werror=sign-compare errors (Empact) -- bitcoin/bitcoin#22180 fuzz: Increase branch coverage of the float fuzz target (MarcoFalke) -- bitcoin/bitcoin#22187 Add `sync_blocks` in `wallet_orphanedreward.py` (domob1812) -- bitcoin/bitcoin#22201 Fix TestShell to allow running in Jupyter Notebook (josibake) -- bitcoin/bitcoin#22202 Add temporary coinstats suppressions (MarcoFalke) -- bitcoin/bitcoin#22203 Use ConnmanTestMsg from test lib in `denialofservice_tests` (MarcoFalke) -- bitcoin/bitcoin#22210 Use MiniWallet in `test_no_inherited_signaling` RBF test (MarcoFalke) -- bitcoin/bitcoin#22224 Update msvc and appveyor builds to use Qt5.12.11 binaries (sipsorcery) -- bitcoin/bitcoin#22249 Kill process group to avoid dangling processes when using `--failfast` (S3RK) -- bitcoin/bitcoin#22267 fuzz: Speed up crypto fuzz target (MarcoFalke) -- bitcoin/bitcoin#22270 Add bitcoin-util tests (+refactors) (MarcoFalke) -- bitcoin/bitcoin#22271 fuzz: Assert roundtrip equality for `CPubKey` (theStack) -- bitcoin/bitcoin#22279 fuzz: add missing ECCVerifyHandle to `base_encode_decode` (apoelstra) -- bitcoin/bitcoin#22292 bench, doc: benchmarking updates and fixups (jonatack) -- bitcoin/bitcoin#22306 Improvements to `p2p_addr_relay.py` (amitiuttarwar) -- bitcoin/bitcoin#22310 Add functional test for replacement relay fee check (ariard) -- bitcoin/bitcoin#22311 Add missing syncwithvalidationinterfacequeue in `p2p_blockfilters` (MarcoFalke) -- bitcoin/bitcoin#22313 Add missing `sync_all` to `feature_coinstatsindex` (MarcoFalke) -- bitcoin/bitcoin#22322 fuzz: Check banman roundtrip (MarcoFalke) -- bitcoin/bitcoin#22363 Use `script_util` helpers for creating P2{PKH,SH,WPKH,WSH} scripts (theStack) -- bitcoin/bitcoin#22399 fuzz: Rework CTxDestination fuzzing (MarcoFalke) -- bitcoin/bitcoin#22408 add tests for `bad-txns-prevout-null` reject reason (theStack) -- bitcoin/bitcoin#22445 fuzz: Move implementations of non-template fuzz helpers from util.h to util.cpp (sriramdvt) -- bitcoin/bitcoin#22446 Fix `wallet_listdescriptors.py` if bdb is not compiled (hebasto) -- bitcoin/bitcoin#22447 Whitelist `rpc_rawtransaction` peers to speed up tests (jonatack) -- bitcoin/bitcoin#22742 Use proper target in `do_fund_send` (S3RK) - -### Miscellaneous -- bitcoin/bitcoin#19337 sync: Detect double lock from the same thread (vasild) -- bitcoin/bitcoin#19809 log: Prefix log messages with function name and source code location if -logsourcelocations is set (practicalswift) -- bitcoin/bitcoin#19866 eBPF Linux tracepoints (jb55) -- bitcoin/bitcoin#20024 init: Fix incorrect warning "Reducing -maxconnections from N to N-1, because of system limitations" (practicalswift) -- bitcoin/bitcoin#20145 contrib: Add getcoins.py script to get coins from (signet) faucet (kallewoof) -- bitcoin/bitcoin#20255 util: Add assume() identity function (MarcoFalke) -- bitcoin/bitcoin#20288 script, doc: Contrib/seeds updates (jonatack) -- bitcoin/bitcoin#20358 src/randomenv.cpp: Fix build on uclibc (ffontaine) -- bitcoin/bitcoin#20406 util: Avoid invalid integer negation in formatmoney and valuefromamount (practicalswift) -- bitcoin/bitcoin#20434 contrib: Parse elf directly for symbol and security checks (laanwj) -- bitcoin/bitcoin#20451 lint: Run mypy over contrib/devtools (fanquake) -- bitcoin/bitcoin#20476 contrib: Add test for elf symbol-check (laanwj) -- bitcoin/bitcoin#20530 lint: Update cppcheck linter to c++17 and improve explicit usage (fjahr) -- bitcoin/bitcoin#20589 log: Clarify that failure to read/write `fee_estimates.dat` is non-fatal (MarcoFalke) -- bitcoin/bitcoin#20602 util: Allow use of c++14 chrono literals (MarcoFalke) -- bitcoin/bitcoin#20605 init: Signal-safe instant shutdown (laanwj) -- bitcoin/bitcoin#20608 contrib: Add symbol check test for PE binaries (fanquake) -- bitcoin/bitcoin#20689 contrib: Replace binary verification script verify.sh with python rewrite (theStack) -- bitcoin/bitcoin#20715 util: Add argsmanager::getcommand() and use it in bitcoin-wallet (MarcoFalke) -- bitcoin/bitcoin#20735 script: Remove outdated extract-osx-sdk.sh (hebasto) -- bitcoin/bitcoin#20817 lint: Update list of spelling linter false positives, bump to codespell 2.0.0 (theStack) -- bitcoin/bitcoin#20884 script: Improve robustness of bitcoind.service on startup (hebasto) -- bitcoin/bitcoin#20906 contrib: Embed c++11 patch in `install_db4.sh` (gruve-p) -- bitcoin/bitcoin#21004 contrib: Fix docker args conditional in gitian-build (setpill) -- bitcoin/bitcoin#21007 bitcoind: Add -daemonwait option to wait for initialization (laanwj) -- bitcoin/bitcoin#21041 log: Move "Pre-allocating up to position 0x[…] in […].dat" log message to debug category (practicalswift) -- bitcoin/bitcoin#21059 Drop boost/preprocessor dependencies (hebasto) -- bitcoin/bitcoin#21087 guix: Passthrough `BASE_CACHE` into container (dongcarl) -- bitcoin/bitcoin#21088 guix: Jump forwards in time-machine and adapt (dongcarl) -- bitcoin/bitcoin#21089 guix: Add support for powerpc64{,le} (dongcarl) -- bitcoin/bitcoin#21110 util: Remove boost `posix_time` usage from `gettime*` (fanquake) -- bitcoin/bitcoin#21111 Improve OpenRC initscript (parazyd) -- bitcoin/bitcoin#21123 code style: Add EditorConfig file (kiminuo) -- bitcoin/bitcoin#21173 util: Faster hexstr => 13% faster blocktojson (martinus) -- bitcoin/bitcoin#21221 tools: Allow argument/parameter bin packing in clang-format (jnewbery) -- bitcoin/bitcoin#21244 Move GetDataDir to ArgsManager (kiminuo) -- bitcoin/bitcoin#21255 contrib: Run test-symbol-check for risc-v (fanquake) -- bitcoin/bitcoin#21271 guix: Explicitly set umask in build container (dongcarl) -- bitcoin/bitcoin#21300 script: Add explanatory comment to tc.sh (dscotese) -- bitcoin/bitcoin#21317 util: Make assume() usable as unary expression (MarcoFalke) -- bitcoin/bitcoin#21336 Make .gitignore ignore src/test/fuzz/fuzz.exe (hebasto) -- bitcoin/bitcoin#21337 guix: Update darwin native packages dependencies (hebasto) -- bitcoin/bitcoin#21405 compat: remove memcpy -> memmove backwards compatibility alias (fanquake) -- bitcoin/bitcoin#21418 contrib: Make systemd invoke dependencies only when ready (laanwj) -- bitcoin/bitcoin#21447 Always add -daemonwait to known command line arguments (hebasto) -- bitcoin/bitcoin#21471 bugfix: Fix `bech32_encode` calls in `gen_key_io_test_vectors.py` (sipa) -- bitcoin/bitcoin#21615 script: Add trusted key for hebasto (hebasto) -- bitcoin/bitcoin#21664 contrib: Use lief for macos and windows symbol & security checks (fanquake) -- bitcoin/bitcoin#21695 contrib: Remove no longer used contrib/bitcoin-qt.pro (hebasto) -- bitcoin/bitcoin#21711 guix: Add full installation and usage documentation (dongcarl) -- bitcoin/bitcoin#21799 guix: Use `gcc-8` across the board (dongcarl) -- bitcoin/bitcoin#21802 Avoid UB in util/asmap (advance a dereferenceable iterator outside its valid range) (MarcoFalke) -- bitcoin/bitcoin#21823 script: Update reviewers (jonatack) -- bitcoin/bitcoin#21850 Remove `GetDataDir(net_specific)` function (kiminuo) -- bitcoin/bitcoin#21871 scripts: Add checks for minimum required os versions (fanquake) -- bitcoin/bitcoin#21966 Remove double serialization; use software encoder for fee estimation (sipa) -- bitcoin/bitcoin#22060 contrib: Add torv3 seed nodes for testnet, drop v2 ones (laanwj) -- bitcoin/bitcoin#22244 devtools: Correctly extract symbol versions in symbol-check (laanwj) -- bitcoin/bitcoin#22533 guix/build: Remove vestigial SKIPATTEST.TAG (dongcarl) -- bitcoin/bitcoin#22643 guix-verify: Non-zero exit code when anything fails (dongcarl) -- bitcoin/bitcoin#22654 guix: Don't include directory name in SHA256SUMS (achow101) - -### Documentation -- bitcoin/bitcoin#15451 clarify getdata limit after #14897 (HashUnlimited) -- bitcoin/bitcoin#15545 Explain why CheckBlock() is called before AcceptBlock (Sjors) -- bitcoin/bitcoin#17350 Add developer documentation to isminetype (HAOYUatHZ) -- bitcoin/bitcoin#17934 Use `CONFIG_SITE` variable instead of --prefix option (hebasto) -- bitcoin/bitcoin#18030 Coin::IsSpent() can also mean never existed (Sjors) -- bitcoin/bitcoin#18096 IsFinalTx comment about nSequence & `OP_CLTV` (nothingmuch) -- bitcoin/bitcoin#18568 Clarify developer notes about constant naming (ryanofsky) -- bitcoin/bitcoin#19961 doc: tor.md updates (jonatack) -- bitcoin/bitcoin#19968 Clarify CRollingBloomFilter size estimate (robot-dreams) -- bitcoin/bitcoin#20200 Rename CODEOWNERS to REVIEWERS (adamjonas) -- bitcoin/bitcoin#20329 docs/descriptors.md: Remove hardened marker in the path after xpub (dgpv) -- bitcoin/bitcoin#20380 Add instructions on how to fuzz the P2P layer using Honggfuzz NetDriver (practicalswift) -- bitcoin/bitcoin#20414 Remove generated manual pages from master branch (laanwj) -- bitcoin/bitcoin#20473 Document current boost dependency as 1.71.0 (laanwj) -- bitcoin/bitcoin#20512 Add bash as an OpenBSD dependency (emilengler) -- bitcoin/bitcoin#20568 Use FeeModes doc helper in estimatesmartfee (MarcoFalke) -- bitcoin/bitcoin#20577 libconsensus: add missing error code description, fix NBitcoin link (theStack) -- bitcoin/bitcoin#20587 Tidy up Tor doc (more stringent) (wodry) -- bitcoin/bitcoin#20592 Update wtxidrelay documentation per BIP339 (jonatack) -- bitcoin/bitcoin#20601 Update for FreeBSD 12.2, add GUI Build Instructions (jarolrod) -- bitcoin/bitcoin#20635 fix misleading comment about call to non-existing function (pox) -- bitcoin/bitcoin#20646 Refer to BIPs 339/155 in feature negotiation (jonatack) -- bitcoin/bitcoin#20653 Move addr relay comment in net to correct place (MarcoFalke) -- bitcoin/bitcoin#20677 Remove shouty enums in `net_processing` comments (sdaftuar) -- bitcoin/bitcoin#20741 Update 'Secure string handling' (prayank23) -- bitcoin/bitcoin#20757 tor.md and -onlynet help updates (jonatack) -- bitcoin/bitcoin#20829 Add -netinfo help (jonatack) -- bitcoin/bitcoin#20830 Update developer notes with signet (jonatack) -- bitcoin/bitcoin#20890 Add explicit macdeployqtplus dependencies install step (hebasto) -- bitcoin/bitcoin#20913 Add manual page generation for bitcoin-util (laanwj) -- bitcoin/bitcoin#20985 Add xorriso to macOS depends packages (fanquake) -- bitcoin/bitcoin#20986 Update developer notes to discourage very long lines (jnewbery) -- bitcoin/bitcoin#20987 Add instructions for generating RPC docs (ben-kaufman) -- bitcoin/bitcoin#21026 Document use of make-tag script to make tags (laanwj) -- bitcoin/bitcoin#21028 doc/bips: Add BIPs 43, 44, 49, and 84 (luke-jr) -- bitcoin/bitcoin#21049 Add release notes for listdescriptors RPC (S3RK) -- bitcoin/bitcoin#21060 More precise -debug and -debugexclude doc (wodry) -- bitcoin/bitcoin#21077 Clarify -timeout and -peertimeout config options (glozow) -- bitcoin/bitcoin#21105 Correctly identify script type (niftynei) -- bitcoin/bitcoin#21163 Guix is shipped in Debian and Ubuntu (MarcoFalke) -- bitcoin/bitcoin#21210 Rework internal and external links (MarcoFalke) -- bitcoin/bitcoin#21246 Correction for VerifyTaprootCommitment comments (roconnor-blockstream) -- bitcoin/bitcoin#21263 Clarify that squashing should happen before review (MarcoFalke) -- bitcoin/bitcoin#21323 guix, doc: Update default HOSTS value (hebasto) -- bitcoin/bitcoin#21324 Update build instructions for Fedora (hebasto) -- bitcoin/bitcoin#21343 Revamp macOS build doc (jarolrod) -- bitcoin/bitcoin#21346 install qt5 when building on macOS (fanquake) -- bitcoin/bitcoin#21384 doc: add signet to bitcoin.conf documentation (jonatack) -- bitcoin/bitcoin#21394 Improve comment about protected peers (amitiuttarwar) -- bitcoin/bitcoin#21398 Update fuzzing docs for afl-clang-lto (MarcoFalke) -- bitcoin/bitcoin#21444 net, doc: Doxygen updates and fixes in netbase.{h,cpp} (jonatack) -- bitcoin/bitcoin#21481 Tell howto install clang-format on Debian/Ubuntu (wodry) -- bitcoin/bitcoin#21567 Fix various misleading comments (glozow) -- bitcoin/bitcoin#21661 Fix name of script guix-build (Emzy) -- bitcoin/bitcoin#21672 Remove boostrap info from `GUIX_COMMON_FLAGS` doc (fanquake) -- bitcoin/bitcoin#21688 Note on SDK for macOS depends cross-compile (jarolrod) -- bitcoin/bitcoin#21709 Update reduce-memory.md and bitcoin.conf -maxconnections info (jonatack) -- bitcoin/bitcoin#21710 update helps for addnode rpc and -addnode/-maxconnections config options (jonatack) -- bitcoin/bitcoin#21752 Clarify that feerates are per virtual size (MarcoFalke) -- bitcoin/bitcoin#21811 Remove Visual Studio 2017 reference from readme (sipsorcery) -- bitcoin/bitcoin#21818 Fixup -coinstatsindex help, update bitcoin.conf and files.md (jonatack) -- bitcoin/bitcoin#21856 add OSS-Fuzz section to fuzzing.md doc (adamjonas) -- bitcoin/bitcoin#21912 Remove mention of priority estimation (MarcoFalke) -- bitcoin/bitcoin#21925 Update bips.md for 0.21.1 (MarcoFalke) -- bitcoin/bitcoin#21942 improve make with parallel jobs description (klementtan) -- bitcoin/bitcoin#21947 Fix OSS-Fuzz links (MarcoFalke) -- bitcoin/bitcoin#21988 note that brew installed qt is not supported (jarolrod) -- bitcoin/bitcoin#22056 describe in fuzzing.md how to reproduce a CI crash (jonatack) -- bitcoin/bitcoin#22080 add maxuploadtarget to bitcoin.conf example (jarolrod) -- bitcoin/bitcoin#22088 Improve note on choosing posix mingw32 (jarolrod) -- bitcoin/bitcoin#22109 Fix external links (IRC, …) (MarcoFalke) -- bitcoin/bitcoin#22121 Various validation doc fixups (MarcoFalke) -- bitcoin/bitcoin#22172 Update tor.md, release notes with removal of tor v2 support (jonatack) -- bitcoin/bitcoin#22204 Remove obsolete `okSafeMode` RPC guideline from developer notes (theStack) -- bitcoin/bitcoin#22208 Update `REVIEWERS` (practicalswift) -- bitcoin/bitcoin#22250 add basic I2P documentation (vasild) -- bitcoin/bitcoin#22296 Final merge of release notes snippets, mv to wiki (MarcoFalke) -- bitcoin/bitcoin#22335 recommend `--disable-external-signer` in OpenBSD build guide (theStack) -- bitcoin/bitcoin#22339 Document minimum required libc++ version (hebasto) -- bitcoin/bitcoin#22349 Repository IRC updates (jonatack) -- bitcoin/bitcoin#22360 Remove unused section from release process (MarcoFalke) -- bitcoin/bitcoin#22369 Add steps for Transifex to release process (jonatack) -- bitcoin/bitcoin#22393 Added info to bitcoin.conf doc (bliotti) -- bitcoin/bitcoin#22402 Install Rosetta on M1-macOS for qt in depends (hebasto) -- bitcoin/bitcoin#22432 Fix incorrect `testmempoolaccept` doc (glozow) -- bitcoin/bitcoin#22648 doc, test: improve i2p/tor docs and i2p reachable unit tests (jonatack) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Aaron Clauson -- Adam Jonas -- amadeuszpawlik -- Amiti Uttarwar -- Andrew Chow -- Andrew Poelstra -- Anthony Towns -- Antoine Poinsot -- Antoine Riard -- apawlik -- apitko -- Ben Carman -- Ben Woosley -- benk10 -- Bezdrighin -- Block Mechanic -- Brian Liotti -- Bruno Garcia -- Carl Dong -- Christian Decker -- coinforensics -- Cory Fields -- Dan Benjamin -- Daniel Kraft -- Darius Parvin -- Dhruv Mehta -- Dmitry Goncharov -- Dmitry Petukhov -- dplusplus1024 -- dscotese -- Duncan Dean -- Elle Mouton -- Elliott Jin -- Emil Engler -- Ethan Heilman -- eugene -- Evan Klitzke -- Fabian Jahr -- Fabrice Fontaine -- fanquake -- fdov -- flack -- Fotis Koutoupas -- Fu Yong Quah -- fyquah -- glozow -- Gregory Sanders -- Guido Vranken -- Gunar C. Gessner -- h -- HAOYUatHZ -- Hennadii Stepanov -- Igor Cota -- Ikko Ashimine -- Ivan Metlushko -- jackielove4u -- James O'Beirne -- Jarol Rodriguez -- Joel Klabo -- John Newbery -- Jon Atack -- Jonas Schnelli -- João Barbosa -- Josiah Baker -- Karl-Johan Alm -- Kiminuo -- Klement Tan -- Kristaps Kaupe -- Larry Ruane -- lisa neigut -- Lucas Ontivero -- Luke Dashjr -- Maayan Keshet -- MarcoFalke -- Martin Ankerl -- Martin Zumsande -- Michael Dietz -- Michael Polzer -- Michael Tidwell -- Niklas Gögge -- nthumann -- Oliver Gugger -- parazyd -- Patrick Strateman -- Pavol Rusnak -- Peter Bushnell -- Pierre K -- Pieter Wuille -- PiRK -- pox -- practicalswift -- Prayank -- R E Broadley -- Rafael Sadowski -- randymcmillan -- Raul Siles -- Riccardo Spagni -- Russell O'Connor -- Russell Yanofsky -- S3RK -- saibato -- Samuel Dobson -- sanket1729 -- Sawyer Billings -- Sebastian Falbesoner -- setpill -- sgulls -- sinetek -- Sjors Provoost -- Sriram -- Stephan Oeste -- Suhas Daftuar -- Sylvain Goumy -- t-bast -- Troy Giorshev -- Tushar Singla -- Tyler Chambers -- Uplab -- Vasil Dimov -- W. J. van der Laan -- willcl-ark -- William Bright -- William Casarin -- windsok -- wodry -- Yerzhan Mazhkenov -- Yuval Kogman -- Zero - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-22.1.md b/doc/release-notes/release-notes-22.1.md deleted file mode 100644 index d304b7e57aef7..0000000000000 --- a/doc/release-notes/release-notes-22.1.md +++ /dev/null @@ -1,128 +0,0 @@ -22.1 Release Notes -================== - -Bitcoin Core version 22.1 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.14+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -From Bitcoin Core 22.0 onwards, macOS versions earlier than 10.14 are no longer supported. - -Notable changes -=============== - -Updated settings ----------------- - -- In previous releases, the meaning of the command line option - `-persistmempool` (without a value provided) incorrectly disabled mempool - persistence. `-persistmempool` is now treated like other boolean options to - mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1` - and `-nopersistmempool` is unaffected. (#23061) - -### P2P - -### RPC and other APIs - -- #25237 rpc: Capture UniValue by ref for rpcdoccheck -- #25983 Prevent data race for pathHandlers -- #26275 Fix crash on deriveaddresses when index is 2147483647 (2^31-1) - -### Wallet - -- #22781 wallet: fix the behavior of IsHDEnabled -- #22949 fee: Round up fee calculation to avoid a lower than expected feerate -- #23333 wallet: fix segfault by avoiding invalid default-ctored external_spk_managers entry - -### Build system - -- #22820 build, qt: Fix typo in QtInputSupport check -- #23045 build: Restrict check for CRC32C intrinsic to aarch64 -- #23148 build: Fix guix linker-loader path and add check_ELF_interpreter -- #23314 build: explicitly disable libsecp256k1 openssl based tests -- #23580 build: patch qt to explicitly define previously implicit header include -- #24215 guix: ignore additional failing certvalidator test -- #24256 build: Bump depends packages (zmq, libXau) -- #25201 windeploy: Renewed windows code signing certificate -- #25985 Revert "build: Use Homebrew's sqlite package if it is available" -- #26633 depends: update qt 5.12 url to archive location - -### GUI - -- #gui631 Disallow encryption of watchonly wallets -- #gui680 Fixes MacOS 13 segfault by preventing certain notifications -- #24498 qt: Avoid crash on startup if int specified in settings.json - -### Tests - -- #23716 test: replace hashlib.ripemd160 with an own implementation -- #24239 test: fix ceildiv division by using integers - -### Utilities - -- #22390 system: skip trying to set the locale on NetBSD -- #22895 don't call GetBlockPos in ReadBlockFromDisk without cs_main lock -- #24104 fs: Make compatible with boost 1.78 - -### Miscellaneous - -- #23335 refactor: include a missing header in fs.cpp -- #23504 ci: Replace soon EOL hirsute with jammy -- #26321 Adjust .tx/config for new Transifex CLI - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- BlackcoinDev -- Carl Dong -- Hennadii Stepanov -- Joan Karadimov -- John Moffett -- Jon Atack -- Kittywhiskers Van Gogh -- Marco Falke -- Martin Zumsande -- Michael Ford -- muxator -- Pieter Wuille -- Ryan Ofsky -- Saibato -- Sebastian Falbesoner -- W. J. van der Laan - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-23.0.md b/doc/release-notes/release-notes-23.0.md deleted file mode 100644 index b1467a0f71156..0000000000000 --- a/doc/release-notes/release-notes-23.0.md +++ /dev/null @@ -1,373 +0,0 @@ -23.0 Release Notes -================== - -Bitcoin Core version 23.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -Notable changes -=============== - -P2P and network changes ------------------------ - -- A bitcoind node will no longer rumour addresses to inbound peers by default. - They will become eligible for address gossip after sending an ADDR, ADDRV2, - or GETADDR message. (#21528) - -- Before this release, Bitcoin Core had a strong preference to try to connect only to peers that listen on port 8333. As a result of that, Bitcoin nodes listening on non-standard ports would likely not get any Bitcoin Core peers connecting to them. This preference has been removed. (#23542) - -- Full support has been added for the CJDNS network. See the new option `-cjdnsreachable` and [doc/cjdns.md](https://github.com/bitcoin/bitcoin/tree/23.x/doc/cjdns.md) (#23077) - -Fee estimation changes ----------------------- - -- Fee estimation now takes the feerate of replacement (RBF) transactions into - account. (#22539) - -Rescan startup parameter removed --------------------------------- - -The `-rescan` startup parameter has been removed. Wallets which require -rescanning due to corruption will still be rescanned on startup. -Otherwise, please use the `rescanblockchain` RPC to trigger a rescan. (#23123) - -Tracepoints and Userspace, Statically Defined Tracing support -------------------------------------------------------------- - -Bitcoin Core release binaries for Linux now include experimental tracepoints which -act as an interface for process-internal events. These can be used for review, -debugging, monitoring, and more. The tracepoint API is semi-stable. While the API -is tested, process internals might change between releases requiring changes to the -tracepoints. Information about the existing tracepoints can be found under -[doc/tracing.md](https://github.com/bitcoin/bitcoin/blob/23.x/doc/tracing.md) and -usage examples are provided in [contrib/tracing/](https://github.com/bitcoin/bitcoin/tree/23.x/contrib/tracing). - -Updated RPCs ------------- - -- The `validateaddress` RPC now returns an `error_locations` array for invalid - addresses, with the indices of invalid character locations in the address (if - known). For example, this will attempt to locate up to two Bech32 errors, and - return their locations if successful. Success and correctness are only guaranteed - if fewer than two substitution errors have been made. - The error message returned in the `error` field now also returns more specific - errors when decoding fails. (#16807) - -- The `-deprecatedrpc=addresses` configuration option has been removed. RPCs - `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, - `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, - `/rest/block` no longer return the `addresses` and `reqSigs` fields, which - were previously deprecated in 22.0. (#22650) -- The `getblock` RPC command now supports verbosity level 3 containing transaction inputs' - `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain - this information too. Every `vin` field will contain an additional `prevout` subfield - describing the spent output. `prevout` contains the following keys: - - `generated` - true if the spent coins was a coinbase. - - `height` - - `value` - - `scriptPubKey` - -- The top-level fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` - returned by RPCs `getmempoolentry`,`getrawmempool(verbose=true)`, - `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)` - are deprecated and will be removed in the next major version (use - `-deprecated=fees` if needed in this version). The same fee fields can be accessed - through the `fees` object in the result. WARNING: deprecated - fields `ancestorfees` and `descendantfees` are denominated in sats, whereas all - fields in the `fees` object are denominated in BTC. (#22689) - -- Both `createmultisig` and `addmultisigaddress` now include a `warnings` - field, which will show a warning if a non-legacy address type is requested - when using uncompressed public keys. (#23113) - -Changes to wallet related RPCs can be found in the Wallet section below. - -New RPCs --------- - -- Information on soft fork status has been moved from `getblockchaininfo` - to the new `getdeploymentinfo` RPC which allows querying soft fork status at any - block, rather than just at the chain tip. Inclusion of soft fork - status in `getblockchaininfo` can currently be restored using the - configuration `-deprecatedrpc=softforks`, but this will be removed in - a future release. Note that in either case, the `status` field - now reflects the status of the current block rather than the next - block. (#23508) - -Files ------ - -* On startup, the list of banned hosts and networks (via `setban` RPC) in - `banlist.dat` is ignored and only `banlist.json` is considered. Bitcoin Core - version 22.x is the only version that can read `banlist.dat` and also write - it to `banlist.json`. If `banlist.json` already exists, version 22.x will not - try to translate the `banlist.dat` into json. After an upgrade, `listbanned` - can be used to double check the parsed entries. (#22570) - -Updated settings ----------------- - -- In previous releases, the meaning of the command line option - `-persistmempool` (without a value provided) incorrectly disabled mempool - persistence. `-persistmempool` is now treated like other boolean options to - mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1` - and `-nopersistmempool` is unaffected. (#23061) - -- `-maxuploadtarget` now allows human readable byte units [k|K|m|M|g|G|t|T]. - E.g. `-maxuploadtarget=500g`. No whitespace, +- or fractions allowed. - Default is `M` if no suffix provided. (#23249) - -- If `-proxy=` is given together with `-noonion` then the provided proxy will - not be set as a proxy for reaching the Tor network. So it will not be - possible to open manual connections to the Tor network for example with the - `addnode` RPC. To mimic the old behavior use `-proxy=` together with - `-onlynet=` listing all relevant networks except `onion`. (#22834) - -Tools and Utilities -------------------- - -- Update `-getinfo` to return data in a user-friendly format that also reduces vertical space. (#21832) - -- CLI `-addrinfo` now returns a single field for the number of `onion` addresses - known to the node instead of separate `torv2` and `torv3` fields, as support - for Tor V2 addresses was removed from Bitcoin Core in 22.0. (#22544) - -Wallet ------- - -- Descriptor wallets are now the default wallet type. Newly created wallets - will use descriptors unless `descriptors=false` is set during `createwallet`, or - the `Descriptor wallet` checkbox is unchecked in the GUI. - - Note that wallet RPC commands like `importmulti` and `dumpprivkey` cannot be - used with descriptor wallets, so if your client code relies on these commands - without specifying `descriptors=false` during wallet creation, you will need - to update your code. - -- Newly created descriptor wallets will contain an automatically generated `tr()` - descriptor which allows for creating single key Taproot receiving addresses. - -- `upgradewallet` will now automatically flush the keypool if upgrading - from a non-HD wallet to an HD wallet, to immediately start using the - newly-generated HD keys. (#23093) - -- a new RPC `newkeypool` has been added, which will flush (entirely - clear and refill) the keypool. (#23093) - -- `listunspent` now includes `ancestorcount`, `ancestorsize`, and - `ancestorfees` for each transaction output that is still in the mempool. - (#12677) - -- `lockunspent` now optionally takes a third parameter, `persistent`, which - causes the lock to be written persistently to the wallet database. This - allows UTXOs to remain locked even after node restarts or crashes. (#23065) - -- `receivedby` RPCs now include coinbase transactions. Previously, the - following wallet RPCs excluded coinbase transactions: `getreceivedbyaddress`, - `getreceivedbylabel`, `listreceivedbyaddress`, `listreceivedbylabel`. This - release changes this behaviour and returns results accounting for received - coins from coinbase outputs. The previous behaviour can be restored using the - configuration `-deprecatedrpc=exclude_coinbase`, but may be removed in a - future release. (#14707) - -- A new option in the same `receivedby` RPCs, `include_immature_coinbase` - (default=`false`), determines whether to account for immature coinbase - transactions. Immature coinbase transactions are coinbase transactions that - have 100 or fewer confirmations, and are not spendable. (#14707) - -GUI changes ------------ - -- UTXOs which are locked via the GUI are now stored persistently in the - wallet database, so are not lost on node shutdown or crash. (#23065) - -- The Bech32 checkbox has been replaced with a dropdown for all address types, including the new Bech32m (BIP-350) standard for Taproot enabled wallets. - -Low-level changes -================= - -RPC ---- - -- `getblockchaininfo` now returns a new `time` field, that provides the chain tip time. (#22407) - -Tests ------ - -- For the `regtest` network the activation heights of several softforks were - set to block height 1. They can be changed by the runtime setting - `-testactivationheight=name@height`. (#22818) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 0xb10c -- 0xree -- Aaron Clauson -- Adrian-Stefan Mares -- agroce -- aitorjs -- Alex Groce -- amadeuszpawlik -- Amiti Uttarwar -- Andrew Chow -- Andrew Poelstra -- Andrew Toth -- anouar kappitou -- Anthony Towns -- Antoine Poinsot -- Arnab Sen -- Ben Woosley -- benthecarman -- Bitcoin Hodler -- BitcoinTsunami -- brianddk -- Bruno Garcia -- CallMeMisterOwl -- Calvin Kim -- Carl Dong -- Cory Fields -- Cuong V. Nguyen -- Darius Parvin -- Dhruv Mehta -- Dimitri Deijs -- Dimitris Apostolou -- Dmitry Goncharov -- Douglas Chimento -- eugene -- Fabian Jahr -- fanquake -- Florian Baumgartl -- fyquah -- Gleb Naumenko -- glozow -- Gregory Sanders -- Heebs -- Hennadii Stepanov -- hg333 -- HiLivin -- Igor Cota -- Jadi -- James O'Beirne -- Jameson Lopp -- Jarol Rodriguez -- Jeremy Rand -- Jeremy Rubin -- Joan Karadimov -- John Newbery -- Jon Atack -- João Barbosa -- josibake -- junderw -- Karl-Johan Alm -- katesalazar -- Kennan Mell -- Kiminuo -- Kittywhiskers Van Gogh -- Klement Tan -- Kristaps Kaupe -- Kuro -- Larry Ruane -- lsilva01 -- lucash-dev -- Luke Dashjr -- MarcoFalke -- Martin Leitner-Ankerl -- Martin Zumsande -- Matt Corallo -- Matt Whitlock -- MeshCollider -- Michael Dietz -- Murch -- naiza -- Nathan Garabedian -- Nelson Galdeman -- NikhilBartwal -- Niklas Gögge -- node01 -- nthumann -- Pasta -- Patrick Kamin -- Pavel Safronov -- Pavol Rusnak -- Perlover -- Pieter Wuille -- practicalswift -- pradumnasaraf -- pranabp-bit -- Prateek Sancheti -- Prayank -- Rafael Sadowski -- rajarshimaitra -- randymcmillan -- ritickgoenka -- Rob Fielding -- Rojar Smith -- Russell Yanofsky -- S3RK -- Saibato -- Samuel Dobson -- sanket1729 -- seaona -- Sebastian Falbesoner -- sh15h4nk -- Shashwat -- Shorya -- ShubhamPalriwala -- Shubhankar Gambhir -- Sjors Provoost -- sogoagain -- sstone -- stratospher -- Suriyaa Rocky Sundararuban -- Taeik Lim -- TheCharlatan -- Tim Ruffing -- Tobin Harding -- Troy Giorshev -- Tyler Chambers -- Vasil Dimov -- W. J. van der Laan -- w0xlt -- willcl-ark -- William Casarin -- zealsham -- Zero-1729 - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-23.1.md b/doc/release-notes/release-notes-23.1.md deleted file mode 100644 index 31d9b7f068d8c..0000000000000 --- a/doc/release-notes/release-notes-23.1.md +++ /dev/null @@ -1,90 +0,0 @@ -23.1 Release Notes -================== - -Bitcoin Core version 23.1 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -### P2P - -- #25314 p2p: always set nTime for self-advertisements - -### RPC and other APIs - -- #25220 rpc: fix incorrect warning for address type p2sh-segwit in createmultisig -- #25237 rpc: Capture UniValue by ref for rpcdoccheck -- #25983 Prevent data race for pathHandlers -- #26275 Fix crash on deriveaddresses when index is 2147483647 (2^31-1) - -### Build system - -- #25201 windeploy: Renewed windows code signing certificate -- #25788 guix: patch NSIS to remove .reloc sections from installer stubs -- #25861 guix: use --build={arch}-guix-linux-gnu in cross toolchain -- #25985 Revert "build: Use Homebrew's sqlite package if it is available" - -### GUI - -- #24668 build, qt: bump Qt5 version to 5.15.3 -- gui#631 Disallow encryption of watchonly wallets -- gui#680 Fixes MacOS 13 segfault by preventing certain notifications - -### Tests - -- #24454 tests: Fix calculation of external input weights - -### Miscellaneous - -- #26321 Adjust .tx/config for new Transifex CLI - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- brunoerg -- Hennadii Stepanov -- John Moffett -- MacroFake -- Martin Zumsande -- Michael Ford -- muxator -- Pavol Rusnak -- Sebastian Falbesoner -- W. J. van der Laan - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-23.2.md b/doc/release-notes/release-notes-23.2.md deleted file mode 100644 index 2d6354ae5dfae..0000000000000 --- a/doc/release-notes/release-notes-23.2.md +++ /dev/null @@ -1,72 +0,0 @@ -23.2 Release Notes -================== - -Bitcoin Core version 23.2 is now available from: - - - -This release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -### P2P - -- #26909 net: prevent peers.dat corruptions by only serializing once -- #27608 p2p: Avoid prematurely clearing download state for other peers -- #27610 Improve performance of p2p inv to send queues - -### Build system - -- #25436 build: suppress array-bounds errors in libxkbcommon -- #25763 bdb: disable Werror for format-security -- #26944 depends: fix systemtap download URL -- #27462 depends: fix compiling bdb with clang-16 on aarch64 - -### Miscellaneous - -- #25444 ci: macOS task imrovements -- #26388 ci: Use macos-ventura-xcode:14.1 image for "macOS native" task -- #26924 refactor: Add missing includes to fix gcc-13 compile error - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Anthony Towns -- Hennadii Stepanov -- MacroFake -- Martin Zumsande -- Michael Ford -- Suhas Daftuar - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). \ No newline at end of file diff --git a/doc/release-notes/release-notes-24.0.1.md b/doc/release-notes/release-notes-24.0.1.md deleted file mode 100644 index 24920ba4507e5..0000000000000 --- a/doc/release-notes/release-notes-24.0.1.md +++ /dev/null @@ -1,391 +0,0 @@ -24.0.1 Release Notes -==================== - -Due to last-minute issues (#26616), 24.0, although tagged, was never fully -announced or released. - -Bitcoin Core version 24.0.1 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -Notice of new option for transaction replacement policies -========================================================= - -This version of Bitcoin Core adds a new `mempoolfullrbf` configuration -option which allows users to change the policy their individual node -will use for relaying and mining unconfirmed transactions. The option -defaults to the same policy that was used in previous releases and no -changes to node policy will occur if everyone uses the default. - -Some Bitcoin services today expect that the first version of an -unconfirmed transaction that they see will be the version of the -transaction that ultimately gets confirmed---a transaction acceptance -policy sometimes called "first-seen". - -The Bitcoin Protocol does not, and cannot, provide any assurance that -the first version of an unconfirmed transaction seen by a particular -node will be the version that gets confirmed. If there are multiple -versions of the same unconfirmed transaction available, only the miner -who includes one of those transactions in a block gets to decide which -version of the transaction gets confirmed. - -Despite this lack of assurance, multiple merchants and services today -still make this assumption. - -There are several benefits to users from removing this *first-seen* -simplification. One key benefit, the ability for the sender of a -transaction to replace it with an alternative version paying higher -fees, was realized in [Bitcoin Core 0.12.0][] (February 2016) with the -introduction of [BIP125][] opt-in Replace By Fee (RBF). - -Since then, there has been discussion about completely removing the -first-seen simplification and allowing users to replace any of their -older unconfirmed transactions with newer transactions, a feature called -*full-RBF*. This release includes a `mempoolfullrbf` configuration -option that allows enabling full-RBF, although it defaults to off -(allowing only opt-in RBF). - -Several alternative node implementations have already enabled full-RBF by -default for years, and several contributors to Bitcoin Core are -advocating for enabling full-RBF by default in a future version of -Bitcoin Core. - -As more nodes that participate in relay and mining begin enabling -full-RBF, replacement of unconfirmed transactions by ones offering higher -fees may rapidly become more reliable. - -Contributors to this project strongly recommend that merchants and services -not accept unconfirmed transactions as final, and if they insist on doing so, -to take the appropriate steps to ensure they have some recourse or plan for -when their assumptions do not hold. - -[Bitcoin Core 0.12.0]: https://bitcoincore.org/en/releases/0.12.0/#opt-in-replace-by-fee-transactions -[bip125]: https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki - -Notable changes -=============== - -P2P and network changes ------------------------ - -- To address a potential denial-of-service, the logic to download headers from peers - has been reworked. This is particularly relevant for nodes starting up for the - first time (or for nodes which are starting up after being offline for a long time). - - Whenever headers are received from a peer that have a total chainwork that is either - less than the node's `-minimumchainwork` value or is sufficiently below the work at - the node's tip, a "presync" phase will begin, in which the node will download the - peer's headers and verify the cumulative work on the peer's chain, prior to storing - those headers permanently. Once that cumulative work is verified to be sufficiently high, - the headers will be redownloaded from that peer and fully validated and stored. - - This may result in initial headers sync taking longer for new nodes starting up for - the first time, both because the headers will be downloaded twice, and because the effect - of a peer disconnecting during the presync phase (or while the node's best headers chain has less - than `-minimumchainwork`), will result in the node needing to use the headers presync mechanism - with the next peer as well (downloading the headers twice, again). (#25717) - -- With I2P connections, a new, transient address is used for each outbound - connection if `-i2pacceptincoming=0`. (#25355) - -Updated RPCs ------------- - -- The `-deprecatedrpc=softforks` configuration option has been removed. The - RPC `getblockchaininfo` no longer returns the `softforks` field, which was - previously deprecated in 23.0. (#23508) Information on soft fork status is - now only available via the `getdeploymentinfo` RPC. - -- The `deprecatedrpc=exclude_coinbase` configuration option has been removed. - The `receivedby` RPCs (`listreceivedbyaddress`, `listreceivedbylabel`, - `getreceivedbyaddress` and `getreceivedbylabel`) now always return results - accounting for received coins from coinbase outputs, without an option to - change that behaviour. Excluding coinbases was previously deprecated in 23.0. - (#25171) - -- The `deprecatedrpc=fees` configuration option has been removed. The top-level - fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` are no - longer returned by RPCs `getmempoolentry`, `getrawmempool(verbose=true)`, - `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)`. - The same fee fields can be accessed through the `fees` object in the result. - The top-level fee fields were previously deprecated in 23.0. (#25204) - -- The `getpeerinfo` RPC has been updated with a new `presynced_headers` field, - indicating the progress on the presync phase mentioned in the - "P2P and network changes" section above. - -Changes to wallet related RPCs can be found in the Wallet section below. - -New RPCs --------- - -- The `sendall` RPC spends specific UTXOs to one or more recipients - without creating change. By default, the `sendall` RPC will spend - every UTXO in the wallet. `sendall` is useful to empty wallets or to - create a changeless payment from select UTXOs. When creating a payment - from a specific amount for which the recipient incurs the transaction - fee, continue to use the `subtractfeefromamount` option via the - `send`, `sendtoaddress`, or `sendmany` RPCs. (#24118) - -- A new `gettxspendingprevout` RPC has been added, which scans the mempool to find - transactions spending any of the given outpoints. (#24408) - -- The `simulaterawtransaction` RPC iterates over the inputs and outputs of the given - transactions, and tallies up the balance change for the given wallet. This can be - useful e.g. when verifying that a coin join like transaction doesn't contain unexpected - inputs that the wallet will then sign for unintentionally. (#22751) - -Updated REST APIs ------------------ - -- The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use - a query parameter instead of path parameter to specify the result count. The - count parameter is now optional, and defaults to 5 for both endpoints. The old - endpoints are still functional, and have no documented behaviour change. - - For `/headers`, use - `GET /rest/headers/.?count=` - instead of - `GET /rest/headers//.` (deprecated) - - For `/blockfilterheaders/`, use - `GET /rest/blockfilterheaders//.?count=` - instead of - `GET /rest/blockfilterheaders///.` (deprecated) - - (#24098) - -Build System ------------- - -- Guix builds are now reproducible across architectures (x86_64 & aarch64). (#21194) - -New settings ------------- - -- A new `mempoolfullrbf` option has been added, which enables the mempool to - accept transaction replacement without enforcing BIP125 replaceability - signaling. (#25353) - -Wallet ------- - -- The `-walletrbf` startup option will now default to `true`. The - wallet will now default to opt-in RBF on transactions that it creates. (#25610) - -- The `replaceable` option for the `createrawtransaction` and - `createpsbt` RPCs will now default to `true`. Transactions created - with these RPCs will default to having opt-in RBF enabled. (#25610) - -- The `wsh()` output descriptor was extended with Miniscript support. You can import Miniscript - descriptors for P2WSH in a watchonly wallet to track coins, but you can't spend from them using - the Bitcoin Core wallet yet. - You can find more about Miniscript on the [reference website](https://bitcoin.sipa.be/miniscript/). (#24148) - -- The `tr()` output descriptor now supports multisig scripts through the `multi_a()` and - `sortedmulti_a()` functions. (#24043) - -- To help prevent fingerprinting transactions created by the Bitcoin Core wallet, change output - amounts are now randomized. (#24494) - -- The `listtransactions`, `gettransaction`, and `listsinceblock` - RPC methods now include a wtxid field (hash of serialized transaction, - including witness data) for each transaction. (#24198) - -- The `listsinceblock`, `listtransactions` and `gettransaction` output now contain a new - `parent_descs` field for every "receive" entry. (#25504) - -- A new optional `include_change` parameter was added to the `listsinceblock` command. - -- RPC `getreceivedbylabel` now returns an error, "Label not found - in wallet" (-4), if the label is not in the address book. (#25122) - -Migrating Legacy Wallets to Descriptor Wallets ---------------------------------------------- - -An experimental RPC `migratewallet` has been added to migrate Legacy (non-descriptor) wallets to -Descriptor wallets. More information about the migration process is available in the -[documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/managing-wallets.md#migrating-legacy-wallets-to-descriptor-wallets). - -GUI changes ------------ - -- A new menu item to restore a wallet from a backup file has been added (gui#471). - -- Configuration changes made in the bitcoin GUI (such as the pruning setting, -proxy settings, UPNP preferences) are now saved to `/settings.json` -file rather than to the Qt settings backend (windows registry or unix desktop -config files), so these settings will now apply to bitcoind, instead of being -ignored. (#15936, gui#602) - -- Also, the interaction between GUI settings and `bitcoin.conf` settings is -simplified. Settings from `bitcoin.conf` are now displayed normally in the GUI -settings dialog, instead of in a separate warning message ("Options set in this -dialog are overridden by the configuration file: -setting=value"). And these -settings can now be edited because `settings.json` values take precedence over -`bitcoin.conf` values. (#15936) - -Low-level changes -================= - -RPC ---- - -- The `deriveaddresses`, `getdescriptorinfo`, `importdescriptors` and `scantxoutset` commands now - accept Miniscript expression within a `wsh()` descriptor. (#24148) - -- The `getaddressinfo`, `decodescript`, `listdescriptors` and `listunspent` commands may now output - a Miniscript descriptor inside a `wsh()` where a `wsh(raw())` descriptor was previously returned. (#24148) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- /dev/fd0 -- 0xb10c -- Adam Jonas -- akankshakashyap -- Ali Sherief -- amadeuszpawlik -- Andreas Kouloumos -- Andrew Chow -- Anthony Towns -- Antoine Poinsot -- Antoine Riard -- Aurèle Oulès -- avirgovi -- Ayush Sharma -- Baas -- Ben Woosley -- BrokenProgrammer -- brunoerg -- brydinh -- Bushstar -- Calvin Kim -- CAnon -- Carl Dong -- chinggg -- Cory Fields -- Daniel Kraft -- Daniela Brozzoni -- darosior -- Dave Scotese -- David Bakin -- dergoegge -- dhruv -- Dimitri -- dontbyte -- Duncan Dean -- eugene -- Eunoia -- Fabian Jahr -- furszy -- Gleb Naumenko -- glozow -- Greg Weber -- Gregory Sanders -- gruve-p -- Hennadii Stepanov -- hiago -- Igor Bubelov -- ishaanam -- Jacob P. -- Jadi -- James O'Beirne -- Janna -- Jarol Rodriguez -- Jeremy Rand -- Jeremy Rubin -- jessebarton -- João Barbosa -- John Newbery -- Jon Atack -- Josiah Baker -- Karl-Johan Alm -- KevinMusgrave -- Kiminuo -- klementtan -- Kolby Moroz -- kouloumos -- Kristaps Kaupe -- Larry Ruane -- Luke Dashjr -- MarcoFalke -- Marnix -- Martin Leitner-Ankerl -- Martin Zumsande -- Michael Dietz -- Michael Folkson -- Michael Ford -- Murch -- mutatrum -- muxator -- Oskar Mendel -- Pablo Greco -- pasta -- Patrick Strateman -- Pavol Rusnak -- Peter Bushnell -- phyBrackets -- Pieter Wuille -- practicalswift -- randymcmillan -- Robert Spigler -- Russell Yanofsky -- S3RK -- Samer Afach -- Sebastian Falbesoner -- Seibart Nedor -- Shashwat -- Sjors Provoost -- Smlep -- sogoagain -- Stacie -- Stéphan Vuylsteke -- Suhail Saqan -- Suhas Daftuar -- t-bast -- TakeshiMusgrave -- Vasil Dimov -- W. J. van der Laan -- w0xlt -- whiteh0rse -- willcl-ark -- William Casarin -- Yancy Ribbens - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-24.0.md b/doc/release-notes/release-notes-24.0.md deleted file mode 100644 index a0227aa17fc2c..0000000000000 --- a/doc/release-notes/release-notes-24.0.md +++ /dev/null @@ -1,4 +0,0 @@ -Due to last-minute issues (#26616), 24.0, although tagged, was never fully -announced or released. - -See the release notes for 24.0.1 instead. diff --git a/doc/release-notes/release-notes-24.1.md b/doc/release-notes/release-notes-24.1.md deleted file mode 100644 index f46434cc43f3d..0000000000000 --- a/doc/release-notes/release-notes-24.1.md +++ /dev/null @@ -1,99 +0,0 @@ -24.1 Release Notes -================== - -Bitcoin Core version 24.1 is now available from: - - - -This release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -### P2P - -- #26878 I2P network optimizations -- #26909 net: prevent peers.dat corruptions by only serializing once -- #27608 p2p: Avoid prematurely clearing download state for other peers -- #27610 Improve performance of p2p inv to send queues - -### RPC and other APIs - -- #26515 rpc: Require NodeStateStats object in getpeerinfo -- #27279 doc: fix/improve warning helps in {create,load,unload,restore}wallet -- #27468 rest: avoid segfault for invalid URI - -### Build System - -- #26944 depends: fix systemtap download URL -- #27462 depends: fix compiling bdb with clang-16 on aarch64 - -### Wallet - -- #26595 wallet: be able to specify a wallet name and passphrase to migratewallet -- #26675 wallet: For feebump, ignore abandoned descendant spends -- #26679 wallet: Skip rescanning if wallet is more recent than tip -- #26761 wallet: fully migrate address book entries for watchonly/solvable wallets -- #27053 wallet: reuse change dest when re-creating TX with avoidpartialspends -- #27080 wallet: Zero out wallet master key upon locking so it doesn't persist in memory -- #27473 wallet: Properly handle "unknown" Address Type - -### GUI changes - -- gui#687 Load PSBTs using istreambuf_iterator rather than istream_iterator -- gui#704 Correctly limit overview transaction list - -### Miscellaneous - -- #26880 ci: replace Intel macOS CI job -- #26924 refactor: Add missing includes to fix gcc-13 compile error - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Andrew Chow -- Anthony Towns -- Hennadii Stepanov -- John Moffett -- Jon Atack -- Marco Falke -- Martin Zumsande -- Matthew Zipkin -- Michael Ford -- pablomartin4btc -- Sebastian Falbesoner -- Suhas Daftuar -- Thomas Nguyen -- Vasil Dimov - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). \ No newline at end of file diff --git a/doc/release-notes/release-notes-24.2.md b/doc/release-notes/release-notes-24.2.md deleted file mode 100644 index 059ab5187286d..0000000000000 --- a/doc/release-notes/release-notes-24.2.md +++ /dev/null @@ -1,76 +0,0 @@ -24.2 Release Notes -================== - -Bitcoin Core version 24.2 is now available from: - - - -This release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -### Fees - -- #27622 Fee estimation: avoid serving stale fee estimate - -### RPC and other APIs - -- #27727 rpc: Fix invalid bech32 address handling - -### Build System - -- #28097 depends: xcb-proto 1.15.2 -- #28543 build, macos: Fix qt package build with new Xcode 15 linker -- #28571 depends: fix unusable memory_resource in macos qt build - -### CI - -- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN -- #27834 ci: Nuke Android APK task, Use credits for tsan -- #27844 ci: Use podman stop over podman kill -- #27886 ci: Switch to amd64 container in "ARM" task - -### Miscellaneous -- #28452 Do not use std::vector = {} to release memory - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Abubakar Sadiq Ismail -- Hennadii Stepanov -- Marco Falke -- Michael Ford -- Pieter Wuille - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-25.0.md b/doc/release-notes/release-notes-25.0.md deleted file mode 100644 index 919cb3b2f3444..0000000000000 --- a/doc/release-notes/release-notes-25.0.md +++ /dev/null @@ -1,340 +0,0 @@ -25.0 Release Notes -================== - -Bitcoin Core version 25.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -Notable changes -=============== - -P2P and network changes ------------------------ - -- Transactions of non-witness size 65 bytes and above are now allowed by mempool - and relay policy. This is to better reflect the actual afforded protections - against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265) - -New RPCs --------- - -- The scanblocks RPC returns the relevant blockhashes from a set of descriptors by - scanning all blockfilters in the given range. It can be used in combination with - the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note - that this functionality can only be used if a compact block filter index - (-blockfilterindex=1) has been constructed by the node. (#23549) - -Updated RPCs ------------- - -- All JSON-RPC methods accept a new [named - parameter](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#parameter-passing) called `args` that can - contain positional parameter values. This is a convenience to allow some - parameter values to be passed by name without having to name every value. The - python test framework and `bitcoin-cli` tool both take advantage of this, so - for example: - -```sh -bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1 -``` - -Can now be shortened to: - -```sh -bitcoin-cli -named createwallet mywallet load_on_startup=1 -``` - -- The `verifychain` RPC will now return `false` if the checks didn't fail, - but couldn't be completed at the desired depth and level. This could be due - to missing data while pruning, due to an insufficient dbcache or due to - the node being shutdown before the call could finish. (#25574) - -- `sendrawtransaction` has a new, optional argument, `maxburnamount` with a default value of `0`. - Any transaction containing an unspendable output with a value greater than `maxburnamount` will - not be submitted. At present, the outputs deemed unspendable are those with scripts that begin - with an `OP_RETURN` code (known as 'datacarriers'), scripts that exceed the maximum script size, - and scripts that contain invalid opcodes. - -- The `testmempoolaccept` RPC now returns 2 additional results within the "fees" result: - "effective-feerate" is the feerate including fees and sizes of transactions validated together if - package validation was used, and also includes any modified fees from prioritisetransaction. The - "effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used - in the effective-feerate (#26646). - -- `decodescript` may now infer a Miniscript descriptor under P2WSH context if it is not lacking - information. (#27037) - -- `finalizepsbt` is now able to finalize a transaction with inputs spending Miniscript-compatible - P2WSH scripts. (#24149) - -Changes to wallet related RPCs can be found in the Wallet section below. - -Build System ------------- - -- The `--enable-upnp-default` and `--enable-natpmp-default` options - have been removed. If you want to use port mapping, you can - configure it using a .conf file, or by passing the relevant - options at runtime. (#26896) - -Updated settings ----------------- - -- If the `-checkblocks` or `-checklevel` options are explicitly provided by the -user, but the verification checks cannot be completed due to an insufficient -dbcache, Bitcoin Core will now return an error at startup. (#25574) - -- Ports specified in `-port` and `-rpcport` options are now validated at startup. - Values that previously worked and were considered valid can now result in errors. (#22087) - -- Setting `-blocksonly` will now reduce the maximum mempool memory - to 5MB (users may still use `-maxmempool` to override). Previously, - the default 300MB would be used, leading to unexpected memory usage - for users running with `-blocksonly` expecting it to eliminate - mempool memory usage. - - As unused mempool memory is shared with dbcache, this also reduces - the dbcache size for users running with `-blocksonly`, potentially - impacting performance. -- Setting `-maxconnections=0` will now disable `-dnsseed` - and `-listen` (users may still set them to override). - -Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. - -New settings ------------- - -- The `shutdownnotify` option is used to specify a command to execute synchronously -before Bitcoin Core has begun its shutdown sequence. (#23395) - - -Wallet ------- - -- The `minconf` option, which allows a user to specify the minimum number -of confirmations a UTXO being spent has, and the `maxconf` option, -which allows specifying the maximum number of confirmations, have been -added to the following RPCs in #25375: - - `fundrawtransaction` - - `send` - - `walletcreatefundedpsbt` - - `sendall` - -- Added a new `next_index` field in the response in `listdescriptors` to - have the same format as `importdescriptors` (#26194) - -- RPC `listunspent` now has a new argument `include_immature_coinbase` - to include coinbase UTXOs that don't meet the minimum spendability - depth requirement (which before were silently skipped). (#25730) - -- Rescans for descriptor wallets are now significantly faster if compact - block filters (BIP158) are available. Since those are not constructed - by default, the configuration option "-blockfilterindex=1" has to be - provided to take advantage of the optimization. This improves the - performance of the RPC calls `rescanblockchain`, `importdescriptors` - and `restorewallet`. (#25957) - -- RPC `unloadwallet` now fails if a rescan is in progress. (#26618) - -- Wallet passphrases may now contain null characters. - Prior to this change, only characters up to the first - null character were recognized and accepted. (#27068) - -- Address Purposes strings are now restricted to the currently known values of "send", - "receive", and "refund". Wallets that have unrecognized purpose strings will have - loading warnings, and the `listlabels` RPC will raise an error if an unrecognized purpose - is requested. (#27217) - -- In the `createwallet`, `loadwallet`, `unloadwallet`, and `restorewallet` RPCs, the - "warning" string field is deprecated in favor of a "warnings" field that - returns a JSON array of strings to better handle multiple warning messages and - for consistency with other wallet RPCs. The "warning" field will be fully - removed from these RPCs in v26. It can be temporarily re-enabled during the - deprecation period by launching bitcoind with the configuration option - `-deprecatedrpc=walletwarningfield`. (#27279) - -- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149) - -GUI changes ------------ - -- The "Mask values" is a persistent option now. (gui#701) -- The "Mask values" option affects the "Transaction" view now, in addition to the - "Overview" one. (gui#708) - -REST ----- - -- A new `/rest/deploymentinfo` endpoint has been added for fetching various - state info regarding deployments of consensus changes. (#25412) - -Binary verification ----- - -- The binary verification script has been updated. In previous releases it - would verify that the binaries had been signed with a single "release key". - In this release and moving forward it will verify that the binaries are - signed by a _threshold of trusted keys_. For more details and - examples, see: - https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md - (#27358) - -Low-level changes -================= - -RPC ---- - -- The JSON-RPC server now rejects requests where a parameter is specified multiple - times with the same name, instead of silently overwriting earlier parameter values - with later ones. (#26628) -- RPC `listsinceblock` now accepts an optional `label` argument - to fetch incoming transactions having the specified label. (#25934) -- Previously `setban`, `addpeeraddress`, `walletcreatefundedpsbt`, methods - allowed non-boolean and non-null values to be passed as boolean parameters. - Any string, number, array, or object value that was passed would be treated - as false. After this change, passing any value except `true`, `false`, or - `null` now triggers a JSON value is not of expected type error. (#26213) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 0xb10c -- 721217.xyz -- @RandyMcMillan -- amadeuszpawlik -- Amiti Uttarwar -- Andrew Chow -- Andrew Toth -- Anthony Towns -- Antoine Poinsot -- Aurèle Oulès -- Ben Woosley -- Bitcoin Hodler -- brunoerg -- Bushstar -- Carl Dong -- Chris Geihsler -- Cory Fields -- David Gumberg -- dergoegge -- Dhruv Mehta -- Dimitris Tsapakidis -- dougEfish -- Douglas Chimento -- ekzyis -- Elichai Turkel -- Ethan Heilman -- Fabian Jahr -- FractalEncrypt -- furszy -- Gleb Naumenko -- glozow -- Greg Sanders -- Hennadii Stepanov -- hernanmarino -- ishaanam -- ismaelsadeeq -- James O'Beirne -- jdjkelly@gmail.com -- Jeff Ruane -- Jeffrey Czyz -- Jeremy Rubin -- Jesse Barton -- João Barbosa -- JoaoAJMatos -- John Moffett -- Jon Atack -- Jonas Schnelli -- jonatack -- Joshua Kelly -- josibake -- Juan Pablo Civile -- kdmukai -- klementtan -- Kolby ML -- kouloumos -- Kristaps Kaupe -- laanwj -- Larry Ruane -- Leonardo Araujo -- Leonardo Lazzaro -- Luke Dashjr -- MacroFake -- MarcoFalke -- Martin Leitner-Ankerl -- Martin Zumsande -- Matt Whitlock -- Matthew Zipkin -- Michael Ford -- Miles Liu -- mruddy -- Murray Nesbitt -- muxator -- omahs -- pablomartin4btc -- Pasta -- Pieter Wuille -- Pttn -- Randall Naar -- Riahiamirreza -- roconnor-blockstream -- Russell O'Connor -- Ryan Ofsky -- S3RK -- Sebastian Falbesoner -- Seibart Nedor -- sinetek -- Sjors Provoost -- Skuli Dulfari -- SomberNight -- Stacie Waleyko -- stickies-v -- stratospher -- Suhas Daftuar -- Suriyaa Sundararuban -- TheCharlatan -- Vasil Dimov -- Vasil Stoyanov -- virtu -- w0xlt -- willcl-ark -- yancy -- Yusuf Sahin HAMZA - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). \ No newline at end of file diff --git a/doc/release-notes/release-notes-25.1.md b/doc/release-notes/release-notes-25.1.md deleted file mode 100644 index bfdbee4e76f1e..0000000000000 --- a/doc/release-notes/release-notes-25.1.md +++ /dev/null @@ -1,108 +0,0 @@ -25.1 Release Notes -================== - -Bitcoin Core version 25.1 is now available from: - - - -This release includes various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -Notable changes -=============== - -### P2P - -- #27626 Parallel compact block downloads, take 3 -- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED - -### Fees - -- #27622 Fee estimation: avoid serving stale fee estimate - -### RPC - -- #27727 rpc: Fix invalid bech32 address handling - -### Rest - -- #27853 rest: fix crash error when calling /deploymentinfo -- #28551 http: bugfix: allow server shutdown in case of remote client disconnection - -### Wallet - -- #28038 wallet: address book migration bug fixes -- #28067 descriptors: do not return top-level only funcs as sub descriptors -- #28125 wallet: bugfix, disallow migration of invalid scripts -- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted - -### Build - -- #27724 build: disable boost multi index safe mode in debug mode -- #28097 depends: xcb-proto 1.15.2 -- #28543 build, macos: Fix qt package build with new Xcode 15 linker -- #28571 depends: fix unusable memory_resource in macos qt build - -### Gui - -- gui#751 macOS, do not process actions during shutdown - -### Miscellaneous - -- #28452 Do not use std::vector = {} to release memory - -### CI - -- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN -- #27834 ci: Nuke Android APK task, Use credits for tsan -- #27844 ci: Use podman stop over podman kill -- #27886 ci: Switch to amd64 container in "ARM" task - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Abubakar Sadiq Ismail -- Andrew Chow -- Bruno Garcia -- Gregory Sanders -- Hennadii Stepanov -- MacroFake -- Matias Furszyfer -- Michael Ford -- Pieter Wuille -- stickies-v -- Will Clark - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). \ No newline at end of file diff --git a/doc/release-notes/release-notes-26.0.md b/doc/release-notes/release-notes-26.0.md deleted file mode 100644 index b7c7c35f65957..0000000000000 --- a/doc/release-notes/release-notes-26.0.md +++ /dev/null @@ -1,357 +0,0 @@ -26.0 Release Notes -================== - -Bitcoin Core version 26.0 is now available from: - - - -This release includes new features, various bug fixes and performance -improvements, as well as updated translations. - -Please report bugs using the issue tracker at GitHub: - - - -To receive security and update notifications, please subscribe to: - - - -How to Upgrade -============== - -If you are running an older version, shut it down. Wait until it has completely -shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). - -Upgrading directly from a version of Bitcoin Core that has reached its EOL is -possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. - -Compatibility -============== - -Bitcoin Core is supported and extensively tested on operating systems -using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Bitcoin -Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on -unsupported systems. - -Notable changes -=============== - -P2P and network changes ------------------------ - -- Experimental support for the v2 transport protocol defined in - [BIP324](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki) was added. - It is off by default, but when enabled using `-v2transport` it will be negotiated - on a per-connection basis with other peers that support it too. The existing - v1 transport protocol remains fully supported. - -- Nodes with multiple reachable networks will actively try to have at least one - outbound connection to each network. This improves individual resistance to - eclipse attacks and network level resistance to partition attacks. Users no - longer need to perform active measures to ensure being connected to multiple - enabled networks. (#27213) - -Pruning -------- - -- When using assumeutxo with `-prune`, the prune budget may be exceeded if it is set - lower than 1100MB (i.e. `MIN_DISK_SPACE_FOR_BLOCK_FILES * 2`). Prune budget is normally - split evenly across each chainstate, unless the resulting prune budget per chainstate - is beneath `MIN_DISK_SPACE_FOR_BLOCK_FILES` in which case that value will be used. (#27596) - -Updated RPCs ------------- - -- Setting `-rpcserialversion=0` is deprecated and will be removed in - a future release. It can currently still be used by also adding - the `-deprecatedrpc=serialversion` option. (#28448) - -- The `hash_serialized_2` value has been removed from `gettxoutsetinfo` since the value it - calculated contained a bug and did not take all data into account. It is superseded by - `hash_serialized_3` which provides the same functionality but serves the correctly calculated hash. (#28685) - -- New fields `transport_protocol_type` and `session_id` were added to the `getpeerinfo` RPC to indicate - whether the v2 transport protocol is in use, and if so, what the session id is. - -- A new argument `v2transport` was added to the `addnode` RPC to indicate whether a v2 transaction connection - is to be attempted with the peer. - -- [Miniscript](https://bitcoin.sipa.be/miniscript/) expressions can now be used in Taproot descriptors for all RPCs working with descriptors. (#27255) - -- `finalizepsbt` is now able to finalize a PSBT with inputs spending [Miniscript](https://bitcoin.sipa.be/miniscript/)-compatible Taproot leaves. (#27255) - -Changes to wallet related RPCs can be found in the Wallet section below. - -New RPCs --------- - -- `loadtxoutset` has been added, which allows loading a UTXO snapshot of the format - generated by `dumptxoutset`. Once this snapshot is loaded, its contents will be - deserialized into a second chainstate data structure, which is then used to sync to - the network's tip. - - Meanwhile, the original chainstate will complete the initial block download process in - the background, eventually validating up to the block that the snapshot is based upon. - - The result is a usable bitcoind instance that is current with the network tip in a - matter of minutes rather than hours. UTXO snapshot are typically obtained via - third-party sources (HTTP, torrent, etc.) which is reasonable since their contents - are always checked by hash. - - You can find more information on this process in the `assumeutxo` design - document (). - - `getchainstates` has been added to aid in monitoring the assumeutxo sync process. - -- A new `getprioritisedtransactions` RPC has been added. It returns a map of all fee deltas created by the - user with prioritisetransaction, indexed by txid. The map also indicates whether each transaction is - present in the mempool. (#27501) - -- A new RPC, `submitpackage`, has been added. It can be used to submit a list of raw hex -transactions to the mempool to be evaluated as a package using consensus and mempool policy rules. -These policies include package CPFP, allowing a child with high fees to bump a parent below the -mempool minimum feerate (but not minimum relay feerate). (#27609) - - - Warning: successful submission does not mean the transactions will propagate throughout the - network, as package relay is not supported. - - - Not all features are available. The package is limited to a child with all of its - unconfirmed parents, and no parent may spend the output of another parent. Also, package - RBF is not supported. Refer to doc/policy/packages.md for more details on package policies - and limitations. - - - This RPC is experimental. Its interface may change. - -- A new RPC `getaddrmaninfo` has been added to view the distribution of addresses in the new and tried table of the - node's address manager across different networks(ipv4, ipv6, onion, i2p, cjdns). The RPC returns count of addresses - in new and tried table as well as their sum for all networks. (#27511) - -- A new `importmempool` RPC has been added. It loads a valid `mempool.dat` file and attempts to - add its contents to the mempool. This can be useful to import mempool data from another node - without having to modify the datadir contents and without having to restart the node. (#27460) - - Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over. - - If you want to apply fee deltas, it is recommended to use the `getprioritisedtransactions` and - `prioritisetransaction` RPCs instead of the `apply_fee_delta_priority` option to avoid - double-prioritising any already-prioritised transactions in the mempool. - -Updated settings ----------------- - -- `bitcoind` and `bitcoin-qt` will now raise an error on startup - if a datadir that is being used contains a bitcoin.conf file that - will be ignored, which can happen when a datadir= line is used in - a bitcoin.conf file. The error message is just a diagnostic intended - to prevent accidental misconfiguration, and it can be disabled to - restore the previous behavior of using the datadir while ignoring - the bitcoin.conf contained in it. (#27302) - -- Passing an invalid `-debug`, `-debugexclude`, or `-loglevel` logging configuration - option now raises an error, rather than logging an easily missed warning. (#27632) - -Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. - -New settings ------------- - -Tools and Utilities -------------------- - -- A new `bitcoinconsensus_verify_script_with_spent_outputs` function is available in libconsensus which optionally accepts the spent outputs of the transaction being verified. -- A new `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` flag is available in libconsensus that will verify scripts with the Taproot spending rules. - -Wallet ------- - -- Wallet loading has changed in this release. Wallets with some corrupted records that could be - previously loaded (with warnings) may no longer load. For example, wallets with corrupted - address book entries may no longer load. If this happens, it is recommended - load the wallet in a previous version of Bitcoin Core and import the data into a new wallet. - Please also report an issue to help improve the software and make wallet loading more robust - in these cases. (#24914) - -- The `createwallet` RPC will no longer create legacy (BDB) wallets when - setting `descriptors=false` without also providing the - `-deprecatedrpc=create_bdb` option. This is because the legacy wallet is - being deprecated in a future release. (#28597) - -- The `gettransaction`, `listtransactions`, `listsinceblock` RPCs now return - the `abandoned` field for all transactions. Previously, the "abandoned" field - was only returned for sent transactions. (#25158) - -- The `listdescriptors`, `decodepsbt` and similar RPC methods now show `h` rather than apostrophe (`'`) to indicate - hardened derivation. This does not apply when using the `private` parameter, which - matches the marker used when descriptor was generated or imported. Newly created - wallets use `h`. This change makes it easier to handle descriptor strings manually. - E.g. the `importdescriptors` RPC call is easiest to use `h` as the marker: `'["desc": ".../0h/..."]'`. - With this change `listdescriptors` will use `h`, so you can copy-paste the result, - without having to add escape characters or switch `'` to 'h' manually. - Note that this changes the descriptor checksum. - For legacy wallets the `hdkeypath` field in `getaddressinfo` is unchanged, - nor is the serialization format of wallet dumps. (#26076) - -- The `getbalances` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block - hash and height at the time the balances were calculated. This result shouldn't be cached because importing new keys could invalidate it. (#26094) - -- The `gettransaction` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block - hash and height at the time the transaction information was generated. (#26094) - -- The `getwalletinfo` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block - hash and height at the time the wallet information was generated. (#26094) - -- Coin selection and transaction building now accounts for unconfirmed low-feerate ancestor transactions. When it is necessary to spend unconfirmed outputs, the wallet will add fees to ensure that the new transaction with its ancestors will achieve a mining score equal to the feerate requested by the user. (#26152) - -- For RPC methods which accept `options` parameters ((`importmulti`, `listunspent`, - `fundrawtransaction`, `bumpfee`, `send`, `sendall`, `walletcreatefundedpsbt`, - `simulaterawtransaction`), it is now possible to pass the options as named - parameters without the need for a nested object. (#26485) - -This means it is possible make calls like: - -```sh -src/bitcoin-cli -named bumpfee txid fee_rate=100 -``` - -instead of - -```sh -src/bitcoin-cli -named bumpfee txid options='{"fee_rate": 100}' -``` - -- The `deprecatedrpc=walletwarningfield` configuration option has been removed. - The `createwallet`, `loadwallet`, `restorewallet` and `unloadwallet` RPCs no - longer return the "warning" string field. The same information is provided - through the "warnings" field added in v25.0, which returns a JSON array of - strings. The "warning" string field was deprecated also in v25.0. (#27757) - -- The `signrawtransactionwithkey`, `signrawtransactionwithwallet`, - `walletprocesspsbt` and `descriptorprocesspsbt` calls now return the more - specific RPC_INVALID_PARAMETER error instead of RPC_MISC_ERROR if their - sighashtype argument is malformed. (#28113) - -- RPC `walletprocesspsbt`, and `descriptorprocesspsbt` return - object now includes field `hex` (if the transaction - is complete) containing the serialized transaction - suitable for RPC `sendrawtransaction`. (#28414) - -- It's now possible to use [Miniscript](https://bitcoin.sipa.be/miniscript/) inside Taproot leaves for descriptor wallets. (#27255) - -Descriptors ------------ - -- The usage of hybrid public keys in output descriptors has been removed. Hybrid - public keys are an exotic public key encoding not supported by output descriptors - (as specified in BIP380 and documented in doc/descriptors.md). Bitcoin Core would - previously incorrectly accept descriptors containing such hybrid keys. (#28587) - -GUI changes ------------ - -- The transaction list in the GUI no longer provides a special category for "payment to yourself". Now transactions that have both inputs and outputs that affect the wallet are displayed on separate lines for spending and receiving. (gui#119) - -- A new menu option allows migrating a legacy wallet based on keys and implied output script types stored in BerkeleyDB (BDB) to a modern wallet that uses descriptors stored in SQLite. (gui#738) - -- The PSBT operations dialog marks outputs paying your own wallet with "own address". (gui#740) - -- The ability to create legacy wallets is being removed. (gui#764) - -Contrib -------- - -- Bash completion files have been renamed from `bitcoin*.bash-completion` to - `bitcoin*.bash`. This means completions can be automatically loaded on demand - based on invoked commands' names when they are put into the completion - directory (found with `pkg-config --variable=completionsdir - bash-completion`) without requiring renaming. (#28507) - -Low-level changes -================= - -Tests ------ - -- Non-standard transactions are now disabled by default on testnet - for relay and mempool acceptance. The previous behaviour can be - re-enabled by setting `-acceptnonstdtxn=1`. (#28354) - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- 0xb10c -- Amiti Uttarwar -- Andrew Chow -- Andrew Toth -- Anthony Towns -- Antoine Poinsot -- Antoine Riard -- Ari -- Aurèle Oulès -- Ayush Singh -- Ben Woosley -- Brandon Odiwuor -- Brotcrunsher -- brunoerg -- Bufo -- Carl Dong -- Casey Carter -- Cory Fields -- David Álvarez Rosa -- dergoegge -- dhruv -- dimitaracev -- Erik Arvstedt -- Erik McKelvey -- Fabian Jahr -- furszy -- glozow -- Greg Sanders -- Harris -- Hennadii Stepanov -- Hernan Marino -- ishaanam -- ismaelsadeeq -- Jake Rawsthorne -- James O'Beirne -- John Moffett -- Jon Atack -- josibake -- kevkevin -- Kiminuo -- Larry Ruane -- Luke Dashjr -- MarcoFalke -- Marnix -- Martin Leitner-Ankerl -- Martin Zumsande -- Matthew Zipkin -- Michael Ford -- Michael Tidwell -- mruddy -- Murch -- ns-xvrn -- pablomartin4btc -- Pieter Wuille -- Reese Russell -- Rhythm Garg -- Ryan Ofsky -- Sebastian Falbesoner -- Sjors Provoost -- stickies-v -- stratospher -- Suhas Daftuar -- TheCharlatan -- Tim Neubauer -- Tim Ruffing -- Vasil Dimov -- virtu -- vuittont60 -- willcl-ark -- Yusuf Sahin HAMZA - -As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). From 26dca6d0e8fdbd0a3db9f8e2eeaac831111437f1 Mon Sep 17 00:00:00 2001 From: fkolakovic Date: Sat, 4 May 2024 11:57:33 +0200 Subject: [PATCH 2/5] Rename to Vincoin in filenames --- ...itcoin_find_bdb48.m4 => vincoin_find_bdb48.m4} | 0 build-aux/m4/{bitcoin_qt.m4 => vincoin_qt.m4} | 0 ...to_include.m4 => vincoin_subdir_to_include.m4} | 0 .../bench_vincoin.vcxproj.in} | 0 .../libvincoin_cli.vcxproj.in} | 0 .../libvincoin_common.vcxproj.in} | 0 .../libvincoin_consensus.vcxproj} | 0 .../libvincoin_crypto.vcxproj.in} | 0 .../libvincoin_node.vcxproj.in} | 0 .../libvincoin_qt.vcxproj} | 0 .../libvincoin_util.vcxproj.in} | 0 .../libvincoin_wallet.vcxproj.in} | 0 .../libvincoin_wallet_tool.vcxproj.in} | 0 .../libvincoin_zmq.vcxproj.in} | 0 .../test_vincoin-qt.vcxproj} | 0 .../test_vincoin.vcxproj} | 0 .../vincoin-cli.vcxproj} | 0 .../vincoin-qt.vcxproj} | 0 .../vincoin-tx.vcxproj} | 0 .../vincoin-util.vcxproj} | 0 .../vincoin-wallet.vcxproj} | 0 build_msvc/{bitcoin.sln => vincoin.sln} | 0 .../{bitcoin_config.h.in => vincoin_config.h.in} | 0 .../vincoind.vcxproj} | 0 ...setup_env_native_nowallet_libvincoinkernel.sh} | 0 .../bash/{bitcoin-cli.bash => vincoin-cli.bash} | 0 .../bash/{bitcoin-tx.bash => vincoin-tx.bash} | 0 .../bash/{bitcoind.bash => vincoind.bash} | 0 .../fish/{bitcoin-cli.fish => vincoin-cli.fish} | 0 .../fish/{bitcoin-qt.fish => vincoin-qt.fish} | 0 .../fish/{bitcoin-tx.fish => vincoin-tx.fish} | 0 .../fish/{bitcoin-util.fish => vincoin-util.fish} | 0 .../{bitcoin-wallet.fish => vincoin-wallet.fish} | 0 .../fish/{bitcoind.fish => vincoind.fish} | 0 .../{gen-bitcoin-conf.sh => gen-vincoin-conf.sh} | 0 .../iwyu/{bitcoin.core.imp => vincoin.core.imp} | 0 .../{bitcoin-tidy => vincoin-tidy}/CMakeLists.txt | 0 .../{bitcoin-tidy => vincoin-tidy}/README | 0 .../example_logprintf.cpp | 0 .../{bitcoin-tidy => vincoin-tidy}/logprintf.cpp | 0 .../{bitcoin-tidy => vincoin-tidy}/logprintf.h | 0 .../vincoin-tidy.cpp} | 0 contrib/init/org.bitcoin.bitcoind.plist | 14 -------------- contrib/init/{bitcoind.conf => vincoind.conf} | 0 contrib/init/{bitcoind.init => vincoind.init} | 0 contrib/init/{bitcoind.openrc => vincoind.openrc} | 0 .../{bitcoind.openrcconf => vincoind.openrcconf} | 0 .../init/{bitcoind.service => vincoind.service} | 0 doc/man/{bitcoin-cli.1 => vincoin-cli.1} | 0 doc/man/{bitcoin-qt.1 => vincoin-qt.1} | 0 doc/man/{bitcoin-tx.1 => vincoin-tx.1} | 0 doc/man/{bitcoin-util.1 => vincoin-util.1} | 0 doc/man/{bitcoin-wallet.1 => vincoin-wallet.1} | 0 doc/man/{bitcoind.1 => vincoind.1} | 0 doc/{bitcoin-conf.md => vincoin-conf.md} | 0 ..._logo_doxygen.png => vincoin_logo_doxygen.png} | Bin ...inconsensus.pc.in => libvincoinconsensus.pc.in | 0 share/examples/{bitcoin.conf => vincoin.conf} | 0 share/pixmaps/{bitcoin.ico => vincoin.ico} | Bin share/pixmaps/{bitcoin128.png => vincoin128.png} | Bin share/pixmaps/{bitcoin128.xpm => vincoin128.xpm} | 0 share/pixmaps/{bitcoin16.png => vincoin16.png} | Bin share/pixmaps/{bitcoin16.xpm => vincoin16.xpm} | 0 share/pixmaps/{bitcoin256.png => vincoin256.png} | Bin share/pixmaps/{bitcoin256.xpm => vincoin256.xpm} | 0 share/pixmaps/{bitcoin32.png => vincoin32.png} | Bin share/pixmaps/{bitcoin32.xpm => vincoin32.xpm} | 0 share/pixmaps/{bitcoin64.png => vincoin64.png} | Bin share/pixmaps/{bitcoin64.xpm => vincoin64.xpm} | 0 .../{bench_bitcoin.cpp => bench_vincoin.cpp} | 0 src/init/{bitcoin-gui.cpp => vincoin-gui.cpp} | 0 src/init/{bitcoin-node.cpp => vincoin-node.cpp} | 0 src/init/{bitcoin-qt.cpp => vincoin-qt.cpp} | 0 .../{bitcoin-wallet.cpp => vincoin-wallet.cpp} | 0 src/init/{bitcoind.cpp => vincoind.cpp} | 0 .../{bitcoinkernel.cpp => vincoinkernel.cpp} | 0 .../drawable-hdpi/{bitcoin.png => vincoin.png} | Bin .../drawable-ldpi/{bitcoin.png => vincoin.png} | Bin .../drawable-mdpi/{bitcoin.png => vincoin.png} | Bin .../drawable-xhdpi/{bitcoin.png => vincoin.png} | Bin .../drawable-xxhdpi/{bitcoin.png => vincoin.png} | Bin .../drawable-xxxhdpi/{bitcoin.png => vincoin.png} | Bin .../qt/VincoinQtActivity.java} | 0 src/qt/locale/{bitcoin_af.ts => vincoin_af.ts} | 0 src/qt/locale/{bitcoin_am.ts => vincoin_am.ts} | 0 src/qt/locale/{bitcoin_az.ts => vincoin_az.ts} | 0 .../{bitcoin_az@latin.ts => vincoin_az@latin.ts} | 0 src/qt/locale/{bitcoin_be.ts => vincoin_be.ts} | 0 src/qt/locale/{bitcoin_bg.ts => vincoin_bg.ts} | 0 src/qt/locale/{bitcoin_bn.ts => vincoin_bn.ts} | 0 src/qt/locale/{bitcoin_br.ts => vincoin_br.ts} | 0 src/qt/locale/{bitcoin_bs.ts => vincoin_bs.ts} | 0 src/qt/locale/{bitcoin_ca.ts => vincoin_ca.ts} | 0 src/qt/locale/{bitcoin_cmn.ts => vincoin_cmn.ts} | 0 src/qt/locale/{bitcoin_cs.ts => vincoin_cs.ts} | 0 src/qt/locale/{bitcoin_cy.ts => vincoin_cy.ts} | 0 src/qt/locale/{bitcoin_da.ts => vincoin_da.ts} | 0 src/qt/locale/{bitcoin_de.ts => vincoin_de.ts} | 0 .../locale/{bitcoin_de_AT.ts => vincoin_de_AT.ts} | 0 .../locale/{bitcoin_de_CH.ts => vincoin_de_CH.ts} | 0 src/qt/locale/{bitcoin_el.ts => vincoin_el.ts} | 0 src/qt/locale/{bitcoin_en.ts => vincoin_en.ts} | 0 src/qt/locale/{bitcoin_en.xlf => vincoin_en.xlf} | 0 src/qt/locale/{bitcoin_eo.ts => vincoin_eo.ts} | 0 src/qt/locale/{bitcoin_es.ts => vincoin_es.ts} | 0 .../locale/{bitcoin_es_CL.ts => vincoin_es_CL.ts} | 0 .../locale/{bitcoin_es_CO.ts => vincoin_es_CO.ts} | 0 .../locale/{bitcoin_es_DO.ts => vincoin_es_DO.ts} | 0 .../locale/{bitcoin_es_MX.ts => vincoin_es_MX.ts} | 0 .../locale/{bitcoin_es_SV.ts => vincoin_es_SV.ts} | 0 .../locale/{bitcoin_es_VE.ts => vincoin_es_VE.ts} | 0 src/qt/locale/{bitcoin_et.ts => vincoin_et.ts} | 0 src/qt/locale/{bitcoin_eu.ts => vincoin_eu.ts} | 0 src/qt/locale/{bitcoin_fa.ts => vincoin_fa.ts} | 0 src/qt/locale/{bitcoin_fi.ts => vincoin_fi.ts} | 0 src/qt/locale/{bitcoin_fil.ts => vincoin_fil.ts} | 0 src/qt/locale/{bitcoin_fo.ts => vincoin_fo.ts} | 0 src/qt/locale/{bitcoin_fr.ts => vincoin_fr.ts} | 0 .../locale/{bitcoin_fr_CM.ts => vincoin_fr_CM.ts} | 0 .../locale/{bitcoin_fr_LU.ts => vincoin_fr_LU.ts} | 0 src/qt/locale/{bitcoin_ga.ts => vincoin_ga.ts} | 0 .../locale/{bitcoin_ga_IE.ts => vincoin_ga_IE.ts} | 0 src/qt/locale/{bitcoin_gd.ts => vincoin_gd.ts} | 0 src/qt/locale/{bitcoin_gl.ts => vincoin_gl.ts} | 0 .../locale/{bitcoin_gl_ES.ts => vincoin_gl_ES.ts} | 0 src/qt/locale/{bitcoin_gu.ts => vincoin_gu.ts} | 0 src/qt/locale/{bitcoin_ha.ts => vincoin_ha.ts} | 0 src/qt/locale/{bitcoin_hak.ts => vincoin_hak.ts} | 0 src/qt/locale/{bitcoin_he.ts => vincoin_he.ts} | 0 src/qt/locale/{bitcoin_hi.ts => vincoin_hi.ts} | 0 src/qt/locale/{bitcoin_hr.ts => vincoin_hr.ts} | 0 src/qt/locale/{bitcoin_hu.ts => vincoin_hu.ts} | 0 src/qt/locale/{bitcoin_id.ts => vincoin_id.ts} | 0 src/qt/locale/{bitcoin_is.ts => vincoin_is.ts} | 0 src/qt/locale/{bitcoin_it.ts => vincoin_it.ts} | 0 src/qt/locale/{bitcoin_ja.ts => vincoin_ja.ts} | 0 src/qt/locale/{bitcoin_ka.ts => vincoin_ka.ts} | 0 src/qt/locale/{bitcoin_kk.ts => vincoin_kk.ts} | 0 .../{bitcoin_kk@latin.ts => vincoin_kk@latin.ts} | 0 src/qt/locale/{bitcoin_kl.ts => vincoin_kl.ts} | 0 src/qt/locale/{bitcoin_km.ts => vincoin_km.ts} | 0 src/qt/locale/{bitcoin_kn.ts => vincoin_kn.ts} | 0 src/qt/locale/{bitcoin_ko.ts => vincoin_ko.ts} | 0 src/qt/locale/{bitcoin_ku.ts => vincoin_ku.ts} | 0 .../locale/{bitcoin_ku_IQ.ts => vincoin_ku_IQ.ts} | 0 src/qt/locale/{bitcoin_ky.ts => vincoin_ky.ts} | 0 src/qt/locale/{bitcoin_la.ts => vincoin_la.ts} | 0 src/qt/locale/{bitcoin_lb.ts => vincoin_lb.ts} | 0 src/qt/locale/{bitcoin_lt.ts => vincoin_lt.ts} | 0 src/qt/locale/{bitcoin_lv.ts => vincoin_lv.ts} | 0 src/qt/locale/{bitcoin_mg.ts => vincoin_mg.ts} | 0 src/qt/locale/{bitcoin_mi.ts => vincoin_mi.ts} | 0 src/qt/locale/{bitcoin_mk.ts => vincoin_mk.ts} | 0 src/qt/locale/{bitcoin_ml.ts => vincoin_ml.ts} | 0 src/qt/locale/{bitcoin_mn.ts => vincoin_mn.ts} | 0 src/qt/locale/{bitcoin_mr.ts => vincoin_mr.ts} | 0 .../locale/{bitcoin_mr_IN.ts => vincoin_mr_IN.ts} | 0 src/qt/locale/{bitcoin_ms.ts => vincoin_ms.ts} | 0 src/qt/locale/{bitcoin_mt.ts => vincoin_mt.ts} | 0 src/qt/locale/{bitcoin_my.ts => vincoin_my.ts} | 0 src/qt/locale/{bitcoin_nb.ts => vincoin_nb.ts} | 0 src/qt/locale/{bitcoin_ne.ts => vincoin_ne.ts} | 0 src/qt/locale/{bitcoin_nl.ts => vincoin_nl.ts} | 0 src/qt/locale/{bitcoin_no.ts => vincoin_no.ts} | 0 src/qt/locale/{bitcoin_pa.ts => vincoin_pa.ts} | 0 src/qt/locale/{bitcoin_pam.ts => vincoin_pam.ts} | 0 src/qt/locale/{bitcoin_pl.ts => vincoin_pl.ts} | 0 src/qt/locale/{bitcoin_pt.ts => vincoin_pt.ts} | 0 .../locale/{bitcoin_pt_BR.ts => vincoin_pt_BR.ts} | 0 src/qt/locale/{bitcoin_ro.ts => vincoin_ro.ts} | 0 src/qt/locale/{bitcoin_ru.ts => vincoin_ru.ts} | 0 .../locale/{bitcoin_ru_RU.ts => vincoin_ru_RU.ts} | 0 src/qt/locale/{bitcoin_sc.ts => vincoin_sc.ts} | 0 src/qt/locale/{bitcoin_sd.ts => vincoin_sd.ts} | 0 src/qt/locale/{bitcoin_si.ts => vincoin_si.ts} | 0 src/qt/locale/{bitcoin_sk.ts => vincoin_sk.ts} | 0 src/qt/locale/{bitcoin_sl.ts => vincoin_sl.ts} | 0 src/qt/locale/{bitcoin_sn.ts => vincoin_sn.ts} | 0 src/qt/locale/{bitcoin_so.ts => vincoin_so.ts} | 0 src/qt/locale/{bitcoin_sq.ts => vincoin_sq.ts} | 0 src/qt/locale/{bitcoin_sr.ts => vincoin_sr.ts} | 0 ...avianlatin.ts => vincoin_sr@ijekavianlatin.ts} | 0 .../{bitcoin_sr@latin.ts => vincoin_sr@latin.ts} | 0 src/qt/locale/{bitcoin_sv.ts => vincoin_sv.ts} | 0 src/qt/locale/{bitcoin_sw.ts => vincoin_sw.ts} | 0 src/qt/locale/{bitcoin_szl.ts => vincoin_szl.ts} | 0 src/qt/locale/{bitcoin_ta.ts => vincoin_ta.ts} | 0 src/qt/locale/{bitcoin_te.ts => vincoin_te.ts} | 0 src/qt/locale/{bitcoin_th.ts => vincoin_th.ts} | 0 src/qt/locale/{bitcoin_tk.ts => vincoin_tk.ts} | 0 src/qt/locale/{bitcoin_tl.ts => vincoin_tl.ts} | 0 src/qt/locale/{bitcoin_tr.ts => vincoin_tr.ts} | 0 src/qt/locale/{bitcoin_ug.ts => vincoin_ug.ts} | 0 src/qt/locale/{bitcoin_uk.ts => vincoin_uk.ts} | 0 src/qt/locale/{bitcoin_ur.ts => vincoin_ur.ts} | 0 src/qt/locale/{bitcoin_uz.ts => vincoin_uz.ts} | 0 .../{bitcoin_uz@Cyrl.ts => vincoin_uz@Cyrl.ts} | 0 .../{bitcoin_uz@Latn.ts => vincoin_uz@Latn.ts} | 0 src/qt/locale/{bitcoin_vi.ts => vincoin_vi.ts} | 0 src/qt/locale/{bitcoin_yo.ts => vincoin_yo.ts} | 0 src/qt/locale/{bitcoin_yue.ts => vincoin_yue.ts} | 0 .../{bitcoin_zh-Hans.ts => vincoin_zh-Hans.ts} | 0 .../{bitcoin_zh-Hant.ts => vincoin_zh-Hant.ts} | 0 src/qt/locale/{bitcoin_zh.ts => vincoin_zh.ts} | 0 .../locale/{bitcoin_zh_CN.ts => vincoin_zh_CN.ts} | 0 .../locale/{bitcoin_zh_HK.ts => vincoin_zh_HK.ts} | 0 .../locale/{bitcoin_zh_TW.ts => vincoin_zh_TW.ts} | 0 src/qt/locale/{bitcoin_zu.ts => vincoin_zu.ts} | 0 src/qt/res/icons/{bitcoin.icns => vincoin.icns} | Bin src/qt/res/icons/{bitcoin.ico => vincoin.ico} | Bin src/qt/res/icons/{bitcoin.png => vincoin.png} | Bin .../{bitcoin_testnet.ico => vincoin_testnet.ico} | Bin src/qt/res/src/{bitcoin.svg => vincoin.svg} | 0 .../res/{bitcoin-qt-res.rc => vincoin-qt-res.rc} | 0 src/qt/{bitcoin.cpp => vincoin.cpp} | 0 src/qt/{bitcoin.h => vincoin.h} | 0 src/qt/{bitcoin.qrc => vincoin.qrc} | 0 src/qt/{bitcoin_locale.qrc => vincoin_locale.qrc} | 0 ...svalidator.cpp => vincoinaddressvalidator.cpp} | 0 ...dressvalidator.h => vincoinaddressvalidator.h} | 0 ...coinamountfield.cpp => vincoinamountfield.cpp} | 0 ...{bitcoinamountfield.h => vincoinamountfield.h} | 0 src/qt/{bitcoingui.cpp => vincoingui.cpp} | 0 src/qt/{bitcoingui.h => vincoingui.h} | 0 src/qt/{bitcoinstrings.cpp => vincoinstrings.cpp} | 0 src/qt/{bitcoinunits.cpp => vincoinunits.cpp} | 0 src/qt/{bitcoinunits.h => vincoinunits.h} | 0 ...{bitcoinconsensus.cpp => vincoinconsensus.cpp} | 0 .../{bitcoinconsensus.h => vincoinconsensus.h} | 0 .../m4/{bitcoin_secp.m4 => vincoin_secp.m4} | 0 ...st.h => ecdsa_secp256k1_sha256_vincoin_test.h} | 0 ...n => ecdsa_secp256k1_sha256_vincoin_test.json} | 0 ...consensus.cpp => script_vincoin_consensus.cpp} | 0 ...coin-chainstate.cpp => vincoin-chainstate.cpp} | 0 src/{bitcoin-cli-res.rc => vincoin-cli-res.rc} | 0 src/{bitcoin-cli.cpp => vincoin-cli.cpp} | 0 src/{bitcoin-tx-res.rc => vincoin-tx-res.rc} | 0 src/{bitcoin-tx.cpp => vincoin-tx.cpp} | 0 src/{bitcoin-util-res.rc => vincoin-util-res.rc} | 0 src/{bitcoin-util.cpp => vincoin-util.cpp} | 0 ...itcoin-wallet-res.rc => vincoin-wallet-res.rc} | 0 src/{bitcoin-wallet.cpp => vincoin-wallet.cpp} | 0 src/{bitcoind-res.rc => vincoind-res.rc} | 0 src/{bitcoind.cpp => vincoind.cpp} | 0 ...ce_bitcoin_cli.py => interface_vincoin_cli.py} | 0 ...coin-util-test.json => vincoin-util-test.json} | 0 246 files changed, 14 deletions(-) rename build-aux/m4/{bitcoin_find_bdb48.m4 => vincoin_find_bdb48.m4} (100%) rename build-aux/m4/{bitcoin_qt.m4 => vincoin_qt.m4} (100%) rename build-aux/m4/{bitcoin_subdir_to_include.m4 => vincoin_subdir_to_include.m4} (100%) rename build_msvc/{bench_bitcoin/bench_bitcoin.vcxproj.in => bench_vincoin/bench_vincoin.vcxproj.in} (100%) rename build_msvc/{libbitcoin_cli/libbitcoin_cli.vcxproj.in => libvincoin_cli/libvincoin_cli.vcxproj.in} (100%) rename build_msvc/{libbitcoin_common/libbitcoin_common.vcxproj.in => libvincoin_common/libvincoin_common.vcxproj.in} (100%) rename build_msvc/{libbitcoin_consensus/libbitcoin_consensus.vcxproj => libvincoin_consensus/libvincoin_consensus.vcxproj} (100%) rename build_msvc/{libbitcoin_crypto/libbitcoin_crypto.vcxproj.in => libvincoin_crypto/libvincoin_crypto.vcxproj.in} (100%) rename build_msvc/{libbitcoin_node/libbitcoin_node.vcxproj.in => libvincoin_node/libvincoin_node.vcxproj.in} (100%) rename build_msvc/{libbitcoin_qt/libbitcoin_qt.vcxproj => libvincoin_qt/libvincoin_qt.vcxproj} (100%) rename build_msvc/{libbitcoin_util/libbitcoin_util.vcxproj.in => libvincoin_util/libvincoin_util.vcxproj.in} (100%) rename build_msvc/{libbitcoin_wallet/libbitcoin_wallet.vcxproj.in => libvincoin_wallet/libvincoin_wallet.vcxproj.in} (100%) rename build_msvc/{libbitcoin_wallet_tool/libbitcoin_wallet_tool.vcxproj.in => libvincoin_wallet_tool/libvincoin_wallet_tool.vcxproj.in} (100%) rename build_msvc/{libbitcoin_zmq/libbitcoin_zmq.vcxproj.in => libvincoin_zmq/libvincoin_zmq.vcxproj.in} (100%) rename build_msvc/{test_bitcoin-qt/test_bitcoin-qt.vcxproj => test_vincoin-qt/test_vincoin-qt.vcxproj} (100%) rename build_msvc/{test_bitcoin/test_bitcoin.vcxproj => test_vincoin/test_vincoin.vcxproj} (100%) rename build_msvc/{bitcoin-cli/bitcoin-cli.vcxproj => vincoin-cli/vincoin-cli.vcxproj} (100%) rename build_msvc/{bitcoin-qt/bitcoin-qt.vcxproj => vincoin-qt/vincoin-qt.vcxproj} (100%) rename build_msvc/{bitcoin-tx/bitcoin-tx.vcxproj => vincoin-tx/vincoin-tx.vcxproj} (100%) rename build_msvc/{bitcoin-util/bitcoin-util.vcxproj => vincoin-util/vincoin-util.vcxproj} (100%) rename build_msvc/{bitcoin-wallet/bitcoin-wallet.vcxproj => vincoin-wallet/vincoin-wallet.vcxproj} (100%) rename build_msvc/{bitcoin.sln => vincoin.sln} (100%) rename build_msvc/{bitcoin_config.h.in => vincoin_config.h.in} (100%) rename build_msvc/{bitcoind/bitcoind.vcxproj => vincoind/vincoind.vcxproj} (100%) rename ci/test/{00_setup_env_native_nowallet_libbitcoinkernel.sh => 00_setup_env_native_nowallet_libvincoinkernel.sh} (100%) rename contrib/completions/bash/{bitcoin-cli.bash => vincoin-cli.bash} (100%) rename contrib/completions/bash/{bitcoin-tx.bash => vincoin-tx.bash} (100%) rename contrib/completions/bash/{bitcoind.bash => vincoind.bash} (100%) rename contrib/completions/fish/{bitcoin-cli.fish => vincoin-cli.fish} (100%) rename contrib/completions/fish/{bitcoin-qt.fish => vincoin-qt.fish} (100%) rename contrib/completions/fish/{bitcoin-tx.fish => vincoin-tx.fish} (100%) rename contrib/completions/fish/{bitcoin-util.fish => vincoin-util.fish} (100%) rename contrib/completions/fish/{bitcoin-wallet.fish => vincoin-wallet.fish} (100%) rename contrib/completions/fish/{bitcoind.fish => vincoind.fish} (100%) rename contrib/devtools/{gen-bitcoin-conf.sh => gen-vincoin-conf.sh} (100%) rename contrib/devtools/iwyu/{bitcoin.core.imp => vincoin.core.imp} (100%) rename contrib/devtools/{bitcoin-tidy => vincoin-tidy}/CMakeLists.txt (100%) rename contrib/devtools/{bitcoin-tidy => vincoin-tidy}/README (100%) rename contrib/devtools/{bitcoin-tidy => vincoin-tidy}/example_logprintf.cpp (100%) rename contrib/devtools/{bitcoin-tidy => vincoin-tidy}/logprintf.cpp (100%) rename contrib/devtools/{bitcoin-tidy => vincoin-tidy}/logprintf.h (100%) rename contrib/devtools/{bitcoin-tidy/bitcoin-tidy.cpp => vincoin-tidy/vincoin-tidy.cpp} (100%) delete mode 100644 contrib/init/org.bitcoin.bitcoind.plist rename contrib/init/{bitcoind.conf => vincoind.conf} (100%) rename contrib/init/{bitcoind.init => vincoind.init} (100%) rename contrib/init/{bitcoind.openrc => vincoind.openrc} (100%) rename contrib/init/{bitcoind.openrcconf => vincoind.openrcconf} (100%) rename contrib/init/{bitcoind.service => vincoind.service} (100%) rename doc/man/{bitcoin-cli.1 => vincoin-cli.1} (100%) rename doc/man/{bitcoin-qt.1 => vincoin-qt.1} (100%) rename doc/man/{bitcoin-tx.1 => vincoin-tx.1} (100%) rename doc/man/{bitcoin-util.1 => vincoin-util.1} (100%) rename doc/man/{bitcoin-wallet.1 => vincoin-wallet.1} (100%) rename doc/man/{bitcoind.1 => vincoind.1} (100%) rename doc/{bitcoin-conf.md => vincoin-conf.md} (100%) rename doc/{bitcoin_logo_doxygen.png => vincoin_logo_doxygen.png} (100%) rename libbitcoinconsensus.pc.in => libvincoinconsensus.pc.in (100%) rename share/examples/{bitcoin.conf => vincoin.conf} (100%) rename share/pixmaps/{bitcoin.ico => vincoin.ico} (100%) rename share/pixmaps/{bitcoin128.png => vincoin128.png} (100%) rename share/pixmaps/{bitcoin128.xpm => vincoin128.xpm} (100%) rename share/pixmaps/{bitcoin16.png => vincoin16.png} (100%) rename share/pixmaps/{bitcoin16.xpm => vincoin16.xpm} (100%) rename share/pixmaps/{bitcoin256.png => vincoin256.png} (100%) rename share/pixmaps/{bitcoin256.xpm => vincoin256.xpm} (100%) rename share/pixmaps/{bitcoin32.png => vincoin32.png} (100%) rename share/pixmaps/{bitcoin32.xpm => vincoin32.xpm} (100%) rename share/pixmaps/{bitcoin64.png => vincoin64.png} (100%) rename share/pixmaps/{bitcoin64.xpm => vincoin64.xpm} (100%) rename src/bench/{bench_bitcoin.cpp => bench_vincoin.cpp} (100%) rename src/init/{bitcoin-gui.cpp => vincoin-gui.cpp} (100%) rename src/init/{bitcoin-node.cpp => vincoin-node.cpp} (100%) rename src/init/{bitcoin-qt.cpp => vincoin-qt.cpp} (100%) rename src/init/{bitcoin-wallet.cpp => vincoin-wallet.cpp} (100%) rename src/init/{bitcoind.cpp => vincoind.cpp} (100%) rename src/kernel/{bitcoinkernel.cpp => vincoinkernel.cpp} (100%) rename src/qt/android/res/drawable-hdpi/{bitcoin.png => vincoin.png} (100%) rename src/qt/android/res/drawable-ldpi/{bitcoin.png => vincoin.png} (100%) rename src/qt/android/res/drawable-mdpi/{bitcoin.png => vincoin.png} (100%) rename src/qt/android/res/drawable-xhdpi/{bitcoin.png => vincoin.png} (100%) rename src/qt/android/res/drawable-xxhdpi/{bitcoin.png => vincoin.png} (100%) rename src/qt/android/res/drawable-xxxhdpi/{bitcoin.png => vincoin.png} (100%) rename src/qt/android/src/org/{bitcoincore/qt/BitcoinQtActivity.java => vincoincore/qt/VincoinQtActivity.java} (100%) rename src/qt/locale/{bitcoin_af.ts => vincoin_af.ts} (100%) rename src/qt/locale/{bitcoin_am.ts => vincoin_am.ts} (100%) rename src/qt/locale/{bitcoin_az.ts => vincoin_az.ts} (100%) rename src/qt/locale/{bitcoin_az@latin.ts => vincoin_az@latin.ts} (100%) rename src/qt/locale/{bitcoin_be.ts => vincoin_be.ts} (100%) rename src/qt/locale/{bitcoin_bg.ts => vincoin_bg.ts} (100%) rename src/qt/locale/{bitcoin_bn.ts => vincoin_bn.ts} (100%) rename src/qt/locale/{bitcoin_br.ts => vincoin_br.ts} (100%) rename src/qt/locale/{bitcoin_bs.ts => vincoin_bs.ts} (100%) rename src/qt/locale/{bitcoin_ca.ts => vincoin_ca.ts} (100%) rename src/qt/locale/{bitcoin_cmn.ts => vincoin_cmn.ts} (100%) rename src/qt/locale/{bitcoin_cs.ts => vincoin_cs.ts} (100%) rename src/qt/locale/{bitcoin_cy.ts => vincoin_cy.ts} (100%) rename src/qt/locale/{bitcoin_da.ts => vincoin_da.ts} (100%) rename src/qt/locale/{bitcoin_de.ts => vincoin_de.ts} (100%) rename src/qt/locale/{bitcoin_de_AT.ts => vincoin_de_AT.ts} (100%) rename src/qt/locale/{bitcoin_de_CH.ts => vincoin_de_CH.ts} (100%) rename src/qt/locale/{bitcoin_el.ts => vincoin_el.ts} (100%) rename src/qt/locale/{bitcoin_en.ts => vincoin_en.ts} (100%) rename src/qt/locale/{bitcoin_en.xlf => vincoin_en.xlf} (100%) rename src/qt/locale/{bitcoin_eo.ts => vincoin_eo.ts} (100%) rename src/qt/locale/{bitcoin_es.ts => vincoin_es.ts} (100%) rename src/qt/locale/{bitcoin_es_CL.ts => vincoin_es_CL.ts} (100%) rename src/qt/locale/{bitcoin_es_CO.ts => vincoin_es_CO.ts} (100%) rename src/qt/locale/{bitcoin_es_DO.ts => vincoin_es_DO.ts} (100%) rename src/qt/locale/{bitcoin_es_MX.ts => vincoin_es_MX.ts} (100%) rename src/qt/locale/{bitcoin_es_SV.ts => vincoin_es_SV.ts} (100%) rename src/qt/locale/{bitcoin_es_VE.ts => vincoin_es_VE.ts} (100%) rename src/qt/locale/{bitcoin_et.ts => vincoin_et.ts} (100%) rename src/qt/locale/{bitcoin_eu.ts => vincoin_eu.ts} (100%) rename src/qt/locale/{bitcoin_fa.ts => vincoin_fa.ts} (100%) rename src/qt/locale/{bitcoin_fi.ts => vincoin_fi.ts} (100%) rename src/qt/locale/{bitcoin_fil.ts => vincoin_fil.ts} (100%) rename src/qt/locale/{bitcoin_fo.ts => vincoin_fo.ts} (100%) rename src/qt/locale/{bitcoin_fr.ts => vincoin_fr.ts} (100%) rename src/qt/locale/{bitcoin_fr_CM.ts => vincoin_fr_CM.ts} (100%) rename src/qt/locale/{bitcoin_fr_LU.ts => vincoin_fr_LU.ts} (100%) rename src/qt/locale/{bitcoin_ga.ts => vincoin_ga.ts} (100%) rename src/qt/locale/{bitcoin_ga_IE.ts => vincoin_ga_IE.ts} (100%) rename src/qt/locale/{bitcoin_gd.ts => vincoin_gd.ts} (100%) rename src/qt/locale/{bitcoin_gl.ts => vincoin_gl.ts} (100%) rename src/qt/locale/{bitcoin_gl_ES.ts => vincoin_gl_ES.ts} (100%) rename src/qt/locale/{bitcoin_gu.ts => vincoin_gu.ts} (100%) rename src/qt/locale/{bitcoin_ha.ts => vincoin_ha.ts} (100%) rename src/qt/locale/{bitcoin_hak.ts => vincoin_hak.ts} (100%) rename src/qt/locale/{bitcoin_he.ts => vincoin_he.ts} (100%) rename src/qt/locale/{bitcoin_hi.ts => vincoin_hi.ts} (100%) rename src/qt/locale/{bitcoin_hr.ts => vincoin_hr.ts} (100%) rename src/qt/locale/{bitcoin_hu.ts => vincoin_hu.ts} (100%) rename src/qt/locale/{bitcoin_id.ts => vincoin_id.ts} (100%) rename src/qt/locale/{bitcoin_is.ts => vincoin_is.ts} (100%) rename src/qt/locale/{bitcoin_it.ts => vincoin_it.ts} (100%) rename src/qt/locale/{bitcoin_ja.ts => vincoin_ja.ts} (100%) rename src/qt/locale/{bitcoin_ka.ts => vincoin_ka.ts} (100%) rename src/qt/locale/{bitcoin_kk.ts => vincoin_kk.ts} (100%) rename src/qt/locale/{bitcoin_kk@latin.ts => vincoin_kk@latin.ts} (100%) rename src/qt/locale/{bitcoin_kl.ts => vincoin_kl.ts} (100%) rename src/qt/locale/{bitcoin_km.ts => vincoin_km.ts} (100%) rename src/qt/locale/{bitcoin_kn.ts => vincoin_kn.ts} (100%) rename src/qt/locale/{bitcoin_ko.ts => vincoin_ko.ts} (100%) rename src/qt/locale/{bitcoin_ku.ts => vincoin_ku.ts} (100%) rename src/qt/locale/{bitcoin_ku_IQ.ts => vincoin_ku_IQ.ts} (100%) rename src/qt/locale/{bitcoin_ky.ts => vincoin_ky.ts} (100%) rename src/qt/locale/{bitcoin_la.ts => vincoin_la.ts} (100%) rename src/qt/locale/{bitcoin_lb.ts => vincoin_lb.ts} (100%) rename src/qt/locale/{bitcoin_lt.ts => vincoin_lt.ts} (100%) rename src/qt/locale/{bitcoin_lv.ts => vincoin_lv.ts} (100%) rename src/qt/locale/{bitcoin_mg.ts => vincoin_mg.ts} (100%) rename src/qt/locale/{bitcoin_mi.ts => vincoin_mi.ts} (100%) rename src/qt/locale/{bitcoin_mk.ts => vincoin_mk.ts} (100%) rename src/qt/locale/{bitcoin_ml.ts => vincoin_ml.ts} (100%) rename src/qt/locale/{bitcoin_mn.ts => vincoin_mn.ts} (100%) rename src/qt/locale/{bitcoin_mr.ts => vincoin_mr.ts} (100%) rename src/qt/locale/{bitcoin_mr_IN.ts => vincoin_mr_IN.ts} (100%) rename src/qt/locale/{bitcoin_ms.ts => vincoin_ms.ts} (100%) rename src/qt/locale/{bitcoin_mt.ts => vincoin_mt.ts} (100%) rename src/qt/locale/{bitcoin_my.ts => vincoin_my.ts} (100%) rename src/qt/locale/{bitcoin_nb.ts => vincoin_nb.ts} (100%) rename src/qt/locale/{bitcoin_ne.ts => vincoin_ne.ts} (100%) rename src/qt/locale/{bitcoin_nl.ts => vincoin_nl.ts} (100%) rename src/qt/locale/{bitcoin_no.ts => vincoin_no.ts} (100%) rename src/qt/locale/{bitcoin_pa.ts => vincoin_pa.ts} (100%) rename src/qt/locale/{bitcoin_pam.ts => vincoin_pam.ts} (100%) rename src/qt/locale/{bitcoin_pl.ts => vincoin_pl.ts} (100%) rename src/qt/locale/{bitcoin_pt.ts => vincoin_pt.ts} (100%) rename src/qt/locale/{bitcoin_pt_BR.ts => vincoin_pt_BR.ts} (100%) rename src/qt/locale/{bitcoin_ro.ts => vincoin_ro.ts} (100%) rename src/qt/locale/{bitcoin_ru.ts => vincoin_ru.ts} (100%) rename src/qt/locale/{bitcoin_ru_RU.ts => vincoin_ru_RU.ts} (100%) rename src/qt/locale/{bitcoin_sc.ts => vincoin_sc.ts} (100%) rename src/qt/locale/{bitcoin_sd.ts => vincoin_sd.ts} (100%) rename src/qt/locale/{bitcoin_si.ts => vincoin_si.ts} (100%) rename src/qt/locale/{bitcoin_sk.ts => vincoin_sk.ts} (100%) rename src/qt/locale/{bitcoin_sl.ts => vincoin_sl.ts} (100%) rename src/qt/locale/{bitcoin_sn.ts => vincoin_sn.ts} (100%) rename src/qt/locale/{bitcoin_so.ts => vincoin_so.ts} (100%) rename src/qt/locale/{bitcoin_sq.ts => vincoin_sq.ts} (100%) rename src/qt/locale/{bitcoin_sr.ts => vincoin_sr.ts} (100%) rename src/qt/locale/{bitcoin_sr@ijekavianlatin.ts => vincoin_sr@ijekavianlatin.ts} (100%) rename src/qt/locale/{bitcoin_sr@latin.ts => vincoin_sr@latin.ts} (100%) rename src/qt/locale/{bitcoin_sv.ts => vincoin_sv.ts} (100%) rename src/qt/locale/{bitcoin_sw.ts => vincoin_sw.ts} (100%) rename src/qt/locale/{bitcoin_szl.ts => vincoin_szl.ts} (100%) rename src/qt/locale/{bitcoin_ta.ts => vincoin_ta.ts} (100%) rename src/qt/locale/{bitcoin_te.ts => vincoin_te.ts} (100%) rename src/qt/locale/{bitcoin_th.ts => vincoin_th.ts} (100%) rename src/qt/locale/{bitcoin_tk.ts => vincoin_tk.ts} (100%) rename src/qt/locale/{bitcoin_tl.ts => vincoin_tl.ts} (100%) rename src/qt/locale/{bitcoin_tr.ts => vincoin_tr.ts} (100%) rename src/qt/locale/{bitcoin_ug.ts => vincoin_ug.ts} (100%) rename src/qt/locale/{bitcoin_uk.ts => vincoin_uk.ts} (100%) rename src/qt/locale/{bitcoin_ur.ts => vincoin_ur.ts} (100%) rename src/qt/locale/{bitcoin_uz.ts => vincoin_uz.ts} (100%) rename src/qt/locale/{bitcoin_uz@Cyrl.ts => vincoin_uz@Cyrl.ts} (100%) rename src/qt/locale/{bitcoin_uz@Latn.ts => vincoin_uz@Latn.ts} (100%) rename src/qt/locale/{bitcoin_vi.ts => vincoin_vi.ts} (100%) rename src/qt/locale/{bitcoin_yo.ts => vincoin_yo.ts} (100%) rename src/qt/locale/{bitcoin_yue.ts => vincoin_yue.ts} (100%) rename src/qt/locale/{bitcoin_zh-Hans.ts => vincoin_zh-Hans.ts} (100%) rename src/qt/locale/{bitcoin_zh-Hant.ts => vincoin_zh-Hant.ts} (100%) rename src/qt/locale/{bitcoin_zh.ts => vincoin_zh.ts} (100%) rename src/qt/locale/{bitcoin_zh_CN.ts => vincoin_zh_CN.ts} (100%) rename src/qt/locale/{bitcoin_zh_HK.ts => vincoin_zh_HK.ts} (100%) rename src/qt/locale/{bitcoin_zh_TW.ts => vincoin_zh_TW.ts} (100%) rename src/qt/locale/{bitcoin_zu.ts => vincoin_zu.ts} (100%) rename src/qt/res/icons/{bitcoin.icns => vincoin.icns} (100%) rename src/qt/res/icons/{bitcoin.ico => vincoin.ico} (100%) rename src/qt/res/icons/{bitcoin.png => vincoin.png} (100%) rename src/qt/res/icons/{bitcoin_testnet.ico => vincoin_testnet.ico} (100%) rename src/qt/res/src/{bitcoin.svg => vincoin.svg} (100%) rename src/qt/res/{bitcoin-qt-res.rc => vincoin-qt-res.rc} (100%) rename src/qt/{bitcoin.cpp => vincoin.cpp} (100%) rename src/qt/{bitcoin.h => vincoin.h} (100%) rename src/qt/{bitcoin.qrc => vincoin.qrc} (100%) rename src/qt/{bitcoin_locale.qrc => vincoin_locale.qrc} (100%) rename src/qt/{bitcoinaddressvalidator.cpp => vincoinaddressvalidator.cpp} (100%) rename src/qt/{bitcoinaddressvalidator.h => vincoinaddressvalidator.h} (100%) rename src/qt/{bitcoinamountfield.cpp => vincoinamountfield.cpp} (100%) rename src/qt/{bitcoinamountfield.h => vincoinamountfield.h} (100%) rename src/qt/{bitcoingui.cpp => vincoingui.cpp} (100%) rename src/qt/{bitcoingui.h => vincoingui.h} (100%) rename src/qt/{bitcoinstrings.cpp => vincoinstrings.cpp} (100%) rename src/qt/{bitcoinunits.cpp => vincoinunits.cpp} (100%) rename src/qt/{bitcoinunits.h => vincoinunits.h} (100%) rename src/script/{bitcoinconsensus.cpp => vincoinconsensus.cpp} (100%) rename src/script/{bitcoinconsensus.h => vincoinconsensus.h} (100%) rename src/secp256k1/build-aux/m4/{bitcoin_secp.m4 => vincoin_secp.m4} (100%) rename src/secp256k1/src/wycheproof/{ecdsa_secp256k1_sha256_bitcoin_test.h => ecdsa_secp256k1_sha256_vincoin_test.h} (100%) rename src/secp256k1/src/wycheproof/{ecdsa_secp256k1_sha256_bitcoin_test.json => ecdsa_secp256k1_sha256_vincoin_test.json} (100%) rename src/test/fuzz/{script_bitcoin_consensus.cpp => script_vincoin_consensus.cpp} (100%) rename src/{bitcoin-chainstate.cpp => vincoin-chainstate.cpp} (100%) rename src/{bitcoin-cli-res.rc => vincoin-cli-res.rc} (100%) rename src/{bitcoin-cli.cpp => vincoin-cli.cpp} (100%) rename src/{bitcoin-tx-res.rc => vincoin-tx-res.rc} (100%) rename src/{bitcoin-tx.cpp => vincoin-tx.cpp} (100%) rename src/{bitcoin-util-res.rc => vincoin-util-res.rc} (100%) rename src/{bitcoin-util.cpp => vincoin-util.cpp} (100%) rename src/{bitcoin-wallet-res.rc => vincoin-wallet-res.rc} (100%) rename src/{bitcoin-wallet.cpp => vincoin-wallet.cpp} (100%) rename src/{bitcoind-res.rc => vincoind-res.rc} (100%) rename src/{bitcoind.cpp => vincoind.cpp} (100%) rename test/functional/{interface_bitcoin_cli.py => interface_vincoin_cli.py} (100%) rename test/util/data/{bitcoin-util-test.json => vincoin-util-test.json} (100%) diff --git a/build-aux/m4/bitcoin_find_bdb48.m4 b/build-aux/m4/vincoin_find_bdb48.m4 similarity index 100% rename from build-aux/m4/bitcoin_find_bdb48.m4 rename to build-aux/m4/vincoin_find_bdb48.m4 diff --git a/build-aux/m4/bitcoin_qt.m4 b/build-aux/m4/vincoin_qt.m4 similarity index 100% rename from build-aux/m4/bitcoin_qt.m4 rename to build-aux/m4/vincoin_qt.m4 diff --git a/build-aux/m4/bitcoin_subdir_to_include.m4 b/build-aux/m4/vincoin_subdir_to_include.m4 similarity index 100% rename from build-aux/m4/bitcoin_subdir_to_include.m4 rename to build-aux/m4/vincoin_subdir_to_include.m4 diff --git a/build_msvc/bench_bitcoin/bench_bitcoin.vcxproj.in b/build_msvc/bench_vincoin/bench_vincoin.vcxproj.in similarity index 100% rename from build_msvc/bench_bitcoin/bench_bitcoin.vcxproj.in rename to build_msvc/bench_vincoin/bench_vincoin.vcxproj.in diff --git a/build_msvc/libbitcoin_cli/libbitcoin_cli.vcxproj.in b/build_msvc/libvincoin_cli/libvincoin_cli.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_cli/libbitcoin_cli.vcxproj.in rename to build_msvc/libvincoin_cli/libvincoin_cli.vcxproj.in diff --git a/build_msvc/libbitcoin_common/libbitcoin_common.vcxproj.in b/build_msvc/libvincoin_common/libvincoin_common.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_common/libbitcoin_common.vcxproj.in rename to build_msvc/libvincoin_common/libvincoin_common.vcxproj.in diff --git a/build_msvc/libbitcoin_consensus/libbitcoin_consensus.vcxproj b/build_msvc/libvincoin_consensus/libvincoin_consensus.vcxproj similarity index 100% rename from build_msvc/libbitcoin_consensus/libbitcoin_consensus.vcxproj rename to build_msvc/libvincoin_consensus/libvincoin_consensus.vcxproj diff --git a/build_msvc/libbitcoin_crypto/libbitcoin_crypto.vcxproj.in b/build_msvc/libvincoin_crypto/libvincoin_crypto.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_crypto/libbitcoin_crypto.vcxproj.in rename to build_msvc/libvincoin_crypto/libvincoin_crypto.vcxproj.in diff --git a/build_msvc/libbitcoin_node/libbitcoin_node.vcxproj.in b/build_msvc/libvincoin_node/libvincoin_node.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_node/libbitcoin_node.vcxproj.in rename to build_msvc/libvincoin_node/libvincoin_node.vcxproj.in diff --git a/build_msvc/libbitcoin_qt/libbitcoin_qt.vcxproj b/build_msvc/libvincoin_qt/libvincoin_qt.vcxproj similarity index 100% rename from build_msvc/libbitcoin_qt/libbitcoin_qt.vcxproj rename to build_msvc/libvincoin_qt/libvincoin_qt.vcxproj diff --git a/build_msvc/libbitcoin_util/libbitcoin_util.vcxproj.in b/build_msvc/libvincoin_util/libvincoin_util.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_util/libbitcoin_util.vcxproj.in rename to build_msvc/libvincoin_util/libvincoin_util.vcxproj.in diff --git a/build_msvc/libbitcoin_wallet/libbitcoin_wallet.vcxproj.in b/build_msvc/libvincoin_wallet/libvincoin_wallet.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_wallet/libbitcoin_wallet.vcxproj.in rename to build_msvc/libvincoin_wallet/libvincoin_wallet.vcxproj.in diff --git a/build_msvc/libbitcoin_wallet_tool/libbitcoin_wallet_tool.vcxproj.in b/build_msvc/libvincoin_wallet_tool/libvincoin_wallet_tool.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_wallet_tool/libbitcoin_wallet_tool.vcxproj.in rename to build_msvc/libvincoin_wallet_tool/libvincoin_wallet_tool.vcxproj.in diff --git a/build_msvc/libbitcoin_zmq/libbitcoin_zmq.vcxproj.in b/build_msvc/libvincoin_zmq/libvincoin_zmq.vcxproj.in similarity index 100% rename from build_msvc/libbitcoin_zmq/libbitcoin_zmq.vcxproj.in rename to build_msvc/libvincoin_zmq/libvincoin_zmq.vcxproj.in diff --git a/build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj b/build_msvc/test_vincoin-qt/test_vincoin-qt.vcxproj similarity index 100% rename from build_msvc/test_bitcoin-qt/test_bitcoin-qt.vcxproj rename to build_msvc/test_vincoin-qt/test_vincoin-qt.vcxproj diff --git a/build_msvc/test_bitcoin/test_bitcoin.vcxproj b/build_msvc/test_vincoin/test_vincoin.vcxproj similarity index 100% rename from build_msvc/test_bitcoin/test_bitcoin.vcxproj rename to build_msvc/test_vincoin/test_vincoin.vcxproj diff --git a/build_msvc/bitcoin-cli/bitcoin-cli.vcxproj b/build_msvc/vincoin-cli/vincoin-cli.vcxproj similarity index 100% rename from build_msvc/bitcoin-cli/bitcoin-cli.vcxproj rename to build_msvc/vincoin-cli/vincoin-cli.vcxproj diff --git a/build_msvc/bitcoin-qt/bitcoin-qt.vcxproj b/build_msvc/vincoin-qt/vincoin-qt.vcxproj similarity index 100% rename from build_msvc/bitcoin-qt/bitcoin-qt.vcxproj rename to build_msvc/vincoin-qt/vincoin-qt.vcxproj diff --git a/build_msvc/bitcoin-tx/bitcoin-tx.vcxproj b/build_msvc/vincoin-tx/vincoin-tx.vcxproj similarity index 100% rename from build_msvc/bitcoin-tx/bitcoin-tx.vcxproj rename to build_msvc/vincoin-tx/vincoin-tx.vcxproj diff --git a/build_msvc/bitcoin-util/bitcoin-util.vcxproj b/build_msvc/vincoin-util/vincoin-util.vcxproj similarity index 100% rename from build_msvc/bitcoin-util/bitcoin-util.vcxproj rename to build_msvc/vincoin-util/vincoin-util.vcxproj diff --git a/build_msvc/bitcoin-wallet/bitcoin-wallet.vcxproj b/build_msvc/vincoin-wallet/vincoin-wallet.vcxproj similarity index 100% rename from build_msvc/bitcoin-wallet/bitcoin-wallet.vcxproj rename to build_msvc/vincoin-wallet/vincoin-wallet.vcxproj diff --git a/build_msvc/bitcoin.sln b/build_msvc/vincoin.sln similarity index 100% rename from build_msvc/bitcoin.sln rename to build_msvc/vincoin.sln diff --git a/build_msvc/bitcoin_config.h.in b/build_msvc/vincoin_config.h.in similarity index 100% rename from build_msvc/bitcoin_config.h.in rename to build_msvc/vincoin_config.h.in diff --git a/build_msvc/bitcoind/bitcoind.vcxproj b/build_msvc/vincoind/vincoind.vcxproj similarity index 100% rename from build_msvc/bitcoind/bitcoind.vcxproj rename to build_msvc/vincoind/vincoind.vcxproj diff --git a/ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh b/ci/test/00_setup_env_native_nowallet_libvincoinkernel.sh similarity index 100% rename from ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh rename to ci/test/00_setup_env_native_nowallet_libvincoinkernel.sh diff --git a/contrib/completions/bash/bitcoin-cli.bash b/contrib/completions/bash/vincoin-cli.bash similarity index 100% rename from contrib/completions/bash/bitcoin-cli.bash rename to contrib/completions/bash/vincoin-cli.bash diff --git a/contrib/completions/bash/bitcoin-tx.bash b/contrib/completions/bash/vincoin-tx.bash similarity index 100% rename from contrib/completions/bash/bitcoin-tx.bash rename to contrib/completions/bash/vincoin-tx.bash diff --git a/contrib/completions/bash/bitcoind.bash b/contrib/completions/bash/vincoind.bash similarity index 100% rename from contrib/completions/bash/bitcoind.bash rename to contrib/completions/bash/vincoind.bash diff --git a/contrib/completions/fish/bitcoin-cli.fish b/contrib/completions/fish/vincoin-cli.fish similarity index 100% rename from contrib/completions/fish/bitcoin-cli.fish rename to contrib/completions/fish/vincoin-cli.fish diff --git a/contrib/completions/fish/bitcoin-qt.fish b/contrib/completions/fish/vincoin-qt.fish similarity index 100% rename from contrib/completions/fish/bitcoin-qt.fish rename to contrib/completions/fish/vincoin-qt.fish diff --git a/contrib/completions/fish/bitcoin-tx.fish b/contrib/completions/fish/vincoin-tx.fish similarity index 100% rename from contrib/completions/fish/bitcoin-tx.fish rename to contrib/completions/fish/vincoin-tx.fish diff --git a/contrib/completions/fish/bitcoin-util.fish b/contrib/completions/fish/vincoin-util.fish similarity index 100% rename from contrib/completions/fish/bitcoin-util.fish rename to contrib/completions/fish/vincoin-util.fish diff --git a/contrib/completions/fish/bitcoin-wallet.fish b/contrib/completions/fish/vincoin-wallet.fish similarity index 100% rename from contrib/completions/fish/bitcoin-wallet.fish rename to contrib/completions/fish/vincoin-wallet.fish diff --git a/contrib/completions/fish/bitcoind.fish b/contrib/completions/fish/vincoind.fish similarity index 100% rename from contrib/completions/fish/bitcoind.fish rename to contrib/completions/fish/vincoind.fish diff --git a/contrib/devtools/gen-bitcoin-conf.sh b/contrib/devtools/gen-vincoin-conf.sh similarity index 100% rename from contrib/devtools/gen-bitcoin-conf.sh rename to contrib/devtools/gen-vincoin-conf.sh diff --git a/contrib/devtools/iwyu/bitcoin.core.imp b/contrib/devtools/iwyu/vincoin.core.imp similarity index 100% rename from contrib/devtools/iwyu/bitcoin.core.imp rename to contrib/devtools/iwyu/vincoin.core.imp diff --git a/contrib/devtools/bitcoin-tidy/CMakeLists.txt b/contrib/devtools/vincoin-tidy/CMakeLists.txt similarity index 100% rename from contrib/devtools/bitcoin-tidy/CMakeLists.txt rename to contrib/devtools/vincoin-tidy/CMakeLists.txt diff --git a/contrib/devtools/bitcoin-tidy/README b/contrib/devtools/vincoin-tidy/README similarity index 100% rename from contrib/devtools/bitcoin-tidy/README rename to contrib/devtools/vincoin-tidy/README diff --git a/contrib/devtools/bitcoin-tidy/example_logprintf.cpp b/contrib/devtools/vincoin-tidy/example_logprintf.cpp similarity index 100% rename from contrib/devtools/bitcoin-tidy/example_logprintf.cpp rename to contrib/devtools/vincoin-tidy/example_logprintf.cpp diff --git a/contrib/devtools/bitcoin-tidy/logprintf.cpp b/contrib/devtools/vincoin-tidy/logprintf.cpp similarity index 100% rename from contrib/devtools/bitcoin-tidy/logprintf.cpp rename to contrib/devtools/vincoin-tidy/logprintf.cpp diff --git a/contrib/devtools/bitcoin-tidy/logprintf.h b/contrib/devtools/vincoin-tidy/logprintf.h similarity index 100% rename from contrib/devtools/bitcoin-tidy/logprintf.h rename to contrib/devtools/vincoin-tidy/logprintf.h diff --git a/contrib/devtools/bitcoin-tidy/bitcoin-tidy.cpp b/contrib/devtools/vincoin-tidy/vincoin-tidy.cpp similarity index 100% rename from contrib/devtools/bitcoin-tidy/bitcoin-tidy.cpp rename to contrib/devtools/vincoin-tidy/vincoin-tidy.cpp diff --git a/contrib/init/org.bitcoin.bitcoind.plist b/contrib/init/org.bitcoin.bitcoind.plist deleted file mode 100644 index 95b5342f1ef9d..0000000000000 --- a/contrib/init/org.bitcoin.bitcoind.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Label - org.bitcoin.bitcoind - ProgramArguments - - /usr/local/bin/bitcoind - - RunAtLoad - - - diff --git a/contrib/init/bitcoind.conf b/contrib/init/vincoind.conf similarity index 100% rename from contrib/init/bitcoind.conf rename to contrib/init/vincoind.conf diff --git a/contrib/init/bitcoind.init b/contrib/init/vincoind.init similarity index 100% rename from contrib/init/bitcoind.init rename to contrib/init/vincoind.init diff --git a/contrib/init/bitcoind.openrc b/contrib/init/vincoind.openrc similarity index 100% rename from contrib/init/bitcoind.openrc rename to contrib/init/vincoind.openrc diff --git a/contrib/init/bitcoind.openrcconf b/contrib/init/vincoind.openrcconf similarity index 100% rename from contrib/init/bitcoind.openrcconf rename to contrib/init/vincoind.openrcconf diff --git a/contrib/init/bitcoind.service b/contrib/init/vincoind.service similarity index 100% rename from contrib/init/bitcoind.service rename to contrib/init/vincoind.service diff --git a/doc/man/bitcoin-cli.1 b/doc/man/vincoin-cli.1 similarity index 100% rename from doc/man/bitcoin-cli.1 rename to doc/man/vincoin-cli.1 diff --git a/doc/man/bitcoin-qt.1 b/doc/man/vincoin-qt.1 similarity index 100% rename from doc/man/bitcoin-qt.1 rename to doc/man/vincoin-qt.1 diff --git a/doc/man/bitcoin-tx.1 b/doc/man/vincoin-tx.1 similarity index 100% rename from doc/man/bitcoin-tx.1 rename to doc/man/vincoin-tx.1 diff --git a/doc/man/bitcoin-util.1 b/doc/man/vincoin-util.1 similarity index 100% rename from doc/man/bitcoin-util.1 rename to doc/man/vincoin-util.1 diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/vincoin-wallet.1 similarity index 100% rename from doc/man/bitcoin-wallet.1 rename to doc/man/vincoin-wallet.1 diff --git a/doc/man/bitcoind.1 b/doc/man/vincoind.1 similarity index 100% rename from doc/man/bitcoind.1 rename to doc/man/vincoind.1 diff --git a/doc/bitcoin-conf.md b/doc/vincoin-conf.md similarity index 100% rename from doc/bitcoin-conf.md rename to doc/vincoin-conf.md diff --git a/doc/bitcoin_logo_doxygen.png b/doc/vincoin_logo_doxygen.png similarity index 100% rename from doc/bitcoin_logo_doxygen.png rename to doc/vincoin_logo_doxygen.png diff --git a/libbitcoinconsensus.pc.in b/libvincoinconsensus.pc.in similarity index 100% rename from libbitcoinconsensus.pc.in rename to libvincoinconsensus.pc.in diff --git a/share/examples/bitcoin.conf b/share/examples/vincoin.conf similarity index 100% rename from share/examples/bitcoin.conf rename to share/examples/vincoin.conf diff --git a/share/pixmaps/bitcoin.ico b/share/pixmaps/vincoin.ico similarity index 100% rename from share/pixmaps/bitcoin.ico rename to share/pixmaps/vincoin.ico diff --git a/share/pixmaps/bitcoin128.png b/share/pixmaps/vincoin128.png similarity index 100% rename from share/pixmaps/bitcoin128.png rename to share/pixmaps/vincoin128.png diff --git a/share/pixmaps/bitcoin128.xpm b/share/pixmaps/vincoin128.xpm similarity index 100% rename from share/pixmaps/bitcoin128.xpm rename to share/pixmaps/vincoin128.xpm diff --git a/share/pixmaps/bitcoin16.png b/share/pixmaps/vincoin16.png similarity index 100% rename from share/pixmaps/bitcoin16.png rename to share/pixmaps/vincoin16.png diff --git a/share/pixmaps/bitcoin16.xpm b/share/pixmaps/vincoin16.xpm similarity index 100% rename from share/pixmaps/bitcoin16.xpm rename to share/pixmaps/vincoin16.xpm diff --git a/share/pixmaps/bitcoin256.png b/share/pixmaps/vincoin256.png similarity index 100% rename from share/pixmaps/bitcoin256.png rename to share/pixmaps/vincoin256.png diff --git a/share/pixmaps/bitcoin256.xpm b/share/pixmaps/vincoin256.xpm similarity index 100% rename from share/pixmaps/bitcoin256.xpm rename to share/pixmaps/vincoin256.xpm diff --git a/share/pixmaps/bitcoin32.png b/share/pixmaps/vincoin32.png similarity index 100% rename from share/pixmaps/bitcoin32.png rename to share/pixmaps/vincoin32.png diff --git a/share/pixmaps/bitcoin32.xpm b/share/pixmaps/vincoin32.xpm similarity index 100% rename from share/pixmaps/bitcoin32.xpm rename to share/pixmaps/vincoin32.xpm diff --git a/share/pixmaps/bitcoin64.png b/share/pixmaps/vincoin64.png similarity index 100% rename from share/pixmaps/bitcoin64.png rename to share/pixmaps/vincoin64.png diff --git a/share/pixmaps/bitcoin64.xpm b/share/pixmaps/vincoin64.xpm similarity index 100% rename from share/pixmaps/bitcoin64.xpm rename to share/pixmaps/vincoin64.xpm diff --git a/src/bench/bench_bitcoin.cpp b/src/bench/bench_vincoin.cpp similarity index 100% rename from src/bench/bench_bitcoin.cpp rename to src/bench/bench_vincoin.cpp diff --git a/src/init/bitcoin-gui.cpp b/src/init/vincoin-gui.cpp similarity index 100% rename from src/init/bitcoin-gui.cpp rename to src/init/vincoin-gui.cpp diff --git a/src/init/bitcoin-node.cpp b/src/init/vincoin-node.cpp similarity index 100% rename from src/init/bitcoin-node.cpp rename to src/init/vincoin-node.cpp diff --git a/src/init/bitcoin-qt.cpp b/src/init/vincoin-qt.cpp similarity index 100% rename from src/init/bitcoin-qt.cpp rename to src/init/vincoin-qt.cpp diff --git a/src/init/bitcoin-wallet.cpp b/src/init/vincoin-wallet.cpp similarity index 100% rename from src/init/bitcoin-wallet.cpp rename to src/init/vincoin-wallet.cpp diff --git a/src/init/bitcoind.cpp b/src/init/vincoind.cpp similarity index 100% rename from src/init/bitcoind.cpp rename to src/init/vincoind.cpp diff --git a/src/kernel/bitcoinkernel.cpp b/src/kernel/vincoinkernel.cpp similarity index 100% rename from src/kernel/bitcoinkernel.cpp rename to src/kernel/vincoinkernel.cpp diff --git a/src/qt/android/res/drawable-hdpi/bitcoin.png b/src/qt/android/res/drawable-hdpi/vincoin.png similarity index 100% rename from src/qt/android/res/drawable-hdpi/bitcoin.png rename to src/qt/android/res/drawable-hdpi/vincoin.png diff --git a/src/qt/android/res/drawable-ldpi/bitcoin.png b/src/qt/android/res/drawable-ldpi/vincoin.png similarity index 100% rename from src/qt/android/res/drawable-ldpi/bitcoin.png rename to src/qt/android/res/drawable-ldpi/vincoin.png diff --git a/src/qt/android/res/drawable-mdpi/bitcoin.png b/src/qt/android/res/drawable-mdpi/vincoin.png similarity index 100% rename from src/qt/android/res/drawable-mdpi/bitcoin.png rename to src/qt/android/res/drawable-mdpi/vincoin.png diff --git a/src/qt/android/res/drawable-xhdpi/bitcoin.png b/src/qt/android/res/drawable-xhdpi/vincoin.png similarity index 100% rename from src/qt/android/res/drawable-xhdpi/bitcoin.png rename to src/qt/android/res/drawable-xhdpi/vincoin.png diff --git a/src/qt/android/res/drawable-xxhdpi/bitcoin.png b/src/qt/android/res/drawable-xxhdpi/vincoin.png similarity index 100% rename from src/qt/android/res/drawable-xxhdpi/bitcoin.png rename to src/qt/android/res/drawable-xxhdpi/vincoin.png diff --git a/src/qt/android/res/drawable-xxxhdpi/bitcoin.png b/src/qt/android/res/drawable-xxxhdpi/vincoin.png similarity index 100% rename from src/qt/android/res/drawable-xxxhdpi/bitcoin.png rename to src/qt/android/res/drawable-xxxhdpi/vincoin.png diff --git a/src/qt/android/src/org/bitcoincore/qt/BitcoinQtActivity.java b/src/qt/android/src/org/vincoincore/qt/VincoinQtActivity.java similarity index 100% rename from src/qt/android/src/org/bitcoincore/qt/BitcoinQtActivity.java rename to src/qt/android/src/org/vincoincore/qt/VincoinQtActivity.java diff --git a/src/qt/locale/bitcoin_af.ts b/src/qt/locale/vincoin_af.ts similarity index 100% rename from src/qt/locale/bitcoin_af.ts rename to src/qt/locale/vincoin_af.ts diff --git a/src/qt/locale/bitcoin_am.ts b/src/qt/locale/vincoin_am.ts similarity index 100% rename from src/qt/locale/bitcoin_am.ts rename to src/qt/locale/vincoin_am.ts diff --git a/src/qt/locale/bitcoin_az.ts b/src/qt/locale/vincoin_az.ts similarity index 100% rename from src/qt/locale/bitcoin_az.ts rename to src/qt/locale/vincoin_az.ts diff --git a/src/qt/locale/bitcoin_az@latin.ts b/src/qt/locale/vincoin_az@latin.ts similarity index 100% rename from src/qt/locale/bitcoin_az@latin.ts rename to src/qt/locale/vincoin_az@latin.ts diff --git a/src/qt/locale/bitcoin_be.ts b/src/qt/locale/vincoin_be.ts similarity index 100% rename from src/qt/locale/bitcoin_be.ts rename to src/qt/locale/vincoin_be.ts diff --git a/src/qt/locale/bitcoin_bg.ts b/src/qt/locale/vincoin_bg.ts similarity index 100% rename from src/qt/locale/bitcoin_bg.ts rename to src/qt/locale/vincoin_bg.ts diff --git a/src/qt/locale/bitcoin_bn.ts b/src/qt/locale/vincoin_bn.ts similarity index 100% rename from src/qt/locale/bitcoin_bn.ts rename to src/qt/locale/vincoin_bn.ts diff --git a/src/qt/locale/bitcoin_br.ts b/src/qt/locale/vincoin_br.ts similarity index 100% rename from src/qt/locale/bitcoin_br.ts rename to src/qt/locale/vincoin_br.ts diff --git a/src/qt/locale/bitcoin_bs.ts b/src/qt/locale/vincoin_bs.ts similarity index 100% rename from src/qt/locale/bitcoin_bs.ts rename to src/qt/locale/vincoin_bs.ts diff --git a/src/qt/locale/bitcoin_ca.ts b/src/qt/locale/vincoin_ca.ts similarity index 100% rename from src/qt/locale/bitcoin_ca.ts rename to src/qt/locale/vincoin_ca.ts diff --git a/src/qt/locale/bitcoin_cmn.ts b/src/qt/locale/vincoin_cmn.ts similarity index 100% rename from src/qt/locale/bitcoin_cmn.ts rename to src/qt/locale/vincoin_cmn.ts diff --git a/src/qt/locale/bitcoin_cs.ts b/src/qt/locale/vincoin_cs.ts similarity index 100% rename from src/qt/locale/bitcoin_cs.ts rename to src/qt/locale/vincoin_cs.ts diff --git a/src/qt/locale/bitcoin_cy.ts b/src/qt/locale/vincoin_cy.ts similarity index 100% rename from src/qt/locale/bitcoin_cy.ts rename to src/qt/locale/vincoin_cy.ts diff --git a/src/qt/locale/bitcoin_da.ts b/src/qt/locale/vincoin_da.ts similarity index 100% rename from src/qt/locale/bitcoin_da.ts rename to src/qt/locale/vincoin_da.ts diff --git a/src/qt/locale/bitcoin_de.ts b/src/qt/locale/vincoin_de.ts similarity index 100% rename from src/qt/locale/bitcoin_de.ts rename to src/qt/locale/vincoin_de.ts diff --git a/src/qt/locale/bitcoin_de_AT.ts b/src/qt/locale/vincoin_de_AT.ts similarity index 100% rename from src/qt/locale/bitcoin_de_AT.ts rename to src/qt/locale/vincoin_de_AT.ts diff --git a/src/qt/locale/bitcoin_de_CH.ts b/src/qt/locale/vincoin_de_CH.ts similarity index 100% rename from src/qt/locale/bitcoin_de_CH.ts rename to src/qt/locale/vincoin_de_CH.ts diff --git a/src/qt/locale/bitcoin_el.ts b/src/qt/locale/vincoin_el.ts similarity index 100% rename from src/qt/locale/bitcoin_el.ts rename to src/qt/locale/vincoin_el.ts diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/vincoin_en.ts similarity index 100% rename from src/qt/locale/bitcoin_en.ts rename to src/qt/locale/vincoin_en.ts diff --git a/src/qt/locale/bitcoin_en.xlf b/src/qt/locale/vincoin_en.xlf similarity index 100% rename from src/qt/locale/bitcoin_en.xlf rename to src/qt/locale/vincoin_en.xlf diff --git a/src/qt/locale/bitcoin_eo.ts b/src/qt/locale/vincoin_eo.ts similarity index 100% rename from src/qt/locale/bitcoin_eo.ts rename to src/qt/locale/vincoin_eo.ts diff --git a/src/qt/locale/bitcoin_es.ts b/src/qt/locale/vincoin_es.ts similarity index 100% rename from src/qt/locale/bitcoin_es.ts rename to src/qt/locale/vincoin_es.ts diff --git a/src/qt/locale/bitcoin_es_CL.ts b/src/qt/locale/vincoin_es_CL.ts similarity index 100% rename from src/qt/locale/bitcoin_es_CL.ts rename to src/qt/locale/vincoin_es_CL.ts diff --git a/src/qt/locale/bitcoin_es_CO.ts b/src/qt/locale/vincoin_es_CO.ts similarity index 100% rename from src/qt/locale/bitcoin_es_CO.ts rename to src/qt/locale/vincoin_es_CO.ts diff --git a/src/qt/locale/bitcoin_es_DO.ts b/src/qt/locale/vincoin_es_DO.ts similarity index 100% rename from src/qt/locale/bitcoin_es_DO.ts rename to src/qt/locale/vincoin_es_DO.ts diff --git a/src/qt/locale/bitcoin_es_MX.ts b/src/qt/locale/vincoin_es_MX.ts similarity index 100% rename from src/qt/locale/bitcoin_es_MX.ts rename to src/qt/locale/vincoin_es_MX.ts diff --git a/src/qt/locale/bitcoin_es_SV.ts b/src/qt/locale/vincoin_es_SV.ts similarity index 100% rename from src/qt/locale/bitcoin_es_SV.ts rename to src/qt/locale/vincoin_es_SV.ts diff --git a/src/qt/locale/bitcoin_es_VE.ts b/src/qt/locale/vincoin_es_VE.ts similarity index 100% rename from src/qt/locale/bitcoin_es_VE.ts rename to src/qt/locale/vincoin_es_VE.ts diff --git a/src/qt/locale/bitcoin_et.ts b/src/qt/locale/vincoin_et.ts similarity index 100% rename from src/qt/locale/bitcoin_et.ts rename to src/qt/locale/vincoin_et.ts diff --git a/src/qt/locale/bitcoin_eu.ts b/src/qt/locale/vincoin_eu.ts similarity index 100% rename from src/qt/locale/bitcoin_eu.ts rename to src/qt/locale/vincoin_eu.ts diff --git a/src/qt/locale/bitcoin_fa.ts b/src/qt/locale/vincoin_fa.ts similarity index 100% rename from src/qt/locale/bitcoin_fa.ts rename to src/qt/locale/vincoin_fa.ts diff --git a/src/qt/locale/bitcoin_fi.ts b/src/qt/locale/vincoin_fi.ts similarity index 100% rename from src/qt/locale/bitcoin_fi.ts rename to src/qt/locale/vincoin_fi.ts diff --git a/src/qt/locale/bitcoin_fil.ts b/src/qt/locale/vincoin_fil.ts similarity index 100% rename from src/qt/locale/bitcoin_fil.ts rename to src/qt/locale/vincoin_fil.ts diff --git a/src/qt/locale/bitcoin_fo.ts b/src/qt/locale/vincoin_fo.ts similarity index 100% rename from src/qt/locale/bitcoin_fo.ts rename to src/qt/locale/vincoin_fo.ts diff --git a/src/qt/locale/bitcoin_fr.ts b/src/qt/locale/vincoin_fr.ts similarity index 100% rename from src/qt/locale/bitcoin_fr.ts rename to src/qt/locale/vincoin_fr.ts diff --git a/src/qt/locale/bitcoin_fr_CM.ts b/src/qt/locale/vincoin_fr_CM.ts similarity index 100% rename from src/qt/locale/bitcoin_fr_CM.ts rename to src/qt/locale/vincoin_fr_CM.ts diff --git a/src/qt/locale/bitcoin_fr_LU.ts b/src/qt/locale/vincoin_fr_LU.ts similarity index 100% rename from src/qt/locale/bitcoin_fr_LU.ts rename to src/qt/locale/vincoin_fr_LU.ts diff --git a/src/qt/locale/bitcoin_ga.ts b/src/qt/locale/vincoin_ga.ts similarity index 100% rename from src/qt/locale/bitcoin_ga.ts rename to src/qt/locale/vincoin_ga.ts diff --git a/src/qt/locale/bitcoin_ga_IE.ts b/src/qt/locale/vincoin_ga_IE.ts similarity index 100% rename from src/qt/locale/bitcoin_ga_IE.ts rename to src/qt/locale/vincoin_ga_IE.ts diff --git a/src/qt/locale/bitcoin_gd.ts b/src/qt/locale/vincoin_gd.ts similarity index 100% rename from src/qt/locale/bitcoin_gd.ts rename to src/qt/locale/vincoin_gd.ts diff --git a/src/qt/locale/bitcoin_gl.ts b/src/qt/locale/vincoin_gl.ts similarity index 100% rename from src/qt/locale/bitcoin_gl.ts rename to src/qt/locale/vincoin_gl.ts diff --git a/src/qt/locale/bitcoin_gl_ES.ts b/src/qt/locale/vincoin_gl_ES.ts similarity index 100% rename from src/qt/locale/bitcoin_gl_ES.ts rename to src/qt/locale/vincoin_gl_ES.ts diff --git a/src/qt/locale/bitcoin_gu.ts b/src/qt/locale/vincoin_gu.ts similarity index 100% rename from src/qt/locale/bitcoin_gu.ts rename to src/qt/locale/vincoin_gu.ts diff --git a/src/qt/locale/bitcoin_ha.ts b/src/qt/locale/vincoin_ha.ts similarity index 100% rename from src/qt/locale/bitcoin_ha.ts rename to src/qt/locale/vincoin_ha.ts diff --git a/src/qt/locale/bitcoin_hak.ts b/src/qt/locale/vincoin_hak.ts similarity index 100% rename from src/qt/locale/bitcoin_hak.ts rename to src/qt/locale/vincoin_hak.ts diff --git a/src/qt/locale/bitcoin_he.ts b/src/qt/locale/vincoin_he.ts similarity index 100% rename from src/qt/locale/bitcoin_he.ts rename to src/qt/locale/vincoin_he.ts diff --git a/src/qt/locale/bitcoin_hi.ts b/src/qt/locale/vincoin_hi.ts similarity index 100% rename from src/qt/locale/bitcoin_hi.ts rename to src/qt/locale/vincoin_hi.ts diff --git a/src/qt/locale/bitcoin_hr.ts b/src/qt/locale/vincoin_hr.ts similarity index 100% rename from src/qt/locale/bitcoin_hr.ts rename to src/qt/locale/vincoin_hr.ts diff --git a/src/qt/locale/bitcoin_hu.ts b/src/qt/locale/vincoin_hu.ts similarity index 100% rename from src/qt/locale/bitcoin_hu.ts rename to src/qt/locale/vincoin_hu.ts diff --git a/src/qt/locale/bitcoin_id.ts b/src/qt/locale/vincoin_id.ts similarity index 100% rename from src/qt/locale/bitcoin_id.ts rename to src/qt/locale/vincoin_id.ts diff --git a/src/qt/locale/bitcoin_is.ts b/src/qt/locale/vincoin_is.ts similarity index 100% rename from src/qt/locale/bitcoin_is.ts rename to src/qt/locale/vincoin_is.ts diff --git a/src/qt/locale/bitcoin_it.ts b/src/qt/locale/vincoin_it.ts similarity index 100% rename from src/qt/locale/bitcoin_it.ts rename to src/qt/locale/vincoin_it.ts diff --git a/src/qt/locale/bitcoin_ja.ts b/src/qt/locale/vincoin_ja.ts similarity index 100% rename from src/qt/locale/bitcoin_ja.ts rename to src/qt/locale/vincoin_ja.ts diff --git a/src/qt/locale/bitcoin_ka.ts b/src/qt/locale/vincoin_ka.ts similarity index 100% rename from src/qt/locale/bitcoin_ka.ts rename to src/qt/locale/vincoin_ka.ts diff --git a/src/qt/locale/bitcoin_kk.ts b/src/qt/locale/vincoin_kk.ts similarity index 100% rename from src/qt/locale/bitcoin_kk.ts rename to src/qt/locale/vincoin_kk.ts diff --git a/src/qt/locale/bitcoin_kk@latin.ts b/src/qt/locale/vincoin_kk@latin.ts similarity index 100% rename from src/qt/locale/bitcoin_kk@latin.ts rename to src/qt/locale/vincoin_kk@latin.ts diff --git a/src/qt/locale/bitcoin_kl.ts b/src/qt/locale/vincoin_kl.ts similarity index 100% rename from src/qt/locale/bitcoin_kl.ts rename to src/qt/locale/vincoin_kl.ts diff --git a/src/qt/locale/bitcoin_km.ts b/src/qt/locale/vincoin_km.ts similarity index 100% rename from src/qt/locale/bitcoin_km.ts rename to src/qt/locale/vincoin_km.ts diff --git a/src/qt/locale/bitcoin_kn.ts b/src/qt/locale/vincoin_kn.ts similarity index 100% rename from src/qt/locale/bitcoin_kn.ts rename to src/qt/locale/vincoin_kn.ts diff --git a/src/qt/locale/bitcoin_ko.ts b/src/qt/locale/vincoin_ko.ts similarity index 100% rename from src/qt/locale/bitcoin_ko.ts rename to src/qt/locale/vincoin_ko.ts diff --git a/src/qt/locale/bitcoin_ku.ts b/src/qt/locale/vincoin_ku.ts similarity index 100% rename from src/qt/locale/bitcoin_ku.ts rename to src/qt/locale/vincoin_ku.ts diff --git a/src/qt/locale/bitcoin_ku_IQ.ts b/src/qt/locale/vincoin_ku_IQ.ts similarity index 100% rename from src/qt/locale/bitcoin_ku_IQ.ts rename to src/qt/locale/vincoin_ku_IQ.ts diff --git a/src/qt/locale/bitcoin_ky.ts b/src/qt/locale/vincoin_ky.ts similarity index 100% rename from src/qt/locale/bitcoin_ky.ts rename to src/qt/locale/vincoin_ky.ts diff --git a/src/qt/locale/bitcoin_la.ts b/src/qt/locale/vincoin_la.ts similarity index 100% rename from src/qt/locale/bitcoin_la.ts rename to src/qt/locale/vincoin_la.ts diff --git a/src/qt/locale/bitcoin_lb.ts b/src/qt/locale/vincoin_lb.ts similarity index 100% rename from src/qt/locale/bitcoin_lb.ts rename to src/qt/locale/vincoin_lb.ts diff --git a/src/qt/locale/bitcoin_lt.ts b/src/qt/locale/vincoin_lt.ts similarity index 100% rename from src/qt/locale/bitcoin_lt.ts rename to src/qt/locale/vincoin_lt.ts diff --git a/src/qt/locale/bitcoin_lv.ts b/src/qt/locale/vincoin_lv.ts similarity index 100% rename from src/qt/locale/bitcoin_lv.ts rename to src/qt/locale/vincoin_lv.ts diff --git a/src/qt/locale/bitcoin_mg.ts b/src/qt/locale/vincoin_mg.ts similarity index 100% rename from src/qt/locale/bitcoin_mg.ts rename to src/qt/locale/vincoin_mg.ts diff --git a/src/qt/locale/bitcoin_mi.ts b/src/qt/locale/vincoin_mi.ts similarity index 100% rename from src/qt/locale/bitcoin_mi.ts rename to src/qt/locale/vincoin_mi.ts diff --git a/src/qt/locale/bitcoin_mk.ts b/src/qt/locale/vincoin_mk.ts similarity index 100% rename from src/qt/locale/bitcoin_mk.ts rename to src/qt/locale/vincoin_mk.ts diff --git a/src/qt/locale/bitcoin_ml.ts b/src/qt/locale/vincoin_ml.ts similarity index 100% rename from src/qt/locale/bitcoin_ml.ts rename to src/qt/locale/vincoin_ml.ts diff --git a/src/qt/locale/bitcoin_mn.ts b/src/qt/locale/vincoin_mn.ts similarity index 100% rename from src/qt/locale/bitcoin_mn.ts rename to src/qt/locale/vincoin_mn.ts diff --git a/src/qt/locale/bitcoin_mr.ts b/src/qt/locale/vincoin_mr.ts similarity index 100% rename from src/qt/locale/bitcoin_mr.ts rename to src/qt/locale/vincoin_mr.ts diff --git a/src/qt/locale/bitcoin_mr_IN.ts b/src/qt/locale/vincoin_mr_IN.ts similarity index 100% rename from src/qt/locale/bitcoin_mr_IN.ts rename to src/qt/locale/vincoin_mr_IN.ts diff --git a/src/qt/locale/bitcoin_ms.ts b/src/qt/locale/vincoin_ms.ts similarity index 100% rename from src/qt/locale/bitcoin_ms.ts rename to src/qt/locale/vincoin_ms.ts diff --git a/src/qt/locale/bitcoin_mt.ts b/src/qt/locale/vincoin_mt.ts similarity index 100% rename from src/qt/locale/bitcoin_mt.ts rename to src/qt/locale/vincoin_mt.ts diff --git a/src/qt/locale/bitcoin_my.ts b/src/qt/locale/vincoin_my.ts similarity index 100% rename from src/qt/locale/bitcoin_my.ts rename to src/qt/locale/vincoin_my.ts diff --git a/src/qt/locale/bitcoin_nb.ts b/src/qt/locale/vincoin_nb.ts similarity index 100% rename from src/qt/locale/bitcoin_nb.ts rename to src/qt/locale/vincoin_nb.ts diff --git a/src/qt/locale/bitcoin_ne.ts b/src/qt/locale/vincoin_ne.ts similarity index 100% rename from src/qt/locale/bitcoin_ne.ts rename to src/qt/locale/vincoin_ne.ts diff --git a/src/qt/locale/bitcoin_nl.ts b/src/qt/locale/vincoin_nl.ts similarity index 100% rename from src/qt/locale/bitcoin_nl.ts rename to src/qt/locale/vincoin_nl.ts diff --git a/src/qt/locale/bitcoin_no.ts b/src/qt/locale/vincoin_no.ts similarity index 100% rename from src/qt/locale/bitcoin_no.ts rename to src/qt/locale/vincoin_no.ts diff --git a/src/qt/locale/bitcoin_pa.ts b/src/qt/locale/vincoin_pa.ts similarity index 100% rename from src/qt/locale/bitcoin_pa.ts rename to src/qt/locale/vincoin_pa.ts diff --git a/src/qt/locale/bitcoin_pam.ts b/src/qt/locale/vincoin_pam.ts similarity index 100% rename from src/qt/locale/bitcoin_pam.ts rename to src/qt/locale/vincoin_pam.ts diff --git a/src/qt/locale/bitcoin_pl.ts b/src/qt/locale/vincoin_pl.ts similarity index 100% rename from src/qt/locale/bitcoin_pl.ts rename to src/qt/locale/vincoin_pl.ts diff --git a/src/qt/locale/bitcoin_pt.ts b/src/qt/locale/vincoin_pt.ts similarity index 100% rename from src/qt/locale/bitcoin_pt.ts rename to src/qt/locale/vincoin_pt.ts diff --git a/src/qt/locale/bitcoin_pt_BR.ts b/src/qt/locale/vincoin_pt_BR.ts similarity index 100% rename from src/qt/locale/bitcoin_pt_BR.ts rename to src/qt/locale/vincoin_pt_BR.ts diff --git a/src/qt/locale/bitcoin_ro.ts b/src/qt/locale/vincoin_ro.ts similarity index 100% rename from src/qt/locale/bitcoin_ro.ts rename to src/qt/locale/vincoin_ro.ts diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/vincoin_ru.ts similarity index 100% rename from src/qt/locale/bitcoin_ru.ts rename to src/qt/locale/vincoin_ru.ts diff --git a/src/qt/locale/bitcoin_ru_RU.ts b/src/qt/locale/vincoin_ru_RU.ts similarity index 100% rename from src/qt/locale/bitcoin_ru_RU.ts rename to src/qt/locale/vincoin_ru_RU.ts diff --git a/src/qt/locale/bitcoin_sc.ts b/src/qt/locale/vincoin_sc.ts similarity index 100% rename from src/qt/locale/bitcoin_sc.ts rename to src/qt/locale/vincoin_sc.ts diff --git a/src/qt/locale/bitcoin_sd.ts b/src/qt/locale/vincoin_sd.ts similarity index 100% rename from src/qt/locale/bitcoin_sd.ts rename to src/qt/locale/vincoin_sd.ts diff --git a/src/qt/locale/bitcoin_si.ts b/src/qt/locale/vincoin_si.ts similarity index 100% rename from src/qt/locale/bitcoin_si.ts rename to src/qt/locale/vincoin_si.ts diff --git a/src/qt/locale/bitcoin_sk.ts b/src/qt/locale/vincoin_sk.ts similarity index 100% rename from src/qt/locale/bitcoin_sk.ts rename to src/qt/locale/vincoin_sk.ts diff --git a/src/qt/locale/bitcoin_sl.ts b/src/qt/locale/vincoin_sl.ts similarity index 100% rename from src/qt/locale/bitcoin_sl.ts rename to src/qt/locale/vincoin_sl.ts diff --git a/src/qt/locale/bitcoin_sn.ts b/src/qt/locale/vincoin_sn.ts similarity index 100% rename from src/qt/locale/bitcoin_sn.ts rename to src/qt/locale/vincoin_sn.ts diff --git a/src/qt/locale/bitcoin_so.ts b/src/qt/locale/vincoin_so.ts similarity index 100% rename from src/qt/locale/bitcoin_so.ts rename to src/qt/locale/vincoin_so.ts diff --git a/src/qt/locale/bitcoin_sq.ts b/src/qt/locale/vincoin_sq.ts similarity index 100% rename from src/qt/locale/bitcoin_sq.ts rename to src/qt/locale/vincoin_sq.ts diff --git a/src/qt/locale/bitcoin_sr.ts b/src/qt/locale/vincoin_sr.ts similarity index 100% rename from src/qt/locale/bitcoin_sr.ts rename to src/qt/locale/vincoin_sr.ts diff --git a/src/qt/locale/bitcoin_sr@ijekavianlatin.ts b/src/qt/locale/vincoin_sr@ijekavianlatin.ts similarity index 100% rename from src/qt/locale/bitcoin_sr@ijekavianlatin.ts rename to src/qt/locale/vincoin_sr@ijekavianlatin.ts diff --git a/src/qt/locale/bitcoin_sr@latin.ts b/src/qt/locale/vincoin_sr@latin.ts similarity index 100% rename from src/qt/locale/bitcoin_sr@latin.ts rename to src/qt/locale/vincoin_sr@latin.ts diff --git a/src/qt/locale/bitcoin_sv.ts b/src/qt/locale/vincoin_sv.ts similarity index 100% rename from src/qt/locale/bitcoin_sv.ts rename to src/qt/locale/vincoin_sv.ts diff --git a/src/qt/locale/bitcoin_sw.ts b/src/qt/locale/vincoin_sw.ts similarity index 100% rename from src/qt/locale/bitcoin_sw.ts rename to src/qt/locale/vincoin_sw.ts diff --git a/src/qt/locale/bitcoin_szl.ts b/src/qt/locale/vincoin_szl.ts similarity index 100% rename from src/qt/locale/bitcoin_szl.ts rename to src/qt/locale/vincoin_szl.ts diff --git a/src/qt/locale/bitcoin_ta.ts b/src/qt/locale/vincoin_ta.ts similarity index 100% rename from src/qt/locale/bitcoin_ta.ts rename to src/qt/locale/vincoin_ta.ts diff --git a/src/qt/locale/bitcoin_te.ts b/src/qt/locale/vincoin_te.ts similarity index 100% rename from src/qt/locale/bitcoin_te.ts rename to src/qt/locale/vincoin_te.ts diff --git a/src/qt/locale/bitcoin_th.ts b/src/qt/locale/vincoin_th.ts similarity index 100% rename from src/qt/locale/bitcoin_th.ts rename to src/qt/locale/vincoin_th.ts diff --git a/src/qt/locale/bitcoin_tk.ts b/src/qt/locale/vincoin_tk.ts similarity index 100% rename from src/qt/locale/bitcoin_tk.ts rename to src/qt/locale/vincoin_tk.ts diff --git a/src/qt/locale/bitcoin_tl.ts b/src/qt/locale/vincoin_tl.ts similarity index 100% rename from src/qt/locale/bitcoin_tl.ts rename to src/qt/locale/vincoin_tl.ts diff --git a/src/qt/locale/bitcoin_tr.ts b/src/qt/locale/vincoin_tr.ts similarity index 100% rename from src/qt/locale/bitcoin_tr.ts rename to src/qt/locale/vincoin_tr.ts diff --git a/src/qt/locale/bitcoin_ug.ts b/src/qt/locale/vincoin_ug.ts similarity index 100% rename from src/qt/locale/bitcoin_ug.ts rename to src/qt/locale/vincoin_ug.ts diff --git a/src/qt/locale/bitcoin_uk.ts b/src/qt/locale/vincoin_uk.ts similarity index 100% rename from src/qt/locale/bitcoin_uk.ts rename to src/qt/locale/vincoin_uk.ts diff --git a/src/qt/locale/bitcoin_ur.ts b/src/qt/locale/vincoin_ur.ts similarity index 100% rename from src/qt/locale/bitcoin_ur.ts rename to src/qt/locale/vincoin_ur.ts diff --git a/src/qt/locale/bitcoin_uz.ts b/src/qt/locale/vincoin_uz.ts similarity index 100% rename from src/qt/locale/bitcoin_uz.ts rename to src/qt/locale/vincoin_uz.ts diff --git a/src/qt/locale/bitcoin_uz@Cyrl.ts b/src/qt/locale/vincoin_uz@Cyrl.ts similarity index 100% rename from src/qt/locale/bitcoin_uz@Cyrl.ts rename to src/qt/locale/vincoin_uz@Cyrl.ts diff --git a/src/qt/locale/bitcoin_uz@Latn.ts b/src/qt/locale/vincoin_uz@Latn.ts similarity index 100% rename from src/qt/locale/bitcoin_uz@Latn.ts rename to src/qt/locale/vincoin_uz@Latn.ts diff --git a/src/qt/locale/bitcoin_vi.ts b/src/qt/locale/vincoin_vi.ts similarity index 100% rename from src/qt/locale/bitcoin_vi.ts rename to src/qt/locale/vincoin_vi.ts diff --git a/src/qt/locale/bitcoin_yo.ts b/src/qt/locale/vincoin_yo.ts similarity index 100% rename from src/qt/locale/bitcoin_yo.ts rename to src/qt/locale/vincoin_yo.ts diff --git a/src/qt/locale/bitcoin_yue.ts b/src/qt/locale/vincoin_yue.ts similarity index 100% rename from src/qt/locale/bitcoin_yue.ts rename to src/qt/locale/vincoin_yue.ts diff --git a/src/qt/locale/bitcoin_zh-Hans.ts b/src/qt/locale/vincoin_zh-Hans.ts similarity index 100% rename from src/qt/locale/bitcoin_zh-Hans.ts rename to src/qt/locale/vincoin_zh-Hans.ts diff --git a/src/qt/locale/bitcoin_zh-Hant.ts b/src/qt/locale/vincoin_zh-Hant.ts similarity index 100% rename from src/qt/locale/bitcoin_zh-Hant.ts rename to src/qt/locale/vincoin_zh-Hant.ts diff --git a/src/qt/locale/bitcoin_zh.ts b/src/qt/locale/vincoin_zh.ts similarity index 100% rename from src/qt/locale/bitcoin_zh.ts rename to src/qt/locale/vincoin_zh.ts diff --git a/src/qt/locale/bitcoin_zh_CN.ts b/src/qt/locale/vincoin_zh_CN.ts similarity index 100% rename from src/qt/locale/bitcoin_zh_CN.ts rename to src/qt/locale/vincoin_zh_CN.ts diff --git a/src/qt/locale/bitcoin_zh_HK.ts b/src/qt/locale/vincoin_zh_HK.ts similarity index 100% rename from src/qt/locale/bitcoin_zh_HK.ts rename to src/qt/locale/vincoin_zh_HK.ts diff --git a/src/qt/locale/bitcoin_zh_TW.ts b/src/qt/locale/vincoin_zh_TW.ts similarity index 100% rename from src/qt/locale/bitcoin_zh_TW.ts rename to src/qt/locale/vincoin_zh_TW.ts diff --git a/src/qt/locale/bitcoin_zu.ts b/src/qt/locale/vincoin_zu.ts similarity index 100% rename from src/qt/locale/bitcoin_zu.ts rename to src/qt/locale/vincoin_zu.ts diff --git a/src/qt/res/icons/bitcoin.icns b/src/qt/res/icons/vincoin.icns similarity index 100% rename from src/qt/res/icons/bitcoin.icns rename to src/qt/res/icons/vincoin.icns diff --git a/src/qt/res/icons/bitcoin.ico b/src/qt/res/icons/vincoin.ico similarity index 100% rename from src/qt/res/icons/bitcoin.ico rename to src/qt/res/icons/vincoin.ico diff --git a/src/qt/res/icons/bitcoin.png b/src/qt/res/icons/vincoin.png similarity index 100% rename from src/qt/res/icons/bitcoin.png rename to src/qt/res/icons/vincoin.png diff --git a/src/qt/res/icons/bitcoin_testnet.ico b/src/qt/res/icons/vincoin_testnet.ico similarity index 100% rename from src/qt/res/icons/bitcoin_testnet.ico rename to src/qt/res/icons/vincoin_testnet.ico diff --git a/src/qt/res/src/bitcoin.svg b/src/qt/res/src/vincoin.svg similarity index 100% rename from src/qt/res/src/bitcoin.svg rename to src/qt/res/src/vincoin.svg diff --git a/src/qt/res/bitcoin-qt-res.rc b/src/qt/res/vincoin-qt-res.rc similarity index 100% rename from src/qt/res/bitcoin-qt-res.rc rename to src/qt/res/vincoin-qt-res.rc diff --git a/src/qt/bitcoin.cpp b/src/qt/vincoin.cpp similarity index 100% rename from src/qt/bitcoin.cpp rename to src/qt/vincoin.cpp diff --git a/src/qt/bitcoin.h b/src/qt/vincoin.h similarity index 100% rename from src/qt/bitcoin.h rename to src/qt/vincoin.h diff --git a/src/qt/bitcoin.qrc b/src/qt/vincoin.qrc similarity index 100% rename from src/qt/bitcoin.qrc rename to src/qt/vincoin.qrc diff --git a/src/qt/bitcoin_locale.qrc b/src/qt/vincoin_locale.qrc similarity index 100% rename from src/qt/bitcoin_locale.qrc rename to src/qt/vincoin_locale.qrc diff --git a/src/qt/bitcoinaddressvalidator.cpp b/src/qt/vincoinaddressvalidator.cpp similarity index 100% rename from src/qt/bitcoinaddressvalidator.cpp rename to src/qt/vincoinaddressvalidator.cpp diff --git a/src/qt/bitcoinaddressvalidator.h b/src/qt/vincoinaddressvalidator.h similarity index 100% rename from src/qt/bitcoinaddressvalidator.h rename to src/qt/vincoinaddressvalidator.h diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/vincoinamountfield.cpp similarity index 100% rename from src/qt/bitcoinamountfield.cpp rename to src/qt/vincoinamountfield.cpp diff --git a/src/qt/bitcoinamountfield.h b/src/qt/vincoinamountfield.h similarity index 100% rename from src/qt/bitcoinamountfield.h rename to src/qt/vincoinamountfield.h diff --git a/src/qt/bitcoingui.cpp b/src/qt/vincoingui.cpp similarity index 100% rename from src/qt/bitcoingui.cpp rename to src/qt/vincoingui.cpp diff --git a/src/qt/bitcoingui.h b/src/qt/vincoingui.h similarity index 100% rename from src/qt/bitcoingui.h rename to src/qt/vincoingui.h diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/vincoinstrings.cpp similarity index 100% rename from src/qt/bitcoinstrings.cpp rename to src/qt/vincoinstrings.cpp diff --git a/src/qt/bitcoinunits.cpp b/src/qt/vincoinunits.cpp similarity index 100% rename from src/qt/bitcoinunits.cpp rename to src/qt/vincoinunits.cpp diff --git a/src/qt/bitcoinunits.h b/src/qt/vincoinunits.h similarity index 100% rename from src/qt/bitcoinunits.h rename to src/qt/vincoinunits.h diff --git a/src/script/bitcoinconsensus.cpp b/src/script/vincoinconsensus.cpp similarity index 100% rename from src/script/bitcoinconsensus.cpp rename to src/script/vincoinconsensus.cpp diff --git a/src/script/bitcoinconsensus.h b/src/script/vincoinconsensus.h similarity index 100% rename from src/script/bitcoinconsensus.h rename to src/script/vincoinconsensus.h diff --git a/src/secp256k1/build-aux/m4/bitcoin_secp.m4 b/src/secp256k1/build-aux/m4/vincoin_secp.m4 similarity index 100% rename from src/secp256k1/build-aux/m4/bitcoin_secp.m4 rename to src/secp256k1/build-aux/m4/vincoin_secp.m4 diff --git a/src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h b/src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_vincoin_test.h similarity index 100% rename from src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h rename to src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_vincoin_test.h diff --git a/src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json b/src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_vincoin_test.json similarity index 100% rename from src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json rename to src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_vincoin_test.json diff --git a/src/test/fuzz/script_bitcoin_consensus.cpp b/src/test/fuzz/script_vincoin_consensus.cpp similarity index 100% rename from src/test/fuzz/script_bitcoin_consensus.cpp rename to src/test/fuzz/script_vincoin_consensus.cpp diff --git a/src/bitcoin-chainstate.cpp b/src/vincoin-chainstate.cpp similarity index 100% rename from src/bitcoin-chainstate.cpp rename to src/vincoin-chainstate.cpp diff --git a/src/bitcoin-cli-res.rc b/src/vincoin-cli-res.rc similarity index 100% rename from src/bitcoin-cli-res.rc rename to src/vincoin-cli-res.rc diff --git a/src/bitcoin-cli.cpp b/src/vincoin-cli.cpp similarity index 100% rename from src/bitcoin-cli.cpp rename to src/vincoin-cli.cpp diff --git a/src/bitcoin-tx-res.rc b/src/vincoin-tx-res.rc similarity index 100% rename from src/bitcoin-tx-res.rc rename to src/vincoin-tx-res.rc diff --git a/src/bitcoin-tx.cpp b/src/vincoin-tx.cpp similarity index 100% rename from src/bitcoin-tx.cpp rename to src/vincoin-tx.cpp diff --git a/src/bitcoin-util-res.rc b/src/vincoin-util-res.rc similarity index 100% rename from src/bitcoin-util-res.rc rename to src/vincoin-util-res.rc diff --git a/src/bitcoin-util.cpp b/src/vincoin-util.cpp similarity index 100% rename from src/bitcoin-util.cpp rename to src/vincoin-util.cpp diff --git a/src/bitcoin-wallet-res.rc b/src/vincoin-wallet-res.rc similarity index 100% rename from src/bitcoin-wallet-res.rc rename to src/vincoin-wallet-res.rc diff --git a/src/bitcoin-wallet.cpp b/src/vincoin-wallet.cpp similarity index 100% rename from src/bitcoin-wallet.cpp rename to src/vincoin-wallet.cpp diff --git a/src/bitcoind-res.rc b/src/vincoind-res.rc similarity index 100% rename from src/bitcoind-res.rc rename to src/vincoind-res.rc diff --git a/src/bitcoind.cpp b/src/vincoind.cpp similarity index 100% rename from src/bitcoind.cpp rename to src/vincoind.cpp diff --git a/test/functional/interface_bitcoin_cli.py b/test/functional/interface_vincoin_cli.py similarity index 100% rename from test/functional/interface_bitcoin_cli.py rename to test/functional/interface_vincoin_cli.py diff --git a/test/util/data/bitcoin-util-test.json b/test/util/data/vincoin-util-test.json similarity index 100% rename from test/util/data/bitcoin-util-test.json rename to test/util/data/vincoin-util-test.json From 7fb5261e264d74902ecce1aa962c740e58917319 Mon Sep 17 00:00:00 2001 From: fkolakovic Date: Sat, 4 May 2024 12:05:22 +0200 Subject: [PATCH 3/5] Rename bitcoin occurrences to vincoin in filenames #1 --- .cirrus.yml | 12 +- .github/ISSUE_TEMPLATE/bug.yml | 14 +- .github/ISSUE_TEMPLATE/config.yml | 10 +- .github/ISSUE_TEMPLATE/good_first_issue.yml | 6 +- .github/ISSUE_TEMPLATE/gui_issue.yml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 8 +- .github/workflows/ci.yml | 12 +- .gitignore | 46 +- .tx/config | 6 +- CONTRIBUTING.md | 54 +-- COPYING | 4 +- Makefile.am | 50 +- README.md | 8 +- SECURITY.md | 6 +- autogen.sh | 2 +- build-aux/m4/vincoin_find_bdb48.m4 | 2 +- build-aux/m4/vincoin_qt.m4 | 60 +-- build-aux/m4/vincoin_subdir_to_include.m4 | 2 +- build_msvc/.gitignore | 24 +- build_msvc/README.md | 20 +- .../bench_vincoin/bench_vincoin.vcxproj.in | 14 +- .../libvincoin_consensus.vcxproj | 2 +- .../libvincoin_qt/libvincoin_qt.vcxproj | 50 +- build_msvc/msvc-autogen.py | 30 +- .../test_vincoin-qt/test_vincoin-qt.vcxproj | 30 +- build_msvc/test_vincoin/test_vincoin.vcxproj | 16 +- build_msvc/vcpkg.json | 2 +- build_msvc/vincoin-cli/vincoin-cli.vcxproj | 10 +- build_msvc/vincoin-qt/vincoin-qt.vcxproj | 22 +- build_msvc/vincoin-tx/vincoin-tx.vcxproj | 10 +- build_msvc/vincoin-util/vincoin-util.vcxproj | 10 +- .../vincoin-wallet/vincoin-wallet.vcxproj | 18 +- build_msvc/vincoin.sln | 38 +- build_msvc/vincoin_config.h.in | 12 +- build_msvc/vincoind/vincoind.vcxproj | 24 +- ci/lint/04_install.sh | 2 +- ci/lint/06_script.sh | 4 +- ci/lint/container-entrypoint.sh | 6 +- ci/lint_imagefile | 4 +- ci/lint_run_all.sh | 2 +- ci/test/00_setup_env.sh | 2 +- ci/test/00_setup_env_android.sh | 2 +- ci/test/00_setup_env_arm.sh | 2 +- ci/test/00_setup_env_i686_centos.sh | 2 +- ci/test/00_setup_env_i686_multiprocess.sh | 4 +- ci/test/00_setup_env_mac_cross.sh | 4 +- ci/test/00_setup_env_mac_native.sh | 2 +- ci/test/00_setup_env_native_asan.sh | 2 +- ci/test/00_setup_env_native_fuzz.sh | 2 +- ci/test/00_setup_env_native_fuzz_with_msan.sh | 2 +- .../00_setup_env_native_fuzz_with_valgrind.sh | 2 +- ci/test/00_setup_env_native_msan.sh | 2 +- ...up_env_native_nowallet_libvincoinkernel.sh | 4 +- .../00_setup_env_native_previous_releases.sh | 2 +- ci/test/00_setup_env_native_tidy.sh | 2 +- ci/test/00_setup_env_native_tsan.sh | 2 +- ci/test/00_setup_env_native_valgrind.sh | 4 +- ci/test/00_setup_env_s390x.sh | 4 +- ci/test/00_setup_env_win64.sh | 2 +- ci/test/01_base_install.sh | 2 +- ci/test/02_run_container.sh | 4 +- ci/test/03_test_script.sh | 28 +- ci/test/wrap-valgrind.sh | 2 +- ci/test/wrap-wine.sh | 2 +- ci/test_imagefile | 2 +- ci/test_run_all.sh | 2 +- configure.ac | 190 ++++---- contrib/README.md | 10 +- contrib/completions/bash/vincoin-cli.bash | 26 +- contrib/completions/bash/vincoin-tx.bash | 20 +- contrib/completions/bash/vincoind.bash | 16 +- contrib/completions/fish/vincoin-cli.fish | 38 +- contrib/completions/fish/vincoin-qt.fish | 14 +- contrib/completions/fish/vincoin-tx.fish | 20 +- contrib/completions/fish/vincoin-util.fish | 18 +- contrib/completions/fish/vincoin-wallet.fish | 20 +- contrib/completions/fish/vincoind.fish | 14 +- contrib/debian/copyright | 18 +- contrib/devtools/README.md | 32 +- contrib/devtools/circular-dependencies.py | 2 +- contrib/devtools/copyright_header.py | 36 +- contrib/devtools/gen-manpages.py | 14 +- contrib/devtools/gen-vincoin-conf.sh | 16 +- contrib/devtools/headerssync-params.py | 2 +- contrib/devtools/security-check.py | 2 +- contrib/devtools/symbol-check.py | 12 +- contrib/devtools/test-security-check.py | 2 +- contrib/devtools/test-symbol-check.py | 2 +- .../devtools/test_deterministic_coverage.sh | 4 +- contrib/devtools/test_utxo_snapshots.sh | 24 +- contrib/devtools/utils.py | 2 +- contrib/devtools/utxo_snapshot.sh | 8 +- contrib/devtools/vincoin-tidy/CMakeLists.txt | 34 +- contrib/devtools/vincoin-tidy/README | 4 +- .../vincoin-tidy/example_logprintf.cpp | 6 +- contrib/devtools/vincoin-tidy/logprintf.cpp | 6 +- contrib/devtools/vincoin-tidy/logprintf.h | 6 +- .../devtools/vincoin-tidy/vincoin-tidy.cpp | 12 +- contrib/filter-lcov.py | 2 +- contrib/guix/INSTALL.md | 2 +- contrib/guix/README.md | 12 +- contrib/guix/guix-attest | 6 +- contrib/guix/guix-build | 24 +- contrib/guix/guix-clean | 2 +- contrib/guix/guix-codesign | 22 +- contrib/guix/guix-verify | 2 +- contrib/guix/libexec/build.sh | 12 +- contrib/guix/libexec/codesign.sh | 4 +- contrib/guix/libexec/prelude.bash | 2 +- contrib/guix/manifest.scm | 8 +- contrib/init/README.md | 12 +- contrib/init/vincoind.conf | 22 +- contrib/init/vincoind.init | 28 +- contrib/init/vincoind.openrc | 28 +- contrib/init/vincoind.openrcconf | 26 +- contrib/init/vincoind.service | 36 +- contrib/linearize/README.md | 6 +- contrib/linearize/example-linearize.cfg | 12 +- contrib/linearize/linearize-data.py | 2 +- contrib/linearize/linearize-hashes.py | 6 +- contrib/macdeploy/README.md | 6 +- contrib/macdeploy/detached-sig-create.sh | 6 +- contrib/macdeploy/gen-sdk | 2 +- contrib/macdeploy/macdeployqtplus | 8 +- .../message-capture/message-capture-docs.md | 6 +- .../message-capture/message-capture-parser.py | 2 +- contrib/qos/README.md | 4 +- contrib/qos/tc.sh | 4 +- contrib/seeds/README.md | 4 +- contrib/seeds/generate-seeds.py | 4 +- contrib/seeds/makeseeds.py | 8 +- contrib/signet/README.md | 12 +- contrib/signet/getcoins.py | 22 +- contrib/signet/miner | 10 +- contrib/testgen/README.md | 2 +- contrib/testgen/gen_key_io_test_vectors.py | 2 +- contrib/tracing/README.md | 28 +- contrib/tracing/connectblock_benchmark.bt | 14 +- contrib/tracing/log_p2p_traffic.bt | 4 +- contrib/tracing/log_raw_p2p_msgs.py | 16 +- contrib/tracing/log_utxocache_flush.py | 16 +- contrib/tracing/log_utxos.bt | 12 +- contrib/tracing/mempool_monitor.py | 20 +- contrib/tracing/p2p_monitor.py | 18 +- contrib/valgrind.supp | 6 +- contrib/verify-binaries/README.md | 12 +- contrib/verify-binaries/test.py | 6 +- contrib/verify-binaries/verify.py | 24 +- contrib/verify-commits/gpg.sh | 2 +- contrib/verify-commits/pre-push-hook.sh | 4 +- contrib/verify-commits/verify-commits.py | 4 +- contrib/windeploy/detached-sig-create.sh | 2 +- contrib/zmq/zmq_sub.py | 8 +- depends/Makefile | 2 +- depends/README.md | 4 +- depends/description.md | 2 +- depends/hosts/darwin.mk | 2 +- depends/packages.md | 4 +- depends/packages/miniupnpc.mk | 2 +- depends/packages/qt.mk | 18 +- depends/patches/qt/guix_cross_lib_path.patch | 2 +- ..._ASM_SECTION_AUTOGROUP_SUPPORT_check.patch | 2 +- doc/Doxyfile.in | 8 +- doc/JSON-RPC-interface.md | 44 +- doc/README.md | 36 +- doc/README_doxygen.md | 6 +- doc/README_windows.txt | 14 +- doc/REST-interface.md | 4 +- doc/assets-attribution.md | 2 +- doc/benchmarking.md | 16 +- doc/bips.md | 138 +++--- doc/build-android.md | 2 +- doc/build-freebsd.md | 20 +- doc/build-netbsd.md | 18 +- doc/build-openbsd.md | 22 +- doc/build-osx.md | 50 +- doc/build-unix.md | 28 +- doc/build-windows.md | 16 +- doc/cjdns.md | 34 +- doc/dependencies.md | 36 +- doc/descriptors.md | 22 +- doc/design/assumeutxo.md | 10 +- doc/design/libraries.md | 106 ++--- doc/design/multiprocess.md | 74 +-- doc/developer-notes.md | 110 ++--- doc/dnsseed-policy.md | 16 +- doc/external-signer.md | 32 +- doc/files.md | 40 +- doc/fuzzing.md | 86 ++-- doc/guix.md | 2 +- doc/i2p.md | 48 +- doc/init.md | 92 ++-- doc/man/Makefile.am | 12 +- doc/man/vincoin-cli.1 | 2 +- doc/man/vincoin-qt.1 | 2 +- doc/man/vincoin-tx.1 | 2 +- doc/man/vincoin-util.1 | 2 +- doc/man/vincoin-wallet.1 | 2 +- doc/man/vincoind.1 | 2 +- doc/managing-wallets.md | 40 +- doc/multiprocess.md | 14 +- doc/multisig-tutorial.md | 88 ++-- doc/offline-signing-tutorial.md | 36 +- doc/p2p-bad-ports.md | 18 +- doc/policy/mempool-limits.md | 4 +- doc/policy/mempool-replacements.md | 14 +- doc/productivity.md | 8 +- doc/psbt.md | 22 +- doc/reduce-memory.md | 12 +- doc/reduce-traffic.md | 4 +- doc/release-notes-29189.md | 4 +- doc/release-notes-empty-template.md | 24 +- doc/release-process.md | 104 ++-- doc/shared-libraries.md | 64 +-- doc/tor.md | 60 +-- doc/tracing.md | 28 +- doc/translation_process.md | 30 +- doc/translation_strings_policy.md | 10 +- doc/vincoin-conf.md | 22 +- doc/zmq.md | 20 +- libvincoinconsensus.pc.in | 4 +- share/examples/vincoin.conf | 2 +- share/genbuild.sh | 2 +- share/pixmaps/vincoin128.xpm | 2 +- share/pixmaps/vincoin16.xpm | 2 +- share/pixmaps/vincoin256.xpm | 2 +- share/pixmaps/vincoin32.xpm | 2 +- share/pixmaps/vincoin64.xpm | 2 +- share/qt/Info.plist.in | 12 +- share/qt/extract_strings_qt.py | 10 +- share/rpcauth/rpcauth.py | 4 +- share/setup.nsi.in | 14 +- src/.clang-tidy | 2 +- src/Makefile.am | 388 +++++++-------- src/Makefile.bench.include | 42 +- src/Makefile.crc32c.include | 2 +- src/Makefile.leveldb.include | 2 +- src/Makefile.qt.include | 156 +++--- src/Makefile.qt_locale.include | 248 +++++----- src/Makefile.qttest.include | 36 +- src/Makefile.test.include | 64 +-- src/Makefile.test_fuzz.include | 2 +- src/Makefile.test_util.include | 2 +- src/addrdb.cpp | 4 +- src/addrdb.h | 2 +- src/addresstype.cpp | 2 +- src/addresstype.h | 6 +- src/addrman.cpp | 8 +- src/addrman.h | 2 +- src/addrman_impl.h | 2 +- src/arith_uint256.cpp | 2 +- src/arith_uint256.h | 4 +- src/attributes.h | 2 +- src/banman.cpp | 2 +- src/banman.h | 2 +- src/base58.cpp | 2 +- src/base58.h | 2 +- src/bech32.cpp | 2 +- src/bech32.h | 2 +- src/bench/.gitignore | 2 +- src/bench/addrman.cpp | 2 +- src/bench/base58.cpp | 2 +- src/bench/bech32.cpp | 2 +- src/bench/bench.cpp | 2 +- src/bench/bench.h | 2 +- src/bench/bench_vincoin.cpp | 12 +- src/bench/bip324_ecdh.cpp | 2 +- src/bench/block_assemble.cpp | 2 +- src/bench/ccoins_caching.cpp | 4 +- src/bench/chacha20.cpp | 2 +- src/bench/checkblock.cpp | 2 +- src/bench/checkqueue.cpp | 2 +- src/bench/coin_selection.cpp | 4 +- src/bench/crypto_hash.cpp | 2 +- src/bench/data.cpp | 2 +- src/bench/data.h | 2 +- src/bench/descriptors.cpp | 2 +- src/bench/disconnected_transactions.cpp | 2 +- src/bench/duplicate_inputs.cpp | 2 +- src/bench/ellswift.cpp | 2 +- src/bench/examples.cpp | 2 +- src/bench/gcs_filter.cpp | 2 +- src/bench/hashpadding.cpp | 2 +- src/bench/load_external.cpp | 2 +- src/bench/lockedpool.cpp | 2 +- src/bench/logging.cpp | 2 +- src/bench/mempool_eviction.cpp | 2 +- src/bench/mempool_stress.cpp | 2 +- src/bench/merkle_root.cpp | 2 +- src/bench/nanobench.cpp | 2 +- src/bench/peer_eviction.cpp | 2 +- src/bench/poly1305.cpp | 2 +- src/bench/pool.cpp | 2 +- src/bench/prevector.cpp | 2 +- src/bench/readblock.cpp | 2 +- src/bench/rollingbloom.cpp | 2 +- src/bench/rpc_blockchain.cpp | 2 +- src/bench/rpc_mempool.cpp | 2 +- src/bench/streams_findbyte.cpp | 2 +- src/bench/strencodings.cpp | 2 +- src/bench/util_time.cpp | 2 +- src/bench/verify_script.cpp | 8 +- src/bench/wallet_balance.cpp | 2 +- src/bench/wallet_create.cpp | 4 +- src/bench/wallet_create_tx.cpp | 2 +- src/bench/wallet_ismine.cpp | 4 +- src/bench/wallet_loading.cpp | 4 +- src/bench/xor.cpp | 2 +- src/bip324.cpp | 4 +- src/bip324.h | 2 +- src/blockencodings.cpp | 2 +- src/blockencodings.h | 2 +- src/blockfilter.cpp | 2 +- src/blockfilter.h | 2 +- src/chain.cpp | 2 +- src/chain.h | 4 +- src/chainparams.cpp | 2 +- src/chainparams.h | 2 +- src/chainparamsbase.cpp | 2 +- src/chainparamsbase.h | 6 +- src/chainparamsseeds.h | 2 +- src/checkqueue.h | 2 +- src/clientversion.cpp | 16 +- src/clientversion.h | 8 +- src/coins.cpp | 2 +- src/coins.h | 4 +- src/common/args.cpp | 18 +- src/common/args.h | 2 +- src/common/bloom.cpp | 2 +- src/common/bloom.h | 2 +- src/common/config.cpp | 2 +- src/common/init.cpp | 8 +- src/common/init.h | 2 +- src/common/interfaces.cpp | 2 +- src/common/run_command.cpp | 4 +- src/common/run_command.h | 2 +- src/common/settings.cpp | 4 +- src/common/settings.h | 4 +- src/common/system.cpp | 4 +- src/common/system.h | 4 +- src/common/url.cpp | 2 +- src/common/url.h | 2 +- src/compat/assumptions.h | 2 +- src/compat/byteswap.h | 4 +- src/compat/compat.h | 4 +- src/compat/cpuid.h | 2 +- src/compat/endian.h | 6 +- src/compat/stdin.cpp | 2 +- src/compat/stdin.h | 2 +- src/compressor.cpp | 2 +- src/compressor.h | 2 +- src/consensus/amount.h | 4 +- src/consensus/consensus.h | 2 +- src/consensus/merkle.cpp | 2 +- src/consensus/merkle.h | 2 +- src/consensus/params.h | 4 +- src/consensus/tx_check.cpp | 2 +- src/consensus/tx_check.h | 4 +- src/consensus/tx_verify.cpp | 2 +- src/consensus/tx_verify.h | 2 +- src/consensus/validation.h | 2 +- src/core_io.h | 2 +- src/core_memusage.h | 2 +- src/core_read.cpp | 2 +- src/core_write.cpp | 2 +- src/crypto/aes.cpp | 2 +- src/crypto/aes.h | 2 +- src/crypto/chacha20.cpp | 2 +- src/crypto/chacha20.h | 2 +- src/crypto/chacha20poly1305.cpp | 4 +- src/crypto/chacha20poly1305.h | 2 +- src/crypto/common.h | 4 +- src/crypto/ctaes/README.md | 2 +- src/crypto/hkdf_sha256_32.cpp | 2 +- src/crypto/hkdf_sha256_32.h | 2 +- src/crypto/hmac_sha256.cpp | 2 +- src/crypto/hmac_sha256.h | 2 +- src/crypto/hmac_sha512.cpp | 2 +- src/crypto/hmac_sha512.h | 2 +- src/crypto/muhash.cpp | 2 +- src/crypto/muhash.h | 4 +- src/crypto/poly1305.cpp | 2 +- src/crypto/poly1305.h | 2 +- src/crypto/ripemd160.cpp | 2 +- src/crypto/ripemd160.h | 2 +- src/crypto/sha1.cpp | 2 +- src/crypto/sha1.h | 2 +- src/crypto/sha256.cpp | 4 +- src/crypto/sha256.h | 2 +- src/crypto/sha256_arm_shani.cpp | 2 +- src/crypto/sha256_avx2.cpp | 2 +- src/crypto/sha256_sse4.cpp | 2 +- src/crypto/sha256_sse41.cpp | 2 +- src/crypto/sha256_x86_shani.cpp | 2 +- src/crypto/sha3.cpp | 2 +- src/crypto/sha3.h | 2 +- src/crypto/sha512.cpp | 2 +- src/crypto/sha512.h | 2 +- src/crypto/siphash.cpp | 2 +- src/crypto/siphash.h | 2 +- src/dbwrapper.cpp | 10 +- src/dbwrapper.h | 2 +- src/deploymentinfo.cpp | 2 +- src/deploymentinfo.h | 2 +- src/deploymentstatus.cpp | 2 +- src/deploymentstatus.h | 2 +- src/dummywallet.cpp | 2 +- src/external_signer.cpp | 2 +- src/external_signer.h | 4 +- src/flatfile.cpp | 2 +- src/flatfile.h | 2 +- src/hash.cpp | 2 +- src/hash.h | 6 +- src/headerssync.cpp | 2 +- src/headerssync.h | 4 +- src/httprpc.cpp | 2 +- src/httprpc.h | 2 +- src/httpserver.cpp | 6 +- src/httpserver.h | 2 +- src/i2p.cpp | 2 +- src/i2p.h | 2 +- src/index/base.cpp | 4 +- src/index/base.h | 2 +- src/index/blockfilterindex.cpp | 2 +- src/index/blockfilterindex.h | 2 +- src/index/coinstatsindex.cpp | 2 +- src/index/coinstatsindex.h | 2 +- src/index/disktxpos.h | 2 +- src/index/txindex.cpp | 2 +- src/index/txindex.h | 2 +- src/indirectmap.h | 2 +- src/init.cpp | 16 +- src/init.h | 8 +- src/init/common.cpp | 4 +- src/init/common.h | 4 +- src/init/vincoin-gui.cpp | 10 +- src/init/vincoin-node.cpp | 12 +- src/init/vincoin-qt.cpp | 8 +- src/init/vincoin-wallet.cpp | 2 +- src/init/vincoind.cpp | 8 +- src/interfaces/README.md | 14 +- src/interfaces/chain.h | 8 +- src/interfaces/echo.h | 2 +- src/interfaces/handler.h | 2 +- src/interfaces/init.h | 4 +- src/interfaces/ipc.h | 2 +- src/interfaces/node.h | 6 +- src/interfaces/wallet.h | 2 +- src/ipc/capnp/common-types.h | 4 +- src/ipc/capnp/context.h | 2 +- src/ipc/capnp/echo.capnp | 2 +- src/ipc/capnp/init-types.h | 2 +- src/ipc/capnp/init.capnp | 2 +- src/ipc/capnp/protocol.cpp | 2 +- src/ipc/capnp/protocol.h | 2 +- src/ipc/context.h | 2 +- src/ipc/exception.h | 2 +- src/ipc/interfaces.cpp | 2 +- src/ipc/process.cpp | 2 +- src/ipc/process.h | 4 +- src/ipc/protocol.h | 2 +- src/kernel/blockmanager_opts.h | 2 +- src/kernel/chain.cpp | 2 +- src/kernel/chain.h | 2 +- src/kernel/chainparams.cpp | 20 +- src/kernel/chainparams.h | 4 +- src/kernel/chainstatemanager_opts.h | 2 +- src/kernel/checks.cpp | 2 +- src/kernel/checks.h | 2 +- src/kernel/coinstats.cpp | 2 +- src/kernel/coinstats.h | 2 +- src/kernel/context.cpp | 2 +- src/kernel/context.h | 4 +- src/kernel/cs_main.cpp | 2 +- src/kernel/cs_main.h | 2 +- src/kernel/disconnected_transactions.cpp | 2 +- src/kernel/disconnected_transactions.h | 2 +- src/kernel/mempool_entry.h | 2 +- src/kernel/mempool_limits.h | 2 +- src/kernel/mempool_options.h | 2 +- src/kernel/mempool_persist.cpp | 2 +- src/kernel/mempool_persist.h | 2 +- src/kernel/mempool_removal_reason.cpp | 2 +- src/kernel/mempool_removal_reason.h | 2 +- src/kernel/messagestartchars.h | 2 +- src/kernel/notifications_interface.h | 2 +- src/kernel/validation_cache_sizes.h | 2 +- src/kernel/vincoinkernel.cpp | 4 +- src/key.cpp | 4 +- src/key.h | 2 +- src/key_io.cpp | 4 +- src/key_io.h | 2 +- src/leveldb/util/env_posix.cc | 2 +- src/logging.cpp | 2 +- src/logging.h | 2 +- src/logging/timer.h | 2 +- src/mapport.cpp | 4 +- src/mapport.h | 2 +- src/memusage.h | 2 +- src/merkleblock.cpp | 2 +- src/merkleblock.h | 2 +- src/minisketch/README.md | 8 +- src/minisketch/autogen.sh | 2 +- src/net.cpp | 4 +- src/net.h | 4 +- src/net_permissions.cpp | 2 +- src/net_permissions.h | 2 +- src/net_processing.cpp | 10 +- src/net_processing.h | 2 +- src/net_types.cpp | 2 +- src/net_types.h | 2 +- src/netaddress.cpp | 2 +- src/netaddress.h | 8 +- src/netbase.cpp | 2 +- src/netbase.h | 2 +- src/netgroup.cpp | 2 +- src/netgroup.h | 2 +- src/netmessagemaker.h | 2 +- src/node/abort.cpp | 2 +- src/node/abort.h | 2 +- src/node/blockmanager_args.cpp | 2 +- src/node/blockmanager_args.h | 2 +- src/node/blockstorage.cpp | 2 +- src/node/blockstorage.h | 2 +- src/node/caches.cpp | 2 +- src/node/caches.h | 2 +- src/node/chainstate.cpp | 2 +- src/node/chainstate.h | 2 +- src/node/chainstatemanager_args.cpp | 2 +- src/node/chainstatemanager_args.h | 2 +- src/node/coin.cpp | 2 +- src/node/coin.h | 2 +- src/node/coins_view_args.cpp | 2 +- src/node/coins_view_args.h | 2 +- src/node/connection_types.cpp | 2 +- src/node/connection_types.h | 6 +- src/node/context.cpp | 2 +- src/node/context.h | 4 +- src/node/database_args.cpp | 2 +- src/node/database_args.h | 2 +- src/node/eviction.cpp | 2 +- src/node/eviction.h | 2 +- src/node/interface_ui.cpp | 2 +- src/node/interface_ui.h | 2 +- src/node/interfaces.cpp | 4 +- src/node/kernel_notifications.cpp | 4 +- src/node/kernel_notifications.h | 2 +- src/node/mempool_args.cpp | 2 +- src/node/mempool_args.h | 2 +- src/node/mempool_persist_args.cpp | 2 +- src/node/mempool_persist_args.h | 2 +- src/node/miner.cpp | 2 +- src/node/miner.h | 2 +- src/node/mini_miner.cpp | 2 +- src/node/mini_miner.h | 2 +- src/node/minisketchwrapper.cpp | 2 +- src/node/minisketchwrapper.h | 2 +- src/node/protocol_version.h | 2 +- src/node/psbt.cpp | 2 +- src/node/psbt.h | 2 +- src/node/transaction.cpp | 2 +- src/node/transaction.h | 2 +- src/node/txreconciliation.cpp | 2 +- src/node/txreconciliation.h | 2 +- src/node/utxo_snapshot.cpp | 2 +- src/node/utxo_snapshot.h | 2 +- src/node/validation_cache_args.cpp | 2 +- src/node/validation_cache_args.h | 2 +- src/noui.cpp | 2 +- src/noui.h | 6 +- src/outputtype.cpp | 2 +- src/outputtype.h | 2 +- src/policy/feerate.cpp | 2 +- src/policy/feerate.h | 2 +- src/policy/fees.cpp | 2 +- src/policy/fees.h | 2 +- src/policy/fees_args.cpp | 2 +- src/policy/fees_args.h | 2 +- src/policy/packages.cpp | 2 +- src/policy/packages.h | 2 +- src/policy/policy.cpp | 4 +- src/policy/policy.h | 2 +- src/policy/rbf.cpp | 2 +- src/policy/rbf.h | 2 +- src/policy/settings.cpp | 2 +- src/policy/settings.h | 2 +- src/policy/v3_policy.cpp | 2 +- src/policy/v3_policy.h | 2 +- src/pow.cpp | 2 +- src/pow.h | 2 +- src/prevector.h | 2 +- src/primitives/block.cpp | 2 +- src/primitives/block.h | 2 +- src/primitives/transaction.cpp | 2 +- src/primitives/transaction.h | 2 +- src/protocol.cpp | 2 +- src/protocol.h | 8 +- src/psbt.cpp | 2 +- src/psbt.h | 4 +- src/pubkey.cpp | 6 +- src/pubkey.h | 2 +- src/qt/Makefile | 12 +- src/qt/README.md | 28 +- src/qt/addressbookpage.cpp | 6 +- src/qt/addressbookpage.h | 2 +- src/qt/addresstablemodel.cpp | 4 +- src/qt/addresstablemodel.h | 4 +- src/qt/android/AndroidManifest.xml | 12 +- src/qt/android/res/values/libs.xml | 6 +- .../org/vincoincore/qt/VincoinQtActivity.java | 10 +- src/qt/askpassphrasedialog.cpp | 4 +- src/qt/askpassphrasedialog.h | 2 +- src/qt/bantablemodel.cpp | 2 +- src/qt/bantablemodel.h | 2 +- src/qt/clientmodel.cpp | 4 +- src/qt/clientmodel.h | 4 +- src/qt/coincontroldialog.cpp | 24 +- src/qt/coincontroldialog.h | 2 +- src/qt/coincontroltreewidget.cpp | 2 +- src/qt/coincontroltreewidget.h | 2 +- src/qt/createwalletdialog.cpp | 4 +- src/qt/createwalletdialog.h | 2 +- src/qt/csvmodelwriter.cpp | 2 +- src/qt/csvmodelwriter.h | 2 +- src/qt/editaddressdialog.cpp | 4 +- src/qt/editaddressdialog.h | 2 +- src/qt/forms/addressbookpage.ui | 10 +- src/qt/forms/debugwindow.ui | 10 +- src/qt/forms/helpmessagedialog.ui | 4 +- src/qt/forms/modaloverlay.ui | 4 +- src/qt/forms/openuridialog.ui | 6 +- src/qt/forms/optionsdialog.ui | 12 +- src/qt/forms/overviewpage.ui | 8 +- src/qt/forms/receivecoinsdialog.ui | 18 +- src/qt/forms/receiverequestdialog.ui | 2 +- src/qt/forms/sendcoinsdialog.ui | 16 +- src/qt/forms/sendcoinsentry.ui | 20 +- src/qt/forms/signverifymessagedialog.ui | 28 +- src/qt/guiconstants.h | 16 +- src/qt/guiutil.cpp | 54 +-- src/qt/guiutil.h | 14 +- src/qt/initexecutor.cpp | 2 +- src/qt/initexecutor.h | 4 +- src/qt/intro.cpp | 14 +- src/qt/intro.h | 2 +- src/qt/locale/vincoin_af.ts | 16 +- src/qt/locale/vincoin_am.ts | 16 +- src/qt/locale/vincoin_az.ts | 56 +-- src/qt/locale/vincoin_az@latin.ts | 56 +-- src/qt/locale/vincoin_be.ts | 18 +- src/qt/locale/vincoin_bg.ts | 72 +-- src/qt/locale/vincoin_bn.ts | 14 +- src/qt/locale/vincoin_br.ts | 8 +- src/qt/locale/vincoin_bs.ts | 88 ++-- src/qt/locale/vincoin_ca.ts | 172 +++---- src/qt/locale/vincoin_cmn.ts | 76 +-- src/qt/locale/vincoin_cs.ts | 174 +++---- src/qt/locale/vincoin_cy.ts | 24 +- src/qt/locale/vincoin_da.ts | 186 ++++---- src/qt/locale/vincoin_de.ts | 188 ++++---- src/qt/locale/vincoin_de_AT.ts | 164 +++---- src/qt/locale/vincoin_de_CH.ts | 164 +++---- src/qt/locale/vincoin_el.ts | 166 +++---- src/qt/locale/vincoin_en.ts | 124 ++--- src/qt/locale/vincoin_en.xlf | 102 ++-- src/qt/locale/vincoin_eo.ts | 40 +- src/qt/locale/vincoin_es.ts | 174 +++---- src/qt/locale/vincoin_es_CL.ts | 164 +++---- src/qt/locale/vincoin_es_CO.ts | 176 +++---- src/qt/locale/vincoin_es_DO.ts | 156 +++--- src/qt/locale/vincoin_es_MX.ts | 10 +- src/qt/locale/vincoin_es_SV.ts | 142 +++--- src/qt/locale/vincoin_es_VE.ts | 150 +++--- src/qt/locale/vincoin_et.ts | 72 +-- src/qt/locale/vincoin_eu.ts | 48 +- src/qt/locale/vincoin_fa.ts | 60 +-- src/qt/locale/vincoin_fi.ts | 182 +++---- src/qt/locale/vincoin_fil.ts | 130 ++--- src/qt/locale/vincoin_fo.ts | 44 +- src/qt/locale/vincoin_fr.ts | 176 +++---- src/qt/locale/vincoin_fr_CM.ts | 176 +++---- src/qt/locale/vincoin_fr_LU.ts | 176 +++---- src/qt/locale/vincoin_ga.ts | 156 +++--- src/qt/locale/vincoin_ga_IE.ts | 156 +++--- src/qt/locale/vincoin_gd.ts | 4 +- src/qt/locale/vincoin_gl.ts | 68 +-- src/qt/locale/vincoin_gl_ES.ts | 46 +- src/qt/locale/vincoin_gu.ts | 8 +- src/qt/locale/vincoin_ha.ts | 14 +- src/qt/locale/vincoin_hak.ts | 80 ++-- src/qt/locale/vincoin_he.ts | 94 ++-- src/qt/locale/vincoin_hi.ts | 52 +- src/qt/locale/vincoin_hr.ts | 174 +++---- src/qt/locale/vincoin_hu.ts | 170 +++---- src/qt/locale/vincoin_id.ts | 46 +- src/qt/locale/vincoin_is.ts | 32 +- src/qt/locale/vincoin_it.ts | 184 +++---- src/qt/locale/vincoin_ja.ts | 172 +++---- src/qt/locale/vincoin_ka.ts | 74 +-- src/qt/locale/vincoin_kk.ts | 34 +- src/qt/locale/vincoin_kk@latin.ts | 34 +- src/qt/locale/vincoin_kl.ts | 6 +- src/qt/locale/vincoin_km.ts | 68 +-- src/qt/locale/vincoin_kn.ts | 12 +- src/qt/locale/vincoin_ko.ts | 104 ++-- src/qt/locale/vincoin_ku.ts | 22 +- src/qt/locale/vincoin_ku_IQ.ts | 22 +- src/qt/locale/vincoin_ky.ts | 4 +- src/qt/locale/vincoin_la.ts | 44 +- src/qt/locale/vincoin_lb.ts | 16 +- src/qt/locale/vincoin_lt.ts | 126 ++--- src/qt/locale/vincoin_lv.ts | 48 +- src/qt/locale/vincoin_mg.ts | 8 +- src/qt/locale/vincoin_mi.ts | 18 +- src/qt/locale/vincoin_mk.ts | 34 +- src/qt/locale/vincoin_ml.ts | 42 +- src/qt/locale/vincoin_mn.ts | 14 +- src/qt/locale/vincoin_mr.ts | 10 +- src/qt/locale/vincoin_mr_IN.ts | 10 +- src/qt/locale/vincoin_ms.ts | 26 +- src/qt/locale/vincoin_mt.ts | 58 +-- src/qt/locale/vincoin_my.ts | 4 +- src/qt/locale/vincoin_nb.ts | 172 +++---- src/qt/locale/vincoin_ne.ts | 24 +- src/qt/locale/vincoin_nl.ts | 178 +++---- src/qt/locale/vincoin_no.ts | 8 +- src/qt/locale/vincoin_pa.ts | 14 +- src/qt/locale/vincoin_pam.ts | 34 +- src/qt/locale/vincoin_pl.ts | 154 +++--- src/qt/locale/vincoin_pt.ts | 168 +++---- src/qt/locale/vincoin_pt_BR.ts | 162 +++---- src/qt/locale/vincoin_ro.ts | 146 +++--- src/qt/locale/vincoin_ru.ts | 118 ++--- src/qt/locale/vincoin_ru_RU.ts | 152 +++--- src/qt/locale/vincoin_sc.ts | 8 +- src/qt/locale/vincoin_sd.ts | 6 +- src/qt/locale/vincoin_si.ts | 20 +- src/qt/locale/vincoin_sk.ts | 172 +++---- src/qt/locale/vincoin_sl.ts | 164 +++---- src/qt/locale/vincoin_sn.ts | 8 +- src/qt/locale/vincoin_so.ts | 14 +- src/qt/locale/vincoin_sq.ts | 16 +- src/qt/locale/vincoin_sr.ts | 92 ++-- src/qt/locale/vincoin_sr@ijekavianlatin.ts | 94 ++-- src/qt/locale/vincoin_sr@latin.ts | 100 ++-- src/qt/locale/vincoin_sv.ts | 174 +++---- src/qt/locale/vincoin_sw.ts | 36 +- src/qt/locale/vincoin_szl.ts | 78 +-- src/qt/locale/vincoin_ta.ts | 92 ++-- src/qt/locale/vincoin_te.ts | 56 +-- src/qt/locale/vincoin_th.ts | 20 +- src/qt/locale/vincoin_tk.ts | 62 +-- src/qt/locale/vincoin_tl.ts | 64 +-- src/qt/locale/vincoin_tr.ts | 160 +++---- src/qt/locale/vincoin_ug.ts | 12 +- src/qt/locale/vincoin_uk.ts | 108 ++--- src/qt/locale/vincoin_ur.ts | 52 +- src/qt/locale/vincoin_uz.ts | 64 +-- src/qt/locale/vincoin_uz@Cyrl.ts | 70 +-- src/qt/locale/vincoin_uz@Latn.ts | 62 +-- src/qt/locale/vincoin_vi.ts | 50 +- src/qt/locale/vincoin_yo.ts | 4 +- src/qt/locale/vincoin_yue.ts | 80 ++-- src/qt/locale/vincoin_zh-Hans.ts | 106 ++--- src/qt/locale/vincoin_zh-Hant.ts | 80 ++-- src/qt/locale/vincoin_zh.ts | 26 +- src/qt/locale/vincoin_zh_CN.ts | 106 ++--- src/qt/locale/vincoin_zh_HK.ts | 92 ++-- src/qt/locale/vincoin_zh_TW.ts | 110 ++--- src/qt/locale/vincoin_zu.ts | 12 +- src/qt/macdockiconhandler.h | 2 +- src/qt/macdockiconhandler.mm | 2 +- src/qt/macnotificationhandler.h | 2 +- src/qt/macnotificationhandler.mm | 4 +- src/qt/macos_appnap.h | 2 +- src/qt/macos_appnap.mm | 4 +- src/qt/main.cpp | 6 +- src/qt/modaloverlay.cpp | 4 +- src/qt/modaloverlay.h | 2 +- src/qt/networkstyle.cpp | 4 +- src/qt/networkstyle.h | 2 +- src/qt/notificator.cpp | 4 +- src/qt/notificator.h | 4 +- src/qt/openuridialog.cpp | 4 +- src/qt/openuridialog.h | 2 +- src/qt/optionsdialog.cpp | 24 +- src/qt/optionsdialog.h | 4 +- src/qt/optionsmodel.cpp | 50 +- src/qt/optionsmodel.h | 14 +- src/qt/overviewpage.cpp | 42 +- src/qt/overviewpage.h | 2 +- src/qt/paymentserver.cpp | 26 +- src/qt/paymentserver.h | 4 +- src/qt/peertablemodel.cpp | 2 +- src/qt/peertablemodel.h | 2 +- src/qt/peertablesortproxy.cpp | 2 +- src/qt/peertablesortproxy.h | 2 +- src/qt/platformstyle.cpp | 2 +- src/qt/platformstyle.h | 2 +- src/qt/psbtoperationsdialog.cpp | 16 +- src/qt/psbtoperationsdialog.h | 2 +- src/qt/qrimagewidget.cpp | 4 +- src/qt/qrimagewidget.h | 2 +- src/qt/qvalidatedlineedit.cpp | 4 +- src/qt/qvalidatedlineedit.h | 2 +- src/qt/qvaluecombobox.cpp | 2 +- src/qt/qvaluecombobox.h | 2 +- src/qt/receivecoinsdialog.cpp | 4 +- src/qt/receivecoinsdialog.h | 4 +- src/qt/receiverequestdialog.cpp | 12 +- src/qt/receiverequestdialog.h | 2 +- src/qt/recentrequeststablemodel.cpp | 10 +- src/qt/recentrequeststablemodel.h | 4 +- src/qt/res/animation/makespinner.sh | 2 +- src/qt/res/src/vincoin.svg | 2 +- src/qt/res/vincoin-qt-res.rc | 12 +- src/qt/rpcconsole.cpp | 4 +- src/qt/rpcconsole.h | 6 +- src/qt/sendcoinsdialog.cpp | 38 +- src/qt/sendcoinsdialog.h | 4 +- src/qt/sendcoinsentry.cpp | 4 +- src/qt/sendcoinsentry.h | 4 +- src/qt/sendcoinsrecipient.h | 2 +- src/qt/signverifymessagedialog.cpp | 2 +- src/qt/signverifymessagedialog.h | 2 +- src/qt/splashscreen.cpp | 6 +- src/qt/splashscreen.h | 4 +- src/qt/test/Makefile | 6 +- src/qt/test/addressbooktests.cpp | 4 +- src/qt/test/addressbooktests.h | 2 +- src/qt/test/apptests.cpp | 18 +- src/qt/test/apptests.h | 14 +- src/qt/test/optiontests.cpp | 16 +- src/qt/test/optiontests.h | 2 +- src/qt/test/rpcnestedtests.cpp | 2 +- src/qt/test/rpcnestedtests.h | 2 +- src/qt/test/test_main.cpp | 10 +- src/qt/test/uritests.cpp | 60 +-- src/qt/test/uritests.h | 2 +- src/qt/test/util.cpp | 2 +- src/qt/test/util.h | 2 +- src/qt/test/wallettests.cpp | 24 +- src/qt/test/wallettests.h | 2 +- src/qt/trafficgraphwidget.cpp | 2 +- src/qt/trafficgraphwidget.h | 2 +- src/qt/transactiondesc.cpp | 34 +- src/qt/transactiondesc.h | 6 +- src/qt/transactiondescdialog.cpp | 2 +- src/qt/transactiondescdialog.h | 2 +- src/qt/transactionfilterproxy.cpp | 2 +- src/qt/transactionfilterproxy.h | 2 +- src/qt/transactionoverviewwidget.cpp | 2 +- src/qt/transactionoverviewwidget.h | 2 +- src/qt/transactionrecord.cpp | 8 +- src/qt/transactionrecord.h | 2 +- src/qt/transactiontablemodel.cpp | 20 +- src/qt/transactiontablemodel.h | 6 +- src/qt/transactionview.cpp | 8 +- src/qt/transactionview.h | 2 +- src/qt/utilitydialog.cpp | 8 +- src/qt/utilitydialog.h | 2 +- src/qt/vincoin.cpp | 94 ++-- src/qt/vincoin.h | 20 +- src/qt/vincoin.qrc | 2 +- src/qt/vincoin_locale.qrc | 248 +++++----- src/qt/vincoinaddressvalidator.cpp | 14 +- src/qt/vincoinaddressvalidator.h | 12 +- src/qt/vincoinamountfield.cpp | 68 +-- src/qt/vincoinamountfield.h | 14 +- src/qt/vincoingui.cpp | 244 +++++----- src/qt/vincoingui.h | 22 +- src/qt/vincoinstrings.cpp | 450 +++++++++--------- src/qt/vincoinunits.cpp | 68 +-- src/qt/vincoinunits.h | 18 +- src/qt/walletcontroller.cpp | 2 +- src/qt/walletcontroller.h | 2 +- src/qt/walletframe.cpp | 2 +- src/qt/walletframe.h | 8 +- src/qt/walletmodel.cpp | 12 +- src/qt/walletmodel.h | 4 +- src/qt/walletmodeltransaction.cpp | 2 +- src/qt/walletmodeltransaction.h | 2 +- src/qt/walletview.cpp | 2 +- src/qt/walletview.h | 8 +- src/qt/winshutdownmonitor.cpp | 2 +- src/qt/winshutdownmonitor.h | 2 +- src/random.cpp | 4 +- src/random.h | 2 +- src/randomenv.cpp | 6 +- src/randomenv.h | 2 +- src/rest.cpp | 6 +- src/rest.h | 2 +- src/rpc/blockchain.cpp | 14 +- src/rpc/blockchain.h | 2 +- src/rpc/client.cpp | 2 +- src/rpc/client.h | 2 +- src/rpc/external_signer.cpp | 6 +- src/rpc/fees.cpp | 2 +- src/rpc/mempool.cpp | 2 +- src/rpc/mempool.h | 2 +- src/rpc/mining.cpp | 22 +- src/rpc/mining.h | 2 +- src/rpc/net.cpp | 4 +- src/rpc/node.cpp | 20 +- src/rpc/output_script.cpp | 8 +- src/rpc/protocol.h | 8 +- src/rpc/rawtransaction.cpp | 20 +- src/rpc/rawtransaction_util.cpp | 4 +- src/rpc/rawtransaction_util.h | 2 +- src/rpc/register.h | 4 +- src/rpc/request.cpp | 4 +- src/rpc/request.h | 2 +- src/rpc/server.cpp | 4 +- src/rpc/server.h | 2 +- src/rpc/server_util.cpp | 2 +- src/rpc/server_util.h | 2 +- src/rpc/signmessage.cpp | 4 +- src/rpc/txoutproof.cpp | 2 +- src/rpc/util.cpp | 8 +- src/rpc/util.h | 2 +- src/scheduler.cpp | 2 +- src/scheduler.h | 2 +- src/script/descriptor.cpp | 2 +- src/script/descriptor.h | 2 +- src/script/interpreter.cpp | 6 +- src/script/interpreter.h | 4 +- src/script/keyorigin.h | 2 +- src/script/miniscript.cpp | 2 +- src/script/miniscript.h | 4 +- src/script/script.cpp | 2 +- src/script/script.h | 4 +- src/script/script_error.cpp | 2 +- src/script/script_error.h | 2 +- src/script/sigcache.cpp | 2 +- src/script/sigcache.h | 2 +- src/script/sign.cpp | 2 +- src/script/sign.h | 2 +- src/script/signingprovider.cpp | 2 +- src/script/signingprovider.h | 2 +- src/script/solver.cpp | 2 +- src/script/solver.h | 2 +- src/script/vincoinconsensus.cpp | 46 +- src/script/vincoinconsensus.h | 62 +-- src/secp256k1/CHANGELOG.md | 18 +- src/secp256k1/CMakeLists.txt | 2 +- src/secp256k1/CONTRIBUTING.md | 8 +- src/secp256k1/Makefile.am | 10 +- src/secp256k1/README.md | 4 +- src/secp256k1/SECURITY.md | 2 +- src/secp256k1/configure.ac | 2 +- src/secp256k1/contrib/lax_der_parsing.h | 2 +- src/secp256k1/doc/release-process.md | 8 +- src/secp256k1/examples/ecdsa.c | 2 +- src/secp256k1/include/secp256k1.h | 2 +- src/secp256k1/include/secp256k1_schnorrsig.h | 8 +- src/secp256k1/libsecp256k1.pc.in | 2 +- .../src/modules/schnorrsig/tests_impl.h | 2 +- src/secp256k1/src/tests.c | 4 +- .../src/wycheproof/WYCHEPROOF_COPYING | 8 +- .../ecdsa_secp256k1_sha256_vincoin_test.json | 214 ++++----- src/serialize.h | 2 +- src/signet.cpp | 2 +- src/signet.h | 2 +- src/span.h | 2 +- src/streams.cpp | 2 +- src/streams.h | 2 +- src/support/allocators/pool.h | 2 +- src/support/allocators/secure.h | 2 +- src/support/allocators/zeroafterfree.h | 2 +- src/support/cleanse.cpp | 2 +- src/support/cleanse.h | 2 +- src/support/events.h | 2 +- src/support/lockedpool.cpp | 2 +- src/support/lockedpool.h | 2 +- src/sync.cpp | 2 +- src/sync.h | 4 +- src/test/Makefile | 6 +- src/test/README.md | 32 +- src/test/addrman_tests.cpp | 2 +- src/test/allocator_tests.cpp | 2 +- src/test/amount_tests.cpp | 2 +- src/test/argsman_tests.cpp | 6 +- src/test/arith_uint256_tests.cpp | 2 +- src/test/banman_tests.cpp | 2 +- src/test/base32_tests.cpp | 2 +- src/test/base58_tests.cpp | 2 +- src/test/base64_tests.cpp | 2 +- src/test/bech32_tests.cpp | 2 +- src/test/bip324_tests.cpp | 2 +- src/test/bip32_tests.cpp | 2 +- src/test/blockchain_tests.cpp | 2 +- src/test/blockencodings_tests.cpp | 2 +- src/test/blockfilter_index_tests.cpp | 2 +- src/test/blockfilter_tests.cpp | 2 +- src/test/blockmanager_tests.cpp | 4 +- src/test/bloom_tests.cpp | 2 +- src/test/bswap_tests.cpp | 2 +- src/test/checkqueue_tests.cpp | 2 +- src/test/coins_tests.cpp | 2 +- src/test/coinstatsindex_tests.cpp | 2 +- src/test/compilerbug_tests.cpp | 2 +- src/test/compress_tests.cpp | 2 +- src/test/crypto_tests.cpp | 4 +- src/test/cuckoocache_tests.cpp | 2 +- src/test/data/README.md | 2 +- src/test/data/tx_valid.json | 2 +- src/test/dbwrapper_tests.cpp | 2 +- src/test/denialofservice_tests.cpp | 2 +- src/test/descriptor_tests.cpp | 2 +- src/test/disconnected_transactions.cpp | 2 +- src/test/flatfile_tests.cpp | 2 +- src/test/fs_tests.cpp | 12 +- src/test/fuzz/addition_overflow.cpp | 2 +- src/test/fuzz/addrman.cpp | 2 +- src/test/fuzz/asmap.cpp | 2 +- src/test/fuzz/asmap_direct.cpp | 2 +- src/test/fuzz/autofile.cpp | 2 +- src/test/fuzz/banman.cpp | 2 +- src/test/fuzz/base_encode_decode.cpp | 2 +- src/test/fuzz/bech32.cpp | 2 +- src/test/fuzz/bip324.cpp | 2 +- src/test/fuzz/bitdeque.cpp | 2 +- src/test/fuzz/block.cpp | 2 +- src/test/fuzz/block_header.cpp | 2 +- src/test/fuzz/blockfilter.cpp | 2 +- src/test/fuzz/bloom_filter.cpp | 2 +- src/test/fuzz/buffered_file.cpp | 2 +- src/test/fuzz/chain.cpp | 2 +- src/test/fuzz/checkqueue.cpp | 2 +- src/test/fuzz/coins_view.cpp | 2 +- src/test/fuzz/coinscache_sim.cpp | 2 +- src/test/fuzz/connman.cpp | 2 +- src/test/fuzz/crypto.cpp | 2 +- src/test/fuzz/crypto_aes256.cpp | 2 +- src/test/fuzz/crypto_aes256cbc.cpp | 2 +- src/test/fuzz/crypto_chacha20.cpp | 2 +- src/test/fuzz/crypto_common.cpp | 2 +- src/test/fuzz/crypto_diff_fuzz_chacha20.cpp | 2 +- src/test/fuzz/crypto_hkdf_hmac_sha256_l32.cpp | 2 +- src/test/fuzz/crypto_poly1305.cpp | 2 +- src/test/fuzz/cuckoocache.cpp | 2 +- src/test/fuzz/decode_tx.cpp | 2 +- src/test/fuzz/descriptor_parse.cpp | 2 +- src/test/fuzz/deserialize.cpp | 2 +- src/test/fuzz/eval_script.cpp | 2 +- src/test/fuzz/fee_rate.cpp | 2 +- src/test/fuzz/fees.cpp | 2 +- src/test/fuzz/flatfile.cpp | 2 +- src/test/fuzz/float.cpp | 2 +- src/test/fuzz/fuzz.cpp | 2 +- src/test/fuzz/fuzz.h | 2 +- src/test/fuzz/golomb_rice.cpp | 2 +- src/test/fuzz/hex.cpp | 2 +- src/test/fuzz/http_request.cpp | 2 +- src/test/fuzz/integer.cpp | 2 +- src/test/fuzz/key.cpp | 2 +- src/test/fuzz/key_io.cpp | 2 +- src/test/fuzz/kitchen_sink.cpp | 2 +- src/test/fuzz/load_external_block_file.cpp | 2 +- src/test/fuzz/locale.cpp | 2 +- src/test/fuzz/merkleblock.cpp | 2 +- src/test/fuzz/message.cpp | 2 +- src/test/fuzz/miniscript.cpp | 2 +- src/test/fuzz/minisketch.cpp | 2 +- src/test/fuzz/muhash.cpp | 2 +- src/test/fuzz/multiplication_overflow.cpp | 2 +- src/test/fuzz/net.cpp | 2 +- src/test/fuzz/net_permissions.cpp | 2 +- src/test/fuzz/netaddress.cpp | 2 +- src/test/fuzz/netbase_dns_lookup.cpp | 2 +- src/test/fuzz/node_eviction.cpp | 2 +- src/test/fuzz/p2p_transport_serialization.cpp | 2 +- src/test/fuzz/package_eval.cpp | 2 +- src/test/fuzz/parse_hd_keypath.cpp | 2 +- src/test/fuzz/parse_numbers.cpp | 2 +- src/test/fuzz/parse_script.cpp | 2 +- src/test/fuzz/parse_univalue.cpp | 2 +- src/test/fuzz/policy_estimator.cpp | 2 +- src/test/fuzz/policy_estimator_io.cpp | 2 +- src/test/fuzz/poolresource.cpp | 2 +- src/test/fuzz/pow.cpp | 2 +- src/test/fuzz/prevector.cpp | 2 +- src/test/fuzz/primitives_transaction.cpp | 2 +- src/test/fuzz/process_message.cpp | 2 +- src/test/fuzz/process_messages.cpp | 2 +- src/test/fuzz/protocol.cpp | 2 +- src/test/fuzz/psbt.cpp | 2 +- src/test/fuzz/random.cpp | 2 +- src/test/fuzz/rbf.cpp | 2 +- src/test/fuzz/rolling_bloom_filter.cpp | 2 +- src/test/fuzz/rpc.cpp | 2 +- src/test/fuzz/script.cpp | 2 +- .../fuzz/script_assets_test_minimizer.cpp | 2 +- src/test/fuzz/script_descriptor_cache.cpp | 2 +- src/test/fuzz/script_flags.cpp | 2 +- src/test/fuzz/script_format.cpp | 2 +- src/test/fuzz/script_interpreter.cpp | 2 +- src/test/fuzz/script_ops.cpp | 2 +- src/test/fuzz/script_sigcache.cpp | 2 +- src/test/fuzz/script_sign.cpp | 2 +- src/test/fuzz/script_vincoin_consensus.cpp | 18 +- src/test/fuzz/scriptnum_ops.cpp | 2 +- .../secp256k1_ec_seckey_import_export_der.cpp | 2 +- ...ecp256k1_ecdsa_signature_parse_der_lax.cpp | 2 +- src/test/fuzz/signature_checker.cpp | 2 +- src/test/fuzz/signet.cpp | 2 +- src/test/fuzz/socks5.cpp | 2 +- src/test/fuzz/span.cpp | 2 +- src/test/fuzz/spanparsing.cpp | 2 +- src/test/fuzz/string.cpp | 2 +- src/test/fuzz/strprintf.cpp | 2 +- src/test/fuzz/system.cpp | 2 +- src/test/fuzz/timedata.cpp | 2 +- src/test/fuzz/torcontrol.cpp | 2 +- src/test/fuzz/transaction.cpp | 2 +- src/test/fuzz/tx_in.cpp | 2 +- src/test/fuzz/tx_out.cpp | 2 +- src/test/fuzz/tx_pool.cpp | 2 +- src/test/fuzz/txorphan.cpp | 2 +- src/test/fuzz/txrequest.cpp | 2 +- src/test/fuzz/util.cpp | 2 +- src/test/fuzz/util.h | 2 +- src/test/fuzz/util/descriptor.cpp | 2 +- src/test/fuzz/util/descriptor.h | 2 +- src/test/fuzz/util/mempool.cpp | 2 +- src/test/fuzz/util/mempool.h | 2 +- src/test/fuzz/util/net.cpp | 2 +- src/test/fuzz/util/net.h | 2 +- src/test/fuzz/utxo_snapshot.cpp | 2 +- src/test/fuzz/utxo_total_supply.cpp | 2 +- src/test/fuzz/validation_load_mempool.cpp | 2 +- src/test/fuzz/versionbits.cpp | 2 +- src/test/getarg_tests.cpp | 42 +- src/test/hash_tests.cpp | 4 +- src/test/headers_sync_chainwork_tests.cpp | 2 +- src/test/httpserver_tests.cpp | 2 +- src/test/i2p_tests.cpp | 2 +- src/test/interfaces_tests.cpp | 2 +- src/test/ipc_test.capnp | 2 +- src/test/ipc_test.cpp | 2 +- src/test/ipc_test.h | 2 +- src/test/ipc_tests.cpp | 2 +- src/test/key_io_tests.cpp | 2 +- src/test/key_tests.cpp | 4 +- src/test/logging_tests.cpp | 8 +- src/test/main.cpp | 6 +- src/test/mempool_tests.cpp | 2 +- src/test/merkle_tests.cpp | 4 +- src/test/merkleblock_tests.cpp | 2 +- src/test/miner_tests.cpp | 2 +- src/test/miniminer_tests.cpp | 2 +- src/test/miniscript_tests.cpp | 4 +- src/test/minisketch_tests.cpp | 2 +- src/test/multisig_tests.cpp | 2 +- src/test/net_peer_connection_tests.cpp | 2 +- src/test/net_peer_eviction_tests.cpp | 2 +- src/test/net_tests.cpp | 4 +- src/test/netbase_tests.cpp | 16 +- src/test/orphanage_tests.cpp | 2 +- src/test/peerman_tests.cpp | 2 +- src/test/pmt_tests.cpp | 2 +- src/test/policy_fee_tests.cpp | 2 +- src/test/policyestimator_tests.cpp | 2 +- src/test/pool_tests.cpp | 2 +- src/test/pow_tests.cpp | 2 +- src/test/prevector_tests.cpp | 2 +- src/test/raii_event_tests.cpp | 2 +- src/test/random_tests.cpp | 2 +- src/test/rbf_tests.cpp | 2 +- src/test/rest_tests.cpp | 2 +- src/test/result_tests.cpp | 2 +- src/test/reverselock_tests.cpp | 2 +- src/test/rpc_tests.cpp | 14 +- src/test/sanity_tests.cpp | 2 +- src/test/scheduler_tests.cpp | 2 +- src/test/script_p2sh_tests.cpp | 2 +- src/test/script_parse_tests.cpp | 2 +- src/test/script_segwit_tests.cpp | 2 +- src/test/script_standard_tests.cpp | 2 +- src/test/script_tests.cpp | 102 ++-- src/test/scriptnum10.h | 4 +- src/test/scriptnum_tests.cpp | 2 +- src/test/serfloat_tests.cpp | 2 +- src/test/serialize_tests.cpp | 2 +- src/test/settings_tests.cpp | 4 +- src/test/sighash_tests.cpp | 2 +- src/test/sigopcount_tests.cpp | 2 +- src/test/skiplist_tests.cpp | 2 +- src/test/sock_tests.cpp | 2 +- src/test/span_tests.cpp | 2 +- src/test/streams_tests.cpp | 4 +- src/test/sync_tests.cpp | 2 +- src/test/system_tests.cpp | 6 +- src/test/timedata_tests.cpp | 2 +- src/test/transaction_tests.cpp | 2 +- src/test/translation_tests.cpp | 2 +- src/test/txindex_tests.cpp | 2 +- src/test/txpackage_tests.cpp | 2 +- src/test/txreconciliation_tests.cpp | 2 +- src/test/txrequest_tests.cpp | 2 +- src/test/txvalidation_tests.cpp | 2 +- src/test/txvalidationcache_tests.cpp | 2 +- src/test/uint256_tests.cpp | 2 +- src/test/util/blockfilter.cpp | 2 +- src/test/util/blockfilter.h | 2 +- src/test/util/chainstate.h | 2 +- src/test/util/coins.cpp | 2 +- src/test/util/coins.h | 2 +- src/test/util/index.cpp | 2 +- src/test/util/index.h | 2 +- src/test/util/json.cpp | 2 +- src/test/util/json.h | 2 +- src/test/util/logging.cpp | 2 +- src/test/util/logging.h | 2 +- src/test/util/mining.cpp | 2 +- src/test/util/mining.h | 2 +- src/test/util/net.cpp | 2 +- src/test/util/net.h | 2 +- src/test/util/poolresourcetester.h | 2 +- src/test/util/random.cpp | 2 +- src/test/util/random.h | 2 +- src/test/util/script.cpp | 2 +- src/test/util/script.h | 2 +- src/test/util/setup_common.cpp | 4 +- src/test/util/setup_common.h | 2 +- src/test/util/str.cpp | 2 +- src/test/util/str.h | 2 +- src/test/util/transaction_utils.cpp | 2 +- src/test/util/transaction_utils.h | 2 +- src/test/util/txmempool.cpp | 2 +- src/test/util/txmempool.h | 2 +- src/test/util/validation.cpp | 2 +- src/test/util/validation.h | 2 +- src/test/util/xoroshiro128plusplus.h | 2 +- src/test/util_tests.cpp | 8 +- src/test/util_threadnames_tests.cpp | 4 +- src/test/validation_block_tests.cpp | 2 +- src/test/validation_chainstate_tests.cpp | 2 +- .../validation_chainstatemanager_tests.cpp | 2 +- src/test/validation_flush_tests.cpp | 2 +- src/test/validation_tests.cpp | 2 +- src/test/validationinterface_tests.cpp | 4 +- src/test/versionbits_tests.cpp | 2 +- src/test/xoroshiro128plusplus_tests.cpp | 2 +- src/threadsafety.h | 2 +- src/timedata.cpp | 4 +- src/timedata.h | 2 +- src/tinyformat.h | 8 +- src/torcontrol.cpp | 2 +- src/torcontrol.h | 4 +- src/txdb.cpp | 4 +- src/txdb.h | 4 +- src/txmempool.cpp | 2 +- src/txmempool.h | 2 +- src/txorphanage.cpp | 2 +- src/txorphanage.h | 2 +- src/txrequest.cpp | 2 +- src/txrequest.h | 2 +- src/uint256.cpp | 2 +- src/uint256.h | 2 +- src/undo.h | 2 +- src/univalue/include/univalue.h | 2 +- src/univalue/lib/univalue.cpp | 2 +- src/univalue/lib/univalue_get.cpp | 2 +- src/univalue/test/object.cpp | 2 +- src/util/any.h | 2 +- src/util/asmap.cpp | 2 +- src/util/asmap.h | 2 +- src/util/batchpriority.cpp | 2 +- src/util/batchpriority.h | 2 +- src/util/bip32.cpp | 2 +- src/util/bip32.h | 2 +- src/util/bitdeque.h | 2 +- src/util/bytevectorhash.cpp | 2 +- src/util/bytevectorhash.h | 2 +- src/util/chaintype.cpp | 2 +- src/util/chaintype.h | 2 +- src/util/check.cpp | 4 +- src/util/check.h | 2 +- src/util/epochguard.h | 2 +- src/util/error.cpp | 2 +- src/util/error.h | 2 +- src/util/exception.cpp | 4 +- src/util/exception.h | 2 +- src/util/fastrange.h | 2 +- src/util/fees.cpp | 2 +- src/util/fees.h | 2 +- src/util/fs.cpp | 2 +- src/util/fs.h | 2 +- src/util/fs_helpers.cpp | 4 +- src/util/fs_helpers.h | 2 +- src/util/golombrice.h | 2 +- src/util/hash_type.h | 2 +- src/util/hasher.cpp | 2 +- src/util/hasher.h | 2 +- src/util/insert.h | 2 +- src/util/macros.h | 2 +- src/util/message.cpp | 4 +- src/util/message.h | 4 +- src/util/moneystr.cpp | 2 +- src/util/moneystr.h | 2 +- src/util/overflow.h | 2 +- src/util/overloaded.h | 2 +- src/util/rbf.cpp | 2 +- src/util/rbf.h | 2 +- src/util/readwritefile.cpp | 2 +- src/util/readwritefile.h | 2 +- src/util/result.h | 2 +- src/util/serfloat.cpp | 2 +- src/util/serfloat.h | 2 +- src/util/signalinterrupt.cpp | 2 +- src/util/signalinterrupt.h | 2 +- src/util/sock.cpp | 2 +- src/util/sock.h | 2 +- src/util/spanparsing.cpp | 2 +- src/util/spanparsing.h | 2 +- src/util/strencodings.cpp | 2 +- src/util/strencodings.h | 2 +- src/util/string.cpp | 2 +- src/util/string.h | 2 +- src/util/syserror.cpp | 4 +- src/util/syserror.h | 2 +- src/util/thread.cpp | 2 +- src/util/thread.h | 2 +- src/util/threadinterrupt.cpp | 2 +- src/util/threadinterrupt.h | 2 +- src/util/threadnames.cpp | 4 +- src/util/threadnames.h | 2 +- src/util/time.cpp | 4 +- src/util/time.h | 2 +- src/util/tokenpipe.cpp | 4 +- src/util/tokenpipe.h | 2 +- src/util/trace.h | 4 +- src/util/translation.h | 2 +- src/util/types.h | 2 +- src/util/ui_change_type.h | 2 +- src/util/vector.h | 2 +- src/validation.cpp | 14 +- src/validation.h | 2 +- src/validationinterface.cpp | 2 +- src/validationinterface.h | 2 +- src/versionbits.cpp | 2 +- src/versionbits.h | 2 +- src/vincoin-chainstate.cpp | 10 +- src/vincoin-cli-res.rc | 10 +- src/vincoin-cli.cpp | 36 +- src/vincoin-tx-res.rc | 10 +- src/vincoin-tx.cpp | 16 +- src/vincoin-util-res.rc | 10 +- src/vincoin-util.cpp | 12 +- src/vincoin-wallet-res.rc | 10 +- src/vincoin-wallet.cpp | 14 +- src/vincoind-res.rc | 10 +- src/vincoind.cpp | 14 +- src/wallet/bdb.cpp | 6 +- src/wallet/bdb.h | 2 +- src/wallet/coincontrol.cpp | 2 +- src/wallet/coincontrol.h | 2 +- src/wallet/coinselection.cpp | 2 +- src/wallet/coinselection.h | 2 +- src/wallet/context.cpp | 2 +- src/wallet/context.h | 2 +- src/wallet/crypter.cpp | 2 +- src/wallet/crypter.h | 2 +- src/wallet/db.cpp | 4 +- src/wallet/db.h | 2 +- src/wallet/dump.cpp | 6 +- src/wallet/dump.h | 2 +- .../external_signer_scriptpubkeyman.cpp | 4 +- src/wallet/external_signer_scriptpubkeyman.h | 2 +- src/wallet/feebumper.cpp | 2 +- src/wallet/feebumper.h | 2 +- src/wallet/fees.cpp | 2 +- src/wallet/fees.h | 2 +- src/wallet/init.cpp | 4 +- src/wallet/interfaces.cpp | 2 +- src/wallet/load.cpp | 2 +- src/wallet/load.h | 2 +- src/wallet/receive.cpp | 2 +- src/wallet/receive.h | 2 +- src/wallet/rpc/addresses.cpp | 30 +- src/wallet/rpc/backup.cpp | 18 +- src/wallet/rpc/coins.cpp | 16 +- src/wallet/rpc/encrypt.cpp | 6 +- src/wallet/rpc/signmessage.cpp | 4 +- src/wallet/rpc/spend.cpp | 30 +- src/wallet/rpc/transactions.cpp | 8 +- src/wallet/rpc/util.cpp | 2 +- src/wallet/rpc/util.h | 2 +- src/wallet/rpc/wallet.cpp | 6 +- src/wallet/rpc/wallet.h | 2 +- src/wallet/salvage.cpp | 2 +- src/wallet/salvage.h | 2 +- src/wallet/scriptpubkeyman.cpp | 2 +- src/wallet/scriptpubkeyman.h | 4 +- src/wallet/spend.cpp | 2 +- src/wallet/spend.h | 2 +- src/wallet/sqlite.cpp | 4 +- src/wallet/sqlite.h | 2 +- src/wallet/test/coinselector_tests.cpp | 2 +- src/wallet/test/db_tests.cpp | 4 +- src/wallet/test/feebumper_tests.cpp | 2 +- src/wallet/test/fuzz/coincontrol.cpp | 2 +- src/wallet/test/fuzz/coinselection.cpp | 2 +- src/wallet/test/fuzz/fees.cpp | 2 +- src/wallet/test/fuzz/notifications.cpp | 2 +- src/wallet/test/fuzz/parse_iso8601.cpp | 2 +- src/wallet/test/fuzz/scriptpubkeyman.cpp | 2 +- src/wallet/test/group_outputs_tests.cpp | 2 +- src/wallet/test/init_test_fixture.cpp | 2 +- src/wallet/test/init_test_fixture.h | 2 +- src/wallet/test/init_tests.cpp | 2 +- src/wallet/test/ismine_tests.cpp | 2 +- src/wallet/test/psbt_wallet_tests.cpp | 2 +- src/wallet/test/rpc_util_tests.cpp | 2 +- src/wallet/test/scriptpubkeyman_tests.cpp | 2 +- src/wallet/test/spend_tests.cpp | 2 +- src/wallet/test/util.cpp | 2 +- src/wallet/test/util.h | 4 +- src/wallet/test/wallet_crypto_tests.cpp | 2 +- src/wallet/test/wallet_test_fixture.cpp | 2 +- src/wallet/test/wallet_test_fixture.h | 2 +- src/wallet/test/wallet_tests.cpp | 4 +- src/wallet/test/wallet_transaction_tests.cpp | 2 +- src/wallet/test/walletdb_tests.cpp | 2 +- src/wallet/test/walletload_tests.cpp | 2 +- src/wallet/transaction.cpp | 2 +- src/wallet/transaction.h | 4 +- src/wallet/types.h | 6 +- src/wallet/wallet.cpp | 24 +- src/wallet/wallet.h | 4 +- src/wallet/walletdb.cpp | 6 +- src/wallet/walletdb.h | 2 +- src/wallet/wallettool.cpp | 8 +- src/wallet/wallettool.h | 2 +- src/wallet/walletutil.cpp | 2 +- src/wallet/walletutil.h | 4 +- src/walletinitinterface.h | 2 +- src/warnings.cpp | 4 +- src/warnings.h | 2 +- src/zmq/zmqabstractnotifier.cpp | 2 +- src/zmq/zmqabstractnotifier.h | 2 +- src/zmq/zmqnotificationinterface.cpp | 2 +- src/zmq/zmqnotificationinterface.h | 2 +- src/zmq/zmqpublishnotifier.cpp | 2 +- src/zmq/zmqpublishnotifier.h | 2 +- src/zmq/zmqrpc.cpp | 2 +- src/zmq/zmqrpc.h | 2 +- src/zmq/zmqutil.cpp | 2 +- src/zmq/zmqutil.h | 2 +- test/README.md | 44 +- test/config.ini.in | 2 +- test/functional/README.md | 20 +- test/functional/combine_logs.py | 6 +- test/functional/create_cache.py | 6 +- test/functional/data/invalid_txs.py | 4 +- test/functional/example_test.py | 12 +- test/functional/feature_abortnode.py | 10 +- test/functional/feature_addrman.py | 6 +- test/functional/feature_anchors.py | 6 +- test/functional/feature_asmap.py | 38 +- test/functional/feature_assumeutxo.py | 10 +- test/functional/feature_assumevalid.py | 8 +- test/functional/feature_bind_extra.py | 10 +- test/functional/feature_bind_port_discover.py | 6 +- .../feature_bind_port_externalip.py | 6 +- test/functional/feature_bip68_sequence.py | 6 +- test/functional/feature_block.py | 14 +- test/functional/feature_blocksdir.py | 6 +- test/functional/feature_cltv.py | 6 +- test/functional/feature_coinstatsindex.py | 6 +- test/functional/feature_config_args.py | 56 +-- test/functional/feature_csv_activation.py | 6 +- test/functional/feature_dbcrash.py | 14 +- test/functional/feature_dersig.py | 6 +- test/functional/feature_dirsymlinks.py | 6 +- test/functional/feature_discover.py | 6 +- test/functional/feature_fastprune.py | 6 +- test/functional/feature_fee_estimation.py | 6 +- test/functional/feature_filelock.py | 18 +- test/functional/feature_help.py | 14 +- test/functional/feature_includeconf.py | 10 +- test/functional/feature_index_prune.py | 6 +- test/functional/feature_init.py | 6 +- test/functional/feature_loadblock.py | 6 +- test/functional/feature_logging.py | 6 +- test/functional/feature_maxtipage.py | 6 +- test/functional/feature_maxuploadtarget.py | 6 +- test/functional/feature_minchainwork.py | 6 +- test/functional/feature_notifications.py | 8 +- test/functional/feature_nulldummy.py | 6 +- .../feature_posix_fs_permissions.py | 6 +- .../feature_presegwit_node_upgrade.py | 6 +- test/functional/feature_proxy.py | 16 +- test/functional/feature_pruning.py | 6 +- test/functional/feature_rbf.py | 6 +- test/functional/feature_reindex.py | 8 +- test/functional/feature_reindex_readonly.py | 8 +- .../feature_remove_pruned_files_on_startup.py | 6 +- test/functional/feature_segwit.py | 6 +- test/functional/feature_settings.py | 10 +- test/functional/feature_shutdown.py | 8 +- test/functional/feature_signet.py | 6 +- test/functional/feature_startupnotify.py | 6 +- test/functional/feature_taproot.py | 8 +- test/functional/feature_uacomment.py | 6 +- .../functional/feature_unsupported_utxo_db.py | 6 +- test/functional/feature_utxo_set_hash.py | 6 +- .../functional/feature_versionbits_warning.py | 8 +- test/functional/interface_http.py | 8 +- test/functional/interface_rest.py | 6 +- test/functional/interface_rpc.py | 6 +- .../interface_usdt_coinselection.py | 10 +- test/functional/interface_usdt_mempool.py | 12 +- test/functional/interface_usdt_net.py | 14 +- test/functional/interface_usdt_utxocache.py | 18 +- test/functional/interface_usdt_validation.py | 12 +- test/functional/interface_vincoin_cli.py | 20 +- test/functional/interface_zmq.py | 8 +- test/functional/mempool_accept.py | 6 +- test/functional/mempool_accept_v3.py | 6 +- test/functional/mempool_accept_wtxid.py | 6 +- test/functional/mempool_compatibility.py | 6 +- test/functional/mempool_datacarrier.py | 6 +- test/functional/mempool_dust.py | 6 +- test/functional/mempool_expiry.py | 6 +- test/functional/mempool_limit.py | 6 +- test/functional/mempool_package_limits.py | 6 +- test/functional/mempool_package_onemore.py | 6 +- test/functional/mempool_packages.py | 6 +- test/functional/mempool_persist.py | 10 +- test/functional/mempool_reorg.py | 6 +- test/functional/mempool_resurrect.py | 6 +- test/functional/mempool_sigoplimit.py | 6 +- test/functional/mempool_spend_coinbase.py | 6 +- test/functional/mempool_unbroadcast.py | 6 +- test/functional/mempool_updatefromblock.py | 6 +- test/functional/mining_basic.py | 6 +- .../mining_getblocktemplate_longpoll.py | 6 +- .../mining_prioritisetransaction.py | 6 +- test/functional/mocks/invalid_signer.py | 2 +- test/functional/mocks/multi_signers.py | 2 +- test/functional/mocks/signer.py | 2 +- test/functional/p2p_add_connections.py | 8 +- test/functional/p2p_addr_relay.py | 6 +- test/functional/p2p_addrfetch.py | 6 +- test/functional/p2p_addrv2_relay.py | 6 +- test/functional/p2p_block_sync.py | 6 +- test/functional/p2p_blockfilters.py | 6 +- test/functional/p2p_blocksonly.py | 10 +- test/functional/p2p_compactblocks.py | 18 +- .../p2p_compactblocks_blocksonly.py | 6 +- test/functional/p2p_compactblocks_hb.py | 6 +- test/functional/p2p_disconnect_ban.py | 6 +- test/functional/p2p_dns_seeds.py | 10 +- test/functional/p2p_dos_header_tree.py | 6 +- test/functional/p2p_eviction.py | 6 +- test/functional/p2p_feefilter.py | 6 +- test/functional/p2p_filter.py | 6 +- test/functional/p2p_fingerprint.py | 6 +- test/functional/p2p_getaddr_caching.py | 6 +- test/functional/p2p_getdata.py | 6 +- .../p2p_headers_sync_with_minchainwork.py | 6 +- test/functional/p2p_i2p_ports.py | 6 +- test/functional/p2p_i2p_sessions.py | 6 +- test/functional/p2p_ibd_stalling.py | 6 +- test/functional/p2p_ibd_txrelay.py | 6 +- test/functional/p2p_initial_headers_sync.py | 6 +- test/functional/p2p_invalid_block.py | 6 +- test/functional/p2p_invalid_locator.py | 6 +- test/functional/p2p_invalid_messages.py | 8 +- test/functional/p2p_invalid_tx.py | 6 +- test/functional/p2p_leak.py | 6 +- test/functional/p2p_leak_tx.py | 6 +- test/functional/p2p_message_capture.py | 6 +- test/functional/p2p_mutated_blocks.py | 6 +- test/functional/p2p_net_deadlock.py | 6 +- test/functional/p2p_nobloomfilter_messages.py | 6 +- test/functional/p2p_node_network_limited.py | 6 +- test/functional/p2p_orphan_handling.py | 6 +- test/functional/p2p_permissions.py | 6 +- test/functional/p2p_ping.py | 6 +- test/functional/p2p_segwit.py | 10 +- test/functional/p2p_sendheaders.py | 6 +- test/functional/p2p_sendtxrcncl.py | 6 +- test/functional/p2p_timeouts.py | 6 +- test/functional/p2p_tx_download.py | 8 +- test/functional/p2p_tx_privacy.py | 6 +- test/functional/p2p_unrequested_blocks.py | 6 +- test/functional/p2p_v2_earlykeyresponse.py | 6 +- test/functional/p2p_v2_encrypted.py | 6 +- test/functional/p2p_v2_transport.py | 6 +- test/functional/rpc_bind.py | 8 +- test/functional/rpc_blockchain.py | 6 +- test/functional/rpc_createmultisig.py | 6 +- test/functional/rpc_decodescript.py | 8 +- test/functional/rpc_deprecated.py | 6 +- test/functional/rpc_deriveaddresses.py | 10 +- test/functional/rpc_dumptxoutset.py | 6 +- test/functional/rpc_estimatefee.py | 6 +- test/functional/rpc_generate.py | 6 +- test/functional/rpc_getblockfilter.py | 6 +- test/functional/rpc_getblockfrompeer.py | 6 +- test/functional/rpc_getblockstats.py | 6 +- test/functional/rpc_getchaintips.py | 6 +- test/functional/rpc_getdescriptorinfo.py | 6 +- test/functional/rpc_help.py | 6 +- .../functional/rpc_invalid_address_message.py | 8 +- test/functional/rpc_invalidateblock.py | 6 +- test/functional/rpc_mempool_info.py | 6 +- test/functional/rpc_misc.py | 6 +- test/functional/rpc_named_arguments.py | 6 +- test/functional/rpc_net.py | 6 +- test/functional/rpc_packages.py | 6 +- test/functional/rpc_preciousblock.py | 6 +- test/functional/rpc_psbt.py | 6 +- test/functional/rpc_rawtransaction.py | 12 +- test/functional/rpc_scanblocks.py | 6 +- test/functional/rpc_scantxoutset.py | 6 +- test/functional/rpc_setban.py | 6 +- test/functional/rpc_signer.py | 10 +- test/functional/rpc_signmessagewithprivkey.py | 6 +- .../rpc_signrawtransactionwithkey.py | 6 +- test/functional/rpc_txoutproof.py | 6 +- test/functional/rpc_uptime.py | 6 +- test/functional/rpc_users.py | 12 +- test/functional/rpc_validateaddress.py | 6 +- test/functional/rpc_whitelist.py | 8 +- test/functional/test-shell.md | 74 +-- test/functional/test_framework/address.py | 4 +- test/functional/test_framework/authproxy.py | 4 +- test/functional/test_framework/bdb.py | 2 +- test/functional/test_framework/blockfilter.py | 2 +- test/functional/test_framework/blocktools.py | 2 +- test/functional/test_framework/coverage.py | 4 +- .../test_framework/crypto/bip324_cipher.py | 2 +- .../test_framework/crypto/chacha20.py | 2 +- .../test_framework/crypto/ellswift.py | 2 +- test/functional/test_framework/crypto/hkdf.py | 2 +- .../test_framework/crypto/muhash.py | 2 +- .../test_framework/crypto/poly1305.py | 2 +- .../test_framework/crypto/secp256k1.py | 2 +- .../test_framework/crypto/siphash.py | 2 +- test/functional/test_framework/messages.py | 18 +- test/functional/test_framework/netutil.py | 2 +- test/functional/test_framework/p2p.py | 12 +- test/functional/test_framework/psbt.py | 2 +- test/functional/test_framework/script.py | 6 +- test/functional/test_framework/script_util.py | 2 +- test/functional/test_framework/socks5.py | 2 +- .../test_framework/test_framework.py | 104 ++-- test/functional/test_framework/test_node.py | 64 +-- test/functional/test_framework/test_shell.py | 12 +- test/functional/test_framework/util.py | 18 +- test/functional/test_framework/v2_p2p.py | 4 +- test/functional/test_framework/wallet.py | 4 +- test/functional/test_framework/wallet_util.py | 2 +- test/functional/test_runner.py | 22 +- test/functional/tool_signet_miner.py | 10 +- test/functional/tool_wallet.py | 30 +- test/functional/wallet_abandonconflict.py | 6 +- test/functional/wallet_address_types.py | 6 +- test/functional/wallet_assumeutxo.py | 6 +- .../wallet_avoid_mixing_output_types.py | 6 +- test/functional/wallet_avoidreuse.py | 6 +- test/functional/wallet_backup.py | 6 +- .../wallet_backwards_compatibility.py | 16 +- test/functional/wallet_balance.py | 6 +- test/functional/wallet_basic.py | 16 +- test/functional/wallet_blank.py | 6 +- test/functional/wallet_bumpfee.py | 8 +- test/functional/wallet_change_address.py | 6 +- test/functional/wallet_coinbase_category.py | 6 +- test/functional/wallet_conflicts.py | 6 +- test/functional/wallet_create_tx.py | 6 +- test/functional/wallet_createwallet.py | 6 +- test/functional/wallet_crosschain.py | 6 +- test/functional/wallet_descriptor.py | 6 +- test/functional/wallet_disable.py | 6 +- test/functional/wallet_dump.py | 8 +- test/functional/wallet_encryption.py | 6 +- test/functional/wallet_fallbackfee.py | 6 +- test/functional/wallet_fast_rescan.py | 6 +- test/functional/wallet_fundrawtransaction.py | 10 +- test/functional/wallet_groups.py | 6 +- test/functional/wallet_hd.py | 6 +- test/functional/wallet_implicitsegwit.py | 6 +- test/functional/wallet_import_rescan.py | 6 +- test/functional/wallet_import_with_label.py | 6 +- test/functional/wallet_importdescriptors.py | 6 +- test/functional/wallet_importmulti.py | 8 +- test/functional/wallet_importprunedfunds.py | 6 +- test/functional/wallet_inactive_hdchains.py | 8 +- test/functional/wallet_keypool.py | 6 +- test/functional/wallet_keypool_topup.py | 6 +- test/functional/wallet_labels.py | 10 +- test/functional/wallet_listdescriptors.py | 6 +- test/functional/wallet_listreceivedby.py | 6 +- test/functional/wallet_listsinceblock.py | 6 +- test/functional/wallet_listtransactions.py | 8 +- test/functional/wallet_migration.py | 6 +- test/functional/wallet_miniscript.py | 6 +- .../wallet_multisig_descriptor_psbt.py | 6 +- test/functional/wallet_multiwallet.py | 8 +- test/functional/wallet_orphanedreward.py | 6 +- test/functional/wallet_pruning.py | 6 +- test/functional/wallet_reindex.py | 6 +- test/functional/wallet_reorgsrestore.py | 6 +- test/functional/wallet_rescan_unconfirmed.py | 6 +- .../wallet_resendwallettransactions.py | 6 +- test/functional/wallet_send.py | 8 +- test/functional/wallet_sendall.py | 6 +- test/functional/wallet_sendmany.py | 6 +- test/functional/wallet_signer.py | 8 +- .../wallet_signmessagewithaddress.py | 6 +- .../wallet_signrawtransactionwithwallet.py | 6 +- test/functional/wallet_simulaterawtx.py | 20 +- test/functional/wallet_spend_unconfirmed.py | 6 +- test/functional/wallet_startup.py | 8 +- test/functional/wallet_taproot.py | 6 +- test/functional/wallet_timelock.py | 6 +- .../wallet_transactiontime_rescan.py | 6 +- test/functional/wallet_txn_clone.py | 6 +- test/functional/wallet_txn_doublespend.py | 6 +- test/functional/wallet_upgradewallet.py | 14 +- test/functional/wallet_watchonly.py | 6 +- test/fuzz/test_runner.py | 8 +- test/get_previous_releases.py | 160 +++---- test/lint/README.md | 12 +- test/lint/check-doc.py | 2 +- test/lint/commit-script-check.sh | 2 +- test/lint/git-subtree-check.sh | 4 +- test/lint/lint-assertions.py | 2 +- test/lint/lint-circular-dependencies.py | 4 +- test/lint/lint-files.py | 2 +- test/lint/lint-format-strings.py | 4 +- test/lint/lint-git-commit-check.py | 2 +- test/lint/lint-include-guards.py | 4 +- test/lint/lint-includes.py | 4 +- test/lint/lint-locale-dependence.py | 16 +- test/lint/lint-python-dead-code.py | 2 +- .../lint-python-mutable-default-parameters.py | 2 +- test/lint/lint-python-utf8-encoding.py | 2 +- test/lint/lint-python.py | 2 +- test/lint/lint-qt-translation.py | 2 +- test/lint/lint-shell-locale.py | 2 +- test/lint/lint-shell.py | 2 +- test/lint/lint-spelling.py | 2 +- test/lint/lint-submodule.py | 2 +- test/lint/lint-tests.py | 2 +- test/lint/lint-whitespace.py | 2 +- test/lint/run-lint-format-strings.py | 2 +- test/lint/test_runner/Cargo.toml | 2 +- test/lint/test_runner/src/main.rs | 14 +- test/sanitizer_suppressions/tsan | 12 +- test/util/data/vincoin-util-test.json | 210 ++++---- test/util/rpcauth-test.py | 2 +- test/util/test_runner.py | 12 +- 1758 files changed, 11624 insertions(+), 11624 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 3c59e41a134c7..3d202279eee3f 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -18,7 +18,7 @@ env: # Global defaults # - apt-get is required due to PACKAGE_MANAGER_INSTALL # - podman-docker-4.1+ is required due to the use of `podman` when # RESTART_CI_DOCKER_BEFORE_RUN is set and 4.1+ due to the bugfix in 4.1 -# (https://github.com/bitcoin/bitcoin/pull/21652#issuecomment-1657098200) +# (https://github.com/vincoin/vincoin/pull/21652#issuecomment-1657098200) # - The ./ci/ depedencies (with cirrus-cli) should be installed: # # ``` @@ -48,7 +48,7 @@ env: # Global defaults # https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks filter_template: &FILTER_TEMPLATE - skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution + skip: $CIRRUS_REPO_FULL_NAME == "vincoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks base_template: &BASE_TEMPLATE @@ -73,7 +73,7 @@ global_task_template: &GLOBAL_TASK_TEMPLATE compute_credits_template: &CREDITS_TEMPLATE # https://cirrus-ci.org/pricing/#compute-credits # Only use credits for pull requests to the main repo - use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin' && $CIRRUS_PR != "" + use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'vincoin/vincoin' && $CIRRUS_PR != "" task: name: 'lint' @@ -109,7 +109,7 @@ task: << : *GLOBAL_TASK_TEMPLATE persistent_worker: labels: - type: arm64 # Use arm64 worker to sidestep qemu and avoid a slow CI: https://github.com/bitcoin/bitcoin/pull/28087#issuecomment-1649399453 + type: arm64 # Use arm64 worker to sidestep qemu and avoid a slow CI: https://github.com/vincoin/vincoin/pull/28087#issuecomment-1649399453 env: FILE_ENV: "./ci/test/00_setup_env_arm.sh" @@ -191,13 +191,13 @@ task: FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh" task: - name: 'no wallet, libbitcoinkernel' + name: 'no wallet, libvincoinkernel' << : *GLOBAL_TASK_TEMPLATE persistent_worker: labels: type: small env: - FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh" + FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libvincoinkernel.sh" task: name: 'macOS-cross, gui, no tests' diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 83922b54cbf49..ea353228c0b66 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -5,10 +5,10 @@ body: - type: markdown attributes: value: | - ## This issue tracker is only for technical issues related to Bitcoin Core. + ## This issue tracker is only for technical issues related to Vincoin Core. - * General bitcoin questions and/or support requests should use Bitcoin StackExchange at https://bitcoin.stackexchange.com. - * For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/. + * General vincoin questions and/or support requests should use Vincoin StackExchange at https://vincoin.stackexchange.com. + * For reporting security issues, please read instructions at https://vincoincore.org/en/contact/. * If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running `memtest` and observe CPU temperature with a load-test tool such as `linpack` before creating an issue. ---- @@ -50,14 +50,14 @@ body: description: | Please copy and paste any relevant log output or attach a debug log file. - You can find the debug.log in your [data dir.](https://github.com/bitcoin/bitcoin/blob/master/doc/files.md#data-directory-location) + You can find the debug.log in your [data dir.](https://github.com/vincoin/vincoin/blob/master/doc/files.md#data-directory-location) Please be aware that the debug log might contain personally identifying information. validations: required: false - type: dropdown attributes: - label: How did you obtain Bitcoin Core + label: How did you obtain Vincoin Core multiple: false options: - Compiled from source @@ -69,8 +69,8 @@ body: - type: input id: core-version attributes: - label: What version of Bitcoin Core are you using? - description: Run `bitcoind --version` or in Bitcoin-QT use `Help > About Bitcoin Core` + label: What version of Vincoin Core are you using? + description: Run `vincoind --version` or in Vincoin-QT use `Help > About Vincoin Core` placeholder: e.g. v24.0.1 or master@e1bf547 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 40370284a6d8f..3651228981af6 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: true contact_links: - - name: Bitcoin Core Security Policy - url: https://github.com/bitcoin/bitcoin/blob/master/SECURITY.md + - name: Vincoin Core Security Policy + url: https://github.com/vincoin/vincoin/blob/master/SECURITY.md about: View security policy - - name: Bitcoin Core Developers - url: https://bitcoincore.org - about: Bitcoin Core homepage + - name: Vincoin Core Developers + url: https://vincoincore.org + about: Vincoin Core homepage diff --git a/.github/ISSUE_TEMPLATE/good_first_issue.yml b/.github/ISSUE_TEMPLATE/good_first_issue.yml index 133937c011af6..26a592d691494 100644 --- a/.github/ISSUE_TEMPLATE/good_first_issue.yml +++ b/.github/ISSUE_TEMPLATE/good_first_issue.yml @@ -28,9 +28,9 @@ body: id: useful-skills attributes: label: Useful Skills - description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”. + description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Vincoin mining and the Vincoin Core RPC interface”. value: | - * Compiling Bitcoin Core from source + * Compiling Vincoin Core from source * Running the C++ unit tests and the Python functional tests * ... - type: textarea @@ -40,5 +40,5 @@ body: value: | Want to work on this issue? - For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request. + For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/vincoin/vincoin/blob/master/CONTRIBUTING.md) before opening your pull request. diff --git a/.github/ISSUE_TEMPLATE/gui_issue.yml b/.github/ISSUE_TEMPLATE/gui_issue.yml index 4fe578e9b5b9c..e769759cdab45 100644 --- a/.github/ISSUE_TEMPLATE/gui_issue.yml +++ b/.github/ISSUE_TEMPLATE/gui_issue.yml @@ -6,7 +6,7 @@ body: id: acknowledgement attributes: label: Issues, reports or feature requests related to the GUI should be opened directly on the GUI repo - description: https://github.com/bitcoin-core/gui/issues/ + description: https://github.com/vincoin-core/gui/issues/ options: - label: I still think this issue should be opened here required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ae92fc78f2d1c..c8914fb2e37cf 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,13 +5,13 @@ Pull requests without a rationale and clear improvement may be closed immediately. GUI-related pull requests should be opened against -https://github.com/bitcoin-core/gui +https://github.com/vincoin-core/gui first. See CONTRIBUTING.md --> libbitcoin_cli; +vincoin-cli[vincoin-cli]-->libvincoin_cli; -bitcoind[bitcoind]-->libbitcoin_node; -bitcoind[bitcoind]-->libbitcoin_wallet; +vincoind[vincoind]-->libvincoin_node; +vincoind[vincoind]-->libvincoin_wallet; -bitcoin-qt[bitcoin-qt]-->libbitcoin_node; -bitcoin-qt[bitcoin-qt]-->libbitcoinqt; -bitcoin-qt[bitcoin-qt]-->libbitcoin_wallet; +vincoin-qt[vincoin-qt]-->libvincoin_node; +vincoin-qt[vincoin-qt]-->libvincoinqt; +vincoin-qt[vincoin-qt]-->libvincoin_wallet; -bitcoin-wallet[bitcoin-wallet]-->libbitcoin_wallet; -bitcoin-wallet[bitcoin-wallet]-->libbitcoin_wallet_tool; +vincoin-wallet[vincoin-wallet]-->libvincoin_wallet; +vincoin-wallet[vincoin-wallet]-->libvincoin_wallet_tool; -libbitcoin_cli-->libbitcoin_util; -libbitcoin_cli-->libbitcoin_common; +libvincoin_cli-->libvincoin_util; +libvincoin_cli-->libvincoin_common; -libbitcoin_common-->libbitcoin_consensus; -libbitcoin_common-->libbitcoin_util; +libvincoin_common-->libvincoin_consensus; +libvincoin_common-->libvincoin_util; -libbitcoin_kernel-->libbitcoin_consensus; -libbitcoin_kernel-->libbitcoin_util; +libvincoin_kernel-->libvincoin_consensus; +libvincoin_kernel-->libvincoin_util; -libbitcoin_node-->libbitcoin_consensus; -libbitcoin_node-->libbitcoin_kernel; -libbitcoin_node-->libbitcoin_common; -libbitcoin_node-->libbitcoin_util; +libvincoin_node-->libvincoin_consensus; +libvincoin_node-->libvincoin_kernel; +libvincoin_node-->libvincoin_common; +libvincoin_node-->libvincoin_util; -libbitcoinqt-->libbitcoin_common; -libbitcoinqt-->libbitcoin_util; +libvincoinqt-->libvincoin_common; +libvincoinqt-->libvincoin_util; -libbitcoin_wallet-->libbitcoin_common; -libbitcoin_wallet-->libbitcoin_util; +libvincoin_wallet-->libvincoin_common; +libvincoin_wallet-->libvincoin_util; -libbitcoin_wallet_tool-->libbitcoin_wallet; -libbitcoin_wallet_tool-->libbitcoin_util; +libvincoin_wallet_tool-->libvincoin_wallet; +libvincoin_wallet_tool-->libvincoin_util; classDef bold stroke-width:2px, font-weight:bold, font-size: smaller; -class bitcoin-qt,bitcoind,bitcoin-cli,bitcoin-wallet bold +class vincoin-qt,vincoind,vincoin-cli,vincoin-wallet bold ``` @@ -83,22 +83,22 @@ class bitcoin-qt,bitcoind,bitcoin-cli,bitcoin-wallet bold -- The graph shows what _linker symbols_ (functions and variables) from each library other libraries can call and reference directly, but it is not a call graph. For example, there is no arrow connecting *libbitcoin_wallet* and *libbitcoin_node* libraries, because these libraries are intended to be modular and not depend on each other's internal implementation details. But wallet code is still able to call node code indirectly through the `interfaces::Chain` abstract class in [`interfaces/chain.h`](../../src/interfaces/chain.h) and node code calls wallet code through the `interfaces::ChainClient` and `interfaces::Chain::Notifications` abstract classes in the same file. In general, defining abstract classes in [`src/interfaces/`](../../src/interfaces/) can be a convenient way of avoiding unwanted direct dependencies or circular dependencies between libraries. +- The graph shows what _linker symbols_ (functions and variables) from each library other libraries can call and reference directly, but it is not a call graph. For example, there is no arrow connecting *libvincoin_wallet* and *libvincoin_node* libraries, because these libraries are intended to be modular and not depend on each other's internal implementation details. But wallet code is still able to call node code indirectly through the `interfaces::Chain` abstract class in [`interfaces/chain.h`](../../src/interfaces/chain.h) and node code calls wallet code through the `interfaces::ChainClient` and `interfaces::Chain::Notifications` abstract classes in the same file. In general, defining abstract classes in [`src/interfaces/`](../../src/interfaces/) can be a convenient way of avoiding unwanted direct dependencies or circular dependencies between libraries. -- *libbitcoin_consensus* should be a standalone dependency that any library can depend on, and it should not depend on any other libraries itself. +- *libvincoin_consensus* should be a standalone dependency that any library can depend on, and it should not depend on any other libraries itself. -- *libbitcoin_util* should also be a standalone dependency that any library can depend on, and it should not depend on other internal libraries. +- *libvincoin_util* should also be a standalone dependency that any library can depend on, and it should not depend on other internal libraries. -- *libbitcoin_common* should serve a similar function as *libbitcoin_util* and be a place for miscellaneous code used by various daemon, GUI, and CLI applications and libraries to live. It should not depend on anything other than *libbitcoin_util* and *libbitcoin_consensus*. The boundary between _util_ and _common_ is a little fuzzy but historically _util_ has been used for more generic, lower-level things like parsing hex, and _common_ has been used for bitcoin-specific, higher-level things like parsing base58. The difference between util and common is mostly important because *libbitcoin_kernel* is not supposed to depend on *libbitcoin_common*, only *libbitcoin_util*. In general, if it is ever unclear whether it is better to add code to *util* or *common*, it is probably better to add it to *common* unless it is very generically useful or useful particularly to include in the kernel. +- *libvincoin_common* should serve a similar function as *libvincoin_util* and be a place for miscellaneous code used by various daemon, GUI, and CLI applications and libraries to live. It should not depend on anything other than *libvincoin_util* and *libvincoin_consensus*. The boundary between _util_ and _common_ is a little fuzzy but historically _util_ has been used for more generic, lower-level things like parsing hex, and _common_ has been used for vincoin-specific, higher-level things like parsing base58. The difference between util and common is mostly important because *libvincoin_kernel* is not supposed to depend on *libvincoin_common*, only *libvincoin_util*. In general, if it is ever unclear whether it is better to add code to *util* or *common*, it is probably better to add it to *common* unless it is very generically useful or useful particularly to include in the kernel. -- *libbitcoin_kernel* should only depend on *libbitcoin_util* and *libbitcoin_consensus*. +- *libvincoin_kernel* should only depend on *libvincoin_util* and *libvincoin_consensus*. -- The only thing that should depend on *libbitcoin_kernel* internally should be *libbitcoin_node*. GUI and wallet libraries *libbitcoinqt* and *libbitcoin_wallet* in particular should not depend on *libbitcoin_kernel* and the unneeded functionality it would pull in, like block validation. To the extent that GUI and wallet code need scripting and signing functionality, they should be get able it from *libbitcoin_consensus*, *libbitcoin_common*, and *libbitcoin_util*, instead of *libbitcoin_kernel*. +- The only thing that should depend on *libvincoin_kernel* internally should be *libvincoin_node*. GUI and wallet libraries *libvincoinqt* and *libvincoin_wallet* in particular should not depend on *libvincoin_kernel* and the unneeded functionality it would pull in, like block validation. To the extent that GUI and wallet code need scripting and signing functionality, they should be get able it from *libvincoin_consensus*, *libvincoin_common*, and *libvincoin_util*, instead of *libvincoin_kernel*. -- GUI, node, and wallet code internal implementations should all be independent of each other, and the *libbitcoinqt*, *libbitcoin_node*, *libbitcoin_wallet* libraries should never reference each other's symbols. They should only call each other through [`src/interfaces/`](`../../src/interfaces/`) abstract interfaces. +- GUI, node, and wallet code internal implementations should all be independent of each other, and the *libvincoinqt*, *libvincoin_node*, *libvincoin_wallet* libraries should never reference each other's symbols. They should only call each other through [`src/interfaces/`](`../../src/interfaces/`) abstract interfaces. ## Work in progress -- Validation code is moving from *libbitcoin_node* to *libbitcoin_kernel* as part of [The libbitcoinkernel Project #24303](https://github.com/bitcoin/bitcoin/issues/24303) -- Source code organization is discussed in general in [Library source code organization #15732](https://github.com/bitcoin/bitcoin/issues/15732) +- Validation code is moving from *libvincoin_node* to *libvincoin_kernel* as part of [The libvincoinkernel Project #24303](https://github.com/vincoin/vincoin/issues/24303) +- Source code organization is discussed in general in [Library source code organization #15732](https://github.com/vincoin/vincoin/issues/15732) diff --git a/doc/design/multiprocess.md b/doc/design/multiprocess.md index 636d78d905c45..2b38b9f8aeac6 100644 --- a/doc/design/multiprocess.md +++ b/doc/design/multiprocess.md @@ -1,6 +1,6 @@ -# Multiprocess Bitcoin Design Document +# Multiprocess Vincoin Design Document -Guide to the design and architecture of the Bitcoin Core multiprocess feature +Guide to the design and architecture of the Vincoin Core multiprocess feature _This document describes the design of the multiprocess feature. For usage information, see the top-level [multiprocess.md](../multiprocess.md) file._ @@ -27,31 +27,31 @@ _This document describes the design of the multiprocess feature. For usage infor ## Introduction -The Bitcoin Core software has historically employed a monolithic architecture. The existing design has integrated functionality like P2P network operations, wallet management, and a GUI into a single executable. While effective, it has limitations in flexibility, security, and scalability. This project introduces changes that transition Bitcoin Core to a more modular architecture. It aims to enhance security, improve usability, and facilitate maintenance and development of the software in the long run. +The Vincoin Core software has historically employed a monolithic architecture. The existing design has integrated functionality like P2P network operations, wallet management, and a GUI into a single executable. While effective, it has limitations in flexibility, security, and scalability. This project introduces changes that transition Vincoin Core to a more modular architecture. It aims to enhance security, improve usability, and facilitate maintenance and development of the software in the long run. ## Current Architecture -The current system features two primary executables: `bitcoind` and `bitcoin-qt`. `bitcoind` combines a Bitcoin P2P node with an integrated JSON-RPC server, wallet, and indexes. `bitcoin-qt` extends this by incorporating a Qt-based GUI. This monolithic structure, although robust, presents challenges such as limited operational flexibility and increased security risks due to the tight integration of components. +The current system features two primary executables: `vincoind` and `vincoin-qt`. `vincoind` combines a Vincoin P2P node with an integrated JSON-RPC server, wallet, and indexes. `vincoin-qt` extends this by incorporating a Qt-based GUI. This monolithic structure, although robust, presents challenges such as limited operational flexibility and increased security risks due to the tight integration of components. ## Proposed Architecture The new architecture divides the existing code into three specialized executables: -- `bitcoin-node`: Manages the P2P node, indexes, and JSON-RPC server. -- `bitcoin-wallet`: Handles all wallet functionality. -- `bitcoin-gui`: Provides a standalone Qt-based GUI. +- `vincoin-node`: Manages the P2P node, indexes, and JSON-RPC server. +- `vincoin-wallet`: Handles all wallet functionality. +- `vincoin-gui`: Provides a standalone Qt-based GUI. This modular approach is designed to enhance security through component isolation and improve usability by allowing independent operation of each module. This allows for new use-cases, such as running the node on a dedicated machine and operating wallets and GUIs on separate machines with the flexibility to start and stop them as needed. -This subdivision could be extended in the future. For example, indexes could be removed from the `bitcoin-node` executable and run in separate executables. And JSON-RPC servers could be added to wallet and index executables, so they can listen and respond to RPC requests on their own ports, without needing to forward RPC requests through `bitcoin-node`. +This subdivision could be extended in the future. For example, indexes could be removed from the `vincoin-node` executable and run in separate executables. And JSON-RPC servers could be added to wallet and index executables, so they can listen and respond to RPC requests on their own ports, without needing to forward RPC requests through `vincoin-node`.
    ```mermaid flowchart LR - node[bitcoin-node] -- listens on --> socket["<datadir>/node.sock"] - wallet[bitcoin-wallet] -- connects to --> socket - gui[bitcoin-gui] -- connects to --> socket + node[vincoin-node] -- listens on --> socket["<datadir>/node.sock"] + wallet[vincoin-wallet] -- connects to --> socket + gui[vincoin-gui] -- connects to --> socket ```
    @@ -90,7 +90,7 @@ This section describes the major components of the Inter-Process Communication ( ### The `libmultiprocess` Runtime Library - **Core Functionality**: The `libmultiprocess` runtime library's primary function is to instantiate the generated client and server classes as needed. -- **Bootstrapping IPC Connections**: It provides functions for starting new IPC connections, specifically binding generated client and server classes for an initial `interfaces::Init` interface (defined in [`src/interfaces/init.h`](../../src/interfaces/init.h)) to a UNIX socket. This initial interface has methods returning other interfaces that different Bitcoin Core modules use to communicate after the bootstrapping phase. +- **Bootstrapping IPC Connections**: It provides functions for starting new IPC connections, specifically binding generated client and server classes for an initial `interfaces::Init` interface (defined in [`src/interfaces/init.h`](../../src/interfaces/init.h)) to a UNIX socket. This initial interface has methods returning other interfaces that different Vincoin Core modules use to communicate after the bootstrapping phase. - **Asynchronous I/O and Thread Management**: The library is also responsible for managing I/O and threading. Particularly, it ensures that IPC requests never block each other and that new threads on either side of a connection can always make client calls. It also manages worker threads on the server side of calls, ensuring that calls from the same client thread always execute on the same server thread (to avoid locking issues and support nested callbacks). ### Type Hooks in [`src/ipc/capnp/*-types.h`](../../src/ipc/capnp/) @@ -124,13 +124,13 @@ Diagram showing generated source files and includes. ### Selection of Cap’n Proto The choice to use [Cap’n Proto](https://capnproto.org/) for IPC was primarily influenced by its support for passing object references and managing object lifetimes, which would have to be implemented manually with a framework that only supported plain requests and responses like [gRPC](https://grpc.io/). The support is especially helpful for passing callback objects like `std::function` and enabling bidirectional calls between processes. -The choice to use an RPC framework at all instead of a custom protocol was necessitated by the size of Bitcoin Core internal interfaces which consist of around 150 methods that pass complex data structures and are called in complicated ways (in parallel, and from callbacks that can be nested and stored). Writing a custom protocol to wrap these complicated interfaces would be a lot more work, akin to writing a new RPC framework. +The choice to use an RPC framework at all instead of a custom protocol was necessitated by the size of Vincoin Core internal interfaces which consist of around 150 methods that pass complex data structures and are called in complicated ways (in parallel, and from callbacks that can be nested and stored). Writing a custom protocol to wrap these complicated interfaces would be a lot more work, akin to writing a new RPC framework. ### Hiding IPC The IPC mechanism is deliberately isolated from the rest of the codebase so less code has to be concerned with IPC. -Building Bitcoin Core with IPC support is optional, and node, wallet, and GUI code can be compiled to either run in the same process or separate processes. The build system also ensures Cap’n Proto library headers can only be used within the [`src/ipc/capnp/`](../../src/ipc/capnp/) directory, not in other parts of the codebase. +Building Vincoin Core with IPC support is optional, and node, wallet, and GUI code can be compiled to either run in the same process or separate processes. The build system also ensures Cap’n Proto library headers can only be used within the [`src/ipc/capnp/`](../../src/ipc/capnp/) directory, not in other parts of the codebase. The libmultiprocess runtime is designed to place as few constraints as possible on IPC interfaces and to make IPC calls act like normal function calls. Method arguments, return values, and exceptions are automatically serialized and sent between processes. Object references and `std::function` arguments are tracked to allow invoked code to call back into invoking code at any time. And there is a 1:1 threading model where every client thread has a corresponding server thread responsible for executing incoming calls from that thread (there can be multiple calls from the same thread due to callbacks) without blocking, and holding the same thread-local variables and locks so behavior is the same whether IPC is used or not. @@ -150,23 +150,23 @@ The currently defined IPC interfaces are unstable, and can change freely with no ## Security Considerations -The integration of [Cap’n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) into the Bitcoin Core architecture increases its potential attack surface. Cap’n Proto, being a complex and substantial new dependency, introduces potential sources of vulnerability, particularly through the creation of new UNIX sockets. The inclusion of libmultiprocess, while a smaller external dependency, also contributes to this risk. However, plans are underway to incorporate libmultiprocess as a git subtree, aligning it more closely with the project's well-reviewed internal libraries. While adopting these multiprocess features does introduce some risk, it's worth noting that they can be disabled, allowing builds without these new dependencies. This flexibility ensures that users can balance functionality with security considerations as needed. +The integration of [Cap’n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) into the Vincoin Core architecture increases its potential attack surface. Cap’n Proto, being a complex and substantial new dependency, introduces potential sources of vulnerability, particularly through the creation of new UNIX sockets. The inclusion of libmultiprocess, while a smaller external dependency, also contributes to this risk. However, plans are underway to incorporate libmultiprocess as a git subtree, aligning it more closely with the project's well-reviewed internal libraries. While adopting these multiprocess features does introduce some risk, it's worth noting that they can be disabled, allowing builds without these new dependencies. This flexibility ensures that users can balance functionality with security considerations as needed. ## Example Use Cases and Flows ### Retrieving a Block Hash -Let’s walk through an example where the `bitcoin-wallet` process requests the hash of a block at a specific height from the `bitcoin-node` process. This example demonstrates the practical application of the IPC mechanism, specifically the interplay between C++ method calls and Cap’n Proto-generated RPC calls. +Let’s walk through an example where the `vincoin-wallet` process requests the hash of a block at a specific height from the `vincoin-node` process. This example demonstrates the practical application of the IPC mechanism, specifically the interplay between C++ method calls and Cap’n Proto-generated RPC calls.
    ```mermaid sequenceDiagram - box "bitcoin-wallet process" + box "vincoin-wallet process" participant WalletCode as Wallet code participant ChainClient as Generated Chain client class
    ProxyClient end - box "bitcoin-node process" + box "vincoin-node process" participant ChainServer as Generated Chain server class
    ProxyServer participant LocalChain as Chain object
    node::ChainImpl end @@ -183,46 +183,46 @@ sequenceDiagram Chain::getBlockHash call diagram
    -1. **Initiation in bitcoin-wallet** +1. **Initiation in vincoin-wallet** - The wallet process calls the `getBlockHash` method on a `Chain` object. This method is defined as a virtual method in [`src/interfaces/chain.h`](../../src/interfaces/chain.h). 2. **Translation to Cap’n Proto RPC** - The `Chain::getBlockHash` virtual method is overridden by the `Chain` [client subclass](#c-client-subclasses-in-generated-code) to translate the method call into a Cap’n Proto RPC call. - - The client subclass is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/bitcoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). + - The client subclass is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/vincoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). 3. **Request Preparation and Dispatch** - - The `getBlockHash` method of the generated `Chain` client subclass in `bitcoin-wallet` populates a Cap’n Proto request with the `height` parameter, sends it to `bitcoin-node` process, and waits for a response. + - The `getBlockHash` method of the generated `Chain` client subclass in `vincoin-wallet` populates a Cap’n Proto request with the `height` parameter, sends it to `vincoin-node` process, and waits for a response. -4. **Handling in bitcoin-node** - - Upon receiving the request, the Cap'n Proto dispatching code in the `bitcoin-node` process calls the `getBlockHash` method of the `Chain` [server class](#c-server-classes-in-generated-code). - - The server class is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/bitcoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). - - The `getBlockHash` method of the generated `Chain` server subclass in `bitcoin-wallet` receives a Cap’n Proto request object with the `height` parameter, and calls the `getBlockHash` method on its local `Chain` object with the provided `height`. - - When the call returns, it encapsulates the return value in a Cap’n Proto response, which it sends back to the `bitcoin-wallet` process, +4. **Handling in vincoin-node** + - Upon receiving the request, the Cap'n Proto dispatching code in the `vincoin-node` process calls the `getBlockHash` method of the `Chain` [server class](#c-server-classes-in-generated-code). + - The server class is automatically generated by the `mpgen` tool from the [`chain.capnp`](https://github.com/ryanofsky/vincoin/blob/pr/ipc/src/ipc/capnp/chain.capnp) file in [`src/ipc/capnp/`](../../src/ipc/capnp/). + - The `getBlockHash` method of the generated `Chain` server subclass in `vincoin-wallet` receives a Cap’n Proto request object with the `height` parameter, and calls the `getBlockHash` method on its local `Chain` object with the provided `height`. + - When the call returns, it encapsulates the return value in a Cap’n Proto response, which it sends back to the `vincoin-wallet` process, 5. **Response and Return** - - The `getBlockHash` method of the generated `Chain` client subclass in `bitcoin-wallet` which sent the request now receives the response. + - The `getBlockHash` method of the generated `Chain` client subclass in `vincoin-wallet` which sent the request now receives the response. - It extracts the block hash value from the response, and returns it to the original caller. ## Future Enhancements Further improvements are possible such as: -- Separating indexes from `bitcoin-node`, and running indexing code in separate processes (see [indexes: Stop using node internal types #24230](https://github.com/bitcoin/bitcoin/pull/24230)). +- Separating indexes from `vincoin-node`, and running indexing code in separate processes (see [indexes: Stop using node internal types #24230](https://github.com/vincoin/vincoin/pull/24230)). - Enabling wallet processes to listen for JSON-RPC requests on their own ports instead of needing the node process to listen and forward requests to them. - Automatically generating `.capnp` files from C++ interface definitions (see [Interface Definition Maintenance](#interface-definition-maintenance)). - Simplifying and stabilizing interfaces (see [Interface Stability](#interface-stability)). -- Adding sandbox features, restricting subprocess access to resources and data (see [https://eklitzke.org/multiprocess-bitcoin](https://eklitzke.org/multiprocess-bitcoin)). -- Using Cap'n Proto's support for [other languages](https://capnproto.org/otherlang.html), such as [Rust](https://github.com/capnproto/capnproto-rust), to allow code written in other languages to call Bitcoin Core C++ code, and vice versa (see [How to rustify libmultiprocess? #56](https://github.com/chaincodelabs/libmultiprocess/issues/56)). +- Adding sandbox features, restricting subprocess access to resources and data (see [https://eklitzke.org/multiprocess-vincoin](https://eklitzke.org/multiprocess-vincoin)). +- Using Cap'n Proto's support for [other languages](https://capnproto.org/otherlang.html), such as [Rust](https://github.com/capnproto/capnproto-rust), to allow code written in other languages to call Vincoin Core C++ code, and vice versa (see [How to rustify libmultiprocess? #56](https://github.com/chaincodelabs/libmultiprocess/issues/56)). ## Conclusion -This modularization represents an advancement in Bitcoin Core's architecture, offering enhanced security, flexibility, and maintainability. The project invites collaboration and feedback from the community. +This modularization represents an advancement in Vincoin Core's architecture, offering enhanced security, flexibility, and maintainability. The project invites collaboration and feedback from the community. ## Appendices ### Glossary of Terms -- **abstract class**: A class in C++ that consists of virtual functions. In the Bitcoin Core project, they define interfaces for inter-component communication. +- **abstract class**: A class in C++ that consists of virtual functions. In the Vincoin Core project, they define interfaces for inter-component communication. - **asynchronous I/O**: A form of input/output processing that allows a program to continue other operations while a transmission is in progress. @@ -232,11 +232,11 @@ This modularization represents an advancement in Bitcoin Core's architecture, of - **Cap’n Proto struct**: A structured data format used in Cap’n Proto, similar to structs in C++, for organizing and transporting data across different processes. -- **client class (in generated code)**: A C++ class generated from a Cap’n Proto interface which inherits from a Bitcoin core abstract class, and implements each virtual method to send IPC requests to another process. (see also [components section](#c-client-subclasses-in-generated-code)) +- **client class (in generated code)**: A C++ class generated from a Cap’n Proto interface which inherits from a Vincoin core abstract class, and implements each virtual method to send IPC requests to another process. (see also [components section](#c-client-subclasses-in-generated-code)) - **IPC (inter-process communication)**: Mechanisms that enable processes to exchange requests and data. -- **ipc::Exception class**: A class within Bitcoin Core's protocol-agnostic IPC code that is thrown by client class methods when there is an IPC error. +- **ipc::Exception class**: A class within Vincoin Core's protocol-agnostic IPC code that is thrown by client class methods when there is an IPC error. - **libmultiprocess**: A custom library and code generation tool used for creating IPC interfaces and managing IPC connections. @@ -246,9 +246,9 @@ This modularization represents an advancement in Bitcoin Core's architecture, of - **protocol-agnostic code**: Generic IPC code in [`src/ipc/`](../../src/ipc/) that does not rely on Cap’n Proto and could be used with other protocols. Distinct from code in [`src/ipc/capnp/`](../../src/ipc/capnp/) which relies on Cap’n Proto. -- **RPC (remote procedure call)**: A protocol that enables a program to request a service from another program in a different address space or network. Bitcoin Core uses [JSON-RPC](https://en.wikipedia.org/wiki/JSON-RPC) for RPC. +- **RPC (remote procedure call)**: A protocol that enables a program to request a service from another program in a different address space or network. Vincoin Core uses [JSON-RPC](https://en.wikipedia.org/wiki/JSON-RPC) for RPC. -- **server class (in generated code)**: A C++ class generated from a Cap’n Proto interface which handles requests sent by a _client class_ in another process. The request handled by calling a local Bitcoin Core interface method, and the return values (if any) are sent back in a response. (see also: [components section](#c-server-classes-in-generated-code)) +- **server class (in generated code)**: A C++ class generated from a Cap’n Proto interface which handles requests sent by a _client class_ in another process. The request handled by calling a local Vincoin Core interface method, and the return values (if any) are sent back in a response. (see also: [components section](#c-server-classes-in-generated-code)) - **unix socket**: Communication endpoint which is a filesystem path, used for exchanging data between processes running on the same host. @@ -261,4 +261,4 @@ This modularization represents an advancement in Bitcoin Core's architecture, of ## Acknowledgements -This design doc was written by @ryanofsky, who is grateful to all the reviewers who gave feedback and tested [multiprocess PRs](https://github.com/bitcoin/bitcoin/pull/28722), and everyone else who's helped with this project. Particular thanks to @ariard who deeply reviewed IPC code and improved the design of the IPC library and initialization process. @jnewbery who championed the early refactoring PRs and helped guide them through development and review. @sjors who has reviewed and repeatedly tested multiprocess code, reporting many issues and helping debug them. @hebasto, @fanquake, and @maflcko who made significant improvements to the build system and fixed countless build issues. @vasild and @jamesob who were brave contributors to the libmultiprocess library. And Chaincode Labs for making this work possible. Also thanks to ChatGPT, who actually wrote most of this document (not @ryanofsky). +This design doc was written by @ryanofsky, who is grateful to all the reviewers who gave feedback and tested [multiprocess PRs](https://github.com/vincoin/vincoin/pull/28722), and everyone else who's helped with this project. Particular thanks to @ariard who deeply reviewed IPC code and improved the design of the IPC library and initialization process. @jnewbery who championed the early refactoring PRs and helped guide them through development and review. @sjors who has reviewed and repeatedly tested multiprocess code, reporting many issues and helping debug them. @hebasto, @fanquake, and @maflcko who made significant improvements to the build system and fixed countless build issues. @vasild and @jamesob who were brave contributors to the libmultiprocess library. And Chaincode Labs for making this work possible. Also thanks to ChatGPT, who actually wrote most of this document (not @ryanofsky). diff --git a/doc/developer-notes.md b/doc/developer-notes.md index 8c3845c66c3ea..d62a3bc138021 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -26,7 +26,7 @@ Developer Notes - [Threads](#threads) - [Ignoring IDE/editor files](#ignoring-ideeditor-files) - [Development guidelines](#development-guidelines) - - [General Bitcoin Core](#general-bitcoin-core) + - [General Vincoin Core](#general-vincoin-core) - [Wallet](#wallet) - [General C++](#general-c) - [C++ data structures](#c-data-structures) @@ -246,7 +246,7 @@ Refer to [/test/functional/README.md#style-guidelines](/test/functional/README.m Coding Style (Doxygen-compatible comments) ------------------------------------------ -Bitcoin Core uses [Doxygen](https://www.doxygen.nl/) to generate its official documentation. +Vincoin Core uses [Doxygen](https://www.doxygen.nl/) to generate its official documentation. Use Doxygen-compatible comment blocks for functions, methods, and fields. @@ -394,8 +394,8 @@ If the code is behaving strangely, take a look in the `debug.log` file in the da error and debugging messages are written there. Debug logging can be enabled on startup with the `-debug` and `-loglevel` -configuration options and toggled while bitcoind is running with the `logging` -RPC. For instance, launching bitcoind with `-debug` or `-debug=1` will turn on +configuration options and toggled while vincoind is running with the `logging` +RPC. For instance, launching vincoind with `-debug` or `-debug=1` will turn on all log categories and `-loglevel=trace` will turn on all log severity levels. The Qt code routes `qDebug()` output to `debug.log` under category "qt": run with `-debug=qt` @@ -405,7 +405,7 @@ to see it. If you are testing multi-machine code that needs to operate across the internet, you can run with either the `-signet` or the `-testnet` config option to test -with "play bitcoins" on a test network. +with "play vincoins" on a test network. If you are testing something that can run on one machine, run with the `-regtest` option. In regression test mode, blocks can be created on demand; @@ -413,7 +413,7 @@ see [test/functional/](/test/functional) for tests that run in `-regtest` mode. ### DEBUG_LOCKORDER -Bitcoin Core is a multi-threaded application, and deadlocks or other +Vincoin Core is a multi-threaded application, and deadlocks or other multi-threading bugs can be very difficult to track down. The `--enable-debug` configure option adds `-DDEBUG_LOCKORDER` to the compiler flags. This inserts run-time checks to keep track of which locks are held and adds warnings to the @@ -428,11 +428,11 @@ to the `debug.log` file. The `--enable-debug` configure option adds `-DDEBUG_LOCKCONTENTION` to the compiler flags. You may also enable it manually for a non-debug build by running configure with `-DDEBUG_LOCKCONTENTION` added to your CPPFLAGS, -i.e. `CPPFLAGS="-DDEBUG_LOCKCONTENTION"`, then build and run bitcoind. +i.e. `CPPFLAGS="-DDEBUG_LOCKCONTENTION"`, then build and run vincoind. -You can then use the `-debug=lock` configuration option at bitcoind startup or -`bitcoin-cli logging '["lock"]'` at runtime to turn on lock contention logging. -It can be toggled off again with `bitcoin-cli logging [] '["lock"]'`. +You can then use the `-debug=lock` configuration option at vincoind startup or +`vincoin-cli logging '["lock"]'` at runtime to turn on lock contention logging. +It can be toggled off again with `vincoin-cli logging [] '["lock"]'`. ### Assertions and Checks @@ -465,15 +465,15 @@ other input. Valgrind is a programming tool for memory debugging, memory leak detection, and profiling. The repo contains a Valgrind suppressions file -([`valgrind.supp`](https://github.com/bitcoin/bitcoin/blob/master/contrib/valgrind.supp)) +([`valgrind.supp`](https://github.com/vincoin/vincoin/blob/master/contrib/valgrind.supp)) which includes known Valgrind warnings in our dependencies that cannot be fixed in-tree. Example use: ```shell -$ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin +$ valgrind --suppressions=contrib/valgrind.supp src/test/test_vincoin $ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ - --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite -$ valgrind -v --leak-check=full src/bitcoind -printtoconsole + --show-leak-kinds=all src/test/test_vincoin --log_level=test_suite +$ valgrind -v --leak-check=full src/vincoind -printtoconsole $ ./test/functional/test_runner.py --valgrind ``` @@ -490,7 +490,7 @@ To enable LCOV report generation during test runs: make make cov -# A coverage report will now be accessible at `./test_bitcoin.coverage/index.html`, +# A coverage report will now be accessible at `./test_vincoin.coverage/index.html`, # which covers unit tests, and `./total.coverage/index.html`, which covers # unit and functional tests. ``` @@ -519,13 +519,13 @@ Make sure you [understand the security trade-offs](https://lwn.net/Articles/420403/) of setting these kernel parameters. -To profile a running bitcoind process for 60 seconds, you could use an +To profile a running vincoind process for 60 seconds, you could use an invocation of `perf record` like this: ```sh $ perf record \ -g --call-graph dwarf --per-thread -F 140 \ - -p `pgrep bitcoind` -- sleep 60 + -p `pgrep vincoind` -- sleep 60 ``` You could then analyze the results by running: @@ -541,7 +541,7 @@ See the functional test documentation for how to invoke perf within tests. ### Sanitizers -Bitcoin Core can be compiled with various "sanitizers" enabled, which add +Vincoin Core can be compiled with various "sanitizers" enabled, which add instrumentation for issues regarding things like memory safety, thread race conditions, or undefined behavior. This is controlled with the `--with-sanitizers` configure flag, which should be a comma separated list of @@ -599,7 +599,7 @@ Additional resources: * [UndefinedBehaviorSanitizer](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) * [GCC Instrumentation Options](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html) * [Google Sanitizers Wiki](https://github.com/google/sanitizers/wiki) - * [Issue #12691: Enable -fsanitize flags in Travis](https://github.com/bitcoin/bitcoin/issues/12691) + * [Issue #12691: Enable -fsanitize flags in Travis](https://github.com/vincoin/vincoin/issues/12691) Locking/mutex usage notes ------------------------- @@ -621,55 +621,55 @@ and its `cs_KeyStore` lock for example). Threads ------- -- [Main thread (`bitcoind`)](https://doxygen.bitcoincore.org/bitcoind_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97) - : Started from `main()` in `bitcoind.cpp`. Responsible for starting up and +- [Main thread (`vincoind`)](https://doxygen.vincoincore.org/vincoind_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97) + : Started from `main()` in `vincoind.cpp`. Responsible for starting up and shutting down the application. -- [Init load (`b-initload`)](https://doxygen.bitcoincore.org/namespacenode.html#ab4305679079866f0f420f7dbf278381d) +- [Init load (`b-initload`)](https://doxygen.vincoincore.org/namespacenode.html#ab4305679079866f0f420f7dbf278381d) : Performs various loading tasks that are part of init but shouldn't block the node from being started: external block import, reindex, reindex-chainstate, main chain activation, spawn indexes background sync threads and mempool load. -- [CCheckQueue::Loop (`b-scriptch.x`)](https://doxygen.bitcoincore.org/class_c_check_queue.html#a6e7fa51d3a25e7cb65446d4b50e6a987) +- [CCheckQueue::Loop (`b-scriptch.x`)](https://doxygen.vincoincore.org/class_c_check_queue.html#a6e7fa51d3a25e7cb65446d4b50e6a987) : Parallel script validation threads for transactions in blocks. -- [ThreadHTTP (`b-http`)](https://doxygen.bitcoincore.org/httpserver_8cpp.html#abb9f6ea8819672bd9a62d3695070709c) +- [ThreadHTTP (`b-http`)](https://doxygen.vincoincore.org/httpserver_8cpp.html#abb9f6ea8819672bd9a62d3695070709c) : Libevent thread to listen for RPC and REST connections. -- [HTTP worker threads(`b-httpworker.x`)](https://doxygen.bitcoincore.org/httpserver_8cpp.html#aa6a7bc27265043bc0193220c5ae3a55f) +- [HTTP worker threads(`b-httpworker.x`)](https://doxygen.vincoincore.org/httpserver_8cpp.html#aa6a7bc27265043bc0193220c5ae3a55f) : Threads to service RPC and REST requests. -- [Indexer threads (`b-txindex`, etc)](https://doxygen.bitcoincore.org/class_base_index.html#a96a7407421fbf877509248bbe64f8d87) +- [Indexer threads (`b-txindex`, etc)](https://doxygen.vincoincore.org/class_base_index.html#a96a7407421fbf877509248bbe64f8d87) : One thread per indexer. -- [SchedulerThread (`b-scheduler`)](https://doxygen.bitcoincore.org/class_c_scheduler.html#a14d2800815da93577858ea078aed1fba) +- [SchedulerThread (`b-scheduler`)](https://doxygen.vincoincore.org/class_c_scheduler.html#a14d2800815da93577858ea078aed1fba) : Does asynchronous background tasks like dumping wallet contents, dumping addrman and running asynchronous validationinterface callbacks. -- [TorControlThread (`b-torcontrol`)](https://doxygen.bitcoincore.org/torcontrol_8cpp.html#a52a3efff23634500bb42c6474f306091) +- [TorControlThread (`b-torcontrol`)](https://doxygen.vincoincore.org/torcontrol_8cpp.html#a52a3efff23634500bb42c6474f306091) : Libevent thread for tor connections. - Net threads: - - [ThreadMessageHandler (`b-msghand`)](https://doxygen.bitcoincore.org/class_c_connman.html#aacdbb7148575a31bb33bc345e2bf22a9) + - [ThreadMessageHandler (`b-msghand`)](https://doxygen.vincoincore.org/class_c_connman.html#aacdbb7148575a31bb33bc345e2bf22a9) : Application level message handling (sending and receiving). Almost all net_processing and validation logic runs on this thread. - - [ThreadDNSAddressSeed (`b-dnsseed`)](https://doxygen.bitcoincore.org/class_c_connman.html#aa7c6970ed98a4a7bafbc071d24897d13) + - [ThreadDNSAddressSeed (`b-dnsseed`)](https://doxygen.vincoincore.org/class_c_connman.html#aa7c6970ed98a4a7bafbc071d24897d13) : Loads addresses of peers from the DNS. - ThreadMapPort (`b-mapport`) : Universal plug-and-play startup/shutdown. - - [ThreadSocketHandler (`b-net`)](https://doxygen.bitcoincore.org/class_c_connman.html#a765597cbfe99c083d8fa3d61bb464e34) + - [ThreadSocketHandler (`b-net`)](https://doxygen.vincoincore.org/class_c_connman.html#a765597cbfe99c083d8fa3d61bb464e34) : Sends/Receives data from peers on port 8333. - - [ThreadOpenAddedConnections (`b-addcon`)](https://doxygen.bitcoincore.org/class_c_connman.html#a0b787caf95e52a346a2b31a580d60a62) + - [ThreadOpenAddedConnections (`b-addcon`)](https://doxygen.vincoincore.org/class_c_connman.html#a0b787caf95e52a346a2b31a580d60a62) : Opens network connections to added nodes. - - [ThreadOpenConnections (`b-opencon`)](https://doxygen.bitcoincore.org/class_c_connman.html#a55e9feafc3bab78e5c9d408c207faa45) + - [ThreadOpenConnections (`b-opencon`)](https://doxygen.vincoincore.org/class_c_connman.html#a55e9feafc3bab78e5c9d408c207faa45) : Initiates new connections to peers. - - [ThreadI2PAcceptIncoming (`b-i2paccept`)](https://doxygen.bitcoincore.org/class_c_connman.html#a57787b4f9ac847d24065fbb0dd6e70f8) + - [ThreadI2PAcceptIncoming (`b-i2paccept`)](https://doxygen.vincoincore.org/class_c_connman.html#a57787b4f9ac847d24065fbb0dd6e70f8) : Listens for and accepts incoming I2P connections through the I2P SAM proxy. Ignoring IDE/editor files @@ -678,7 +678,7 @@ Ignoring IDE/editor files In closed-source environments in which everyone uses the same IDE, it is common to add temporary files it produces to the project-wide `.gitignore` file. -However, in open source software such as Bitcoin Core, where everyone uses +However, in open source software such as Vincoin Core, where everyone uses their own editors/IDE/tools, it is less common. Only you know what files your editor produces and this may change from version to version. The canonical way to do this is thus to create your local gitignore. Add this to `~/.gitconfig`: @@ -708,9 +708,9 @@ Development guidelines ============================ A few non-style-related recommendations for developers, as well as points to -pay attention to for reviewers of Bitcoin Core code. +pay attention to for reviewers of Vincoin Core code. -General Bitcoin Core +General Vincoin Core ---------------------- - New features should be exposed on RPC first, then can be made available in the GUI. @@ -932,7 +932,7 @@ Strings and formatting - For `strprintf`, `LogInfo`, `LogDebug`, etc formatting characters don't need size specifiers. - - *Rationale*: Bitcoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion. + - *Rationale*: Vincoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion. - Use `.c_str()` sparingly. Its only valid use is to pass C++ strings to C functions that take NULL-terminated strings. @@ -1189,13 +1189,13 @@ Subtrees Several parts of the repository are subtrees of software maintained elsewhere. -Some of these are maintained by active developers of Bitcoin Core, in which case +Some of these are maintained by active developers of Vincoin Core, in which case changes should go directly upstream without being PRed directly against the project. They will be merged back in the next subtree merge. Others are external projects without a tight relationship with our project. Changes to these should also be sent upstream, but bugfixes may also be prudent to PR against -a Bitcoin Core subtree, so that they can be integrated quickly. Cosmetic changes +a Vincoin Core subtree, so that they can be integrated quickly. Cosmetic changes should be taken upstream. There is a tool in `test/lint/git-subtree-check.sh` ([instructions](../test/lint#git-subtree-checksh)) @@ -1204,7 +1204,7 @@ to check a subtree directory for consistency with its upstream repository. Current subtrees include: - src/leveldb - - Subtree at https://github.com/bitcoin-core/leveldb-subtree ; maintained by Core contributors. + - Subtree at https://github.com/vincoin-core/leveldb-subtree ; maintained by Core contributors. - Upstream at https://github.com/google/leveldb ; maintained by Google. Open important PRs to the subtree to avoid delay. - **Note**: Follow the instructions in [Upgrading LevelDB](#upgrading-leveldb) when @@ -1212,14 +1212,14 @@ Current subtrees include: - src/crc32c - Used by leveldb for hardware acceleration of CRC32C checksums for data integrity. - - Subtree at https://github.com/bitcoin-core/crc32c-subtree ; maintained by Core contributors. + - Subtree at https://github.com/vincoin-core/crc32c-subtree ; maintained by Core contributors. - Upstream at https://github.com/google/crc32c ; maintained by Google. - src/secp256k1 - - Upstream at https://github.com/bitcoin-core/secp256k1/ ; maintained by Core contributors. + - Upstream at https://github.com/vincoin-core/secp256k1/ ; maintained by Core contributors. - src/crypto/ctaes - - Upstream at https://github.com/bitcoin-core/ctaes ; maintained by Core contributors. + - Upstream at https://github.com/vincoin-core/ctaes ; maintained by Core contributors. - src/minisketch - Upstream at https://github.com/sipa/minisketch ; maintained by Core contributors. @@ -1234,7 +1234,7 @@ you must be aware of. In most configurations, we use the default LevelDB value for `max_open_files`, which is 1000 at the time of this writing. If LevelDB actually uses this many -file descriptors, it will cause problems with Bitcoin's `select()` loop, because +file descriptors, it will cause problems with Vincoin's `select()` loop, because it may cause new sockets to be created where the fd value is >= 1024. For this reason, on 64-bit Unix systems, we rely on an internal LevelDB optimization that uses `mmap()` + `close()` to open table files without actually retaining @@ -1245,7 +1245,7 @@ In addition to reviewing the upstream changes in `env_posix.cc`, you can use `ls check this. For example, on Linux this command will show open `.ldb` file counts: ```bash -$ lsof -p $(pidof bitcoind) |\ +$ lsof -p $(pidof vincoind) |\ awk 'BEGIN { fd=0; mem=0; } /ldb$/ { if ($4 == "mem") mem++; else fd++ } END { printf "mem = %s, fd = %s\n", mem, fd}' mem = 119, fd = 0 ``` @@ -1260,14 +1260,14 @@ details. ### Consensus Compatibility It is possible for LevelDB changes to inadvertently change consensus -compatibility between nodes. This happened in Bitcoin 0.8 (when LevelDB was +compatibility between nodes. This happened in Vincoin 0.8 (when LevelDB was first introduced). When upgrading LevelDB, you should review the upstream changes to check for issues affecting consensus compatibility. For example, if LevelDB had a bug that accidentally prevented a key from being returned in an edge case, and that bug was fixed upstream, the bug "fix" would be an incompatible consensus change. In this situation, the correct behavior -would be to revert the upstream fix before applying the updates to Bitcoin's +would be to revert the upstream fix before applying the updates to Vincoin's copy of LevelDB. In general, you should be wary of any upstream changes affecting what data is returned from LevelDB queries. @@ -1313,13 +1313,13 @@ introduce accidental changes. Some good examples of scripted-diff: -- [scripted-diff: Rename InitInterfaces to NodeContext](https://github.com/bitcoin/bitcoin/commit/301bd41a2e6765b185bd55f4c541f9e27aeea29d) +- [scripted-diff: Rename InitInterfaces to NodeContext](https://github.com/vincoin/vincoin/commit/301bd41a2e6765b185bd55f4c541f9e27aeea29d) uses an elegant script to replace occurrences of multiple terms in all source files. -- [scripted-diff: Remove g_connman, g_banman globals](https://github.com/bitcoin/bitcoin/commit/8922d7f6b751a3e6b3b9f6fb7961c442877fb65a) +- [scripted-diff: Remove g_connman, g_banman globals](https://github.com/vincoin/vincoin/commit/8922d7f6b751a3e6b3b9f6fb7961c442877fb65a) replaces specific terms in a list of specific source files. -- [scripted-diff: Replace fprintf with tfm::format](https://github.com/bitcoin/bitcoin/commit/fac03ec43a15ad547161e37e53ea82482cc508f9) +- [scripted-diff: Replace fprintf with tfm::format](https://github.com/vincoin/vincoin/commit/fac03ec43a15ad547161e37e53ea82482cc508f9) does a global replacement but excludes certain directories. To find all previous uses of scripted diffs in the repository, do: @@ -1386,7 +1386,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: - Try not to overload methods on argument type. E.g. don't make `getblock(true)` and `getblock("hash")` do different things. - - *Rationale*: This is impossible to use with `bitcoin-cli`, and can be surprising to users. + - *Rationale*: This is impossible to use with `vincoin-cli`, and can be surprising to users. - *Exception*: Some RPC calls can take both an `int` and `bool`, most notably when a bool was switched to a multi-value, or due to other historical reasons. **Always** have false map to 0 and @@ -1398,7 +1398,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: - Add every non-string RPC argument `(method, idx, name)` to the table `vRPCConvertParams` in `rpc/client.cpp`. - - *Rationale*: `bitcoin-cli` and the GUI debug console use this table to determine how to + - *Rationale*: `vincoin-cli` and the GUI debug console use this table to determine how to convert a plaintext command line to JSON. If the types don't match, the method can be unusable from there. @@ -1419,7 +1419,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: RPCs whose behavior does *not* depend on the current chainstate may omit this call. - - *Rationale*: In previous versions of Bitcoin Core, the wallet was always + - *Rationale*: In previous versions of Vincoin Core, the wallet was always in-sync with the chainstate (by virtue of them all being updated in the same cs_main lock). In order to maintain the behavior that wallet RPCs return results as of at least the highest best-known block an RPC @@ -1564,4 +1564,4 @@ communication: Note: This last convention isn't generally followed outside of [`src/interfaces/`](../src/interfaces/), though it did come up for discussion - before in [#14635](https://github.com/bitcoin/bitcoin/pull/14635). + before in [#14635](https://github.com/vincoin/vincoin/pull/14635). diff --git a/doc/dnsseed-policy.md b/doc/dnsseed-policy.md index 55a5c28258c67..2a47f3c37a31c 100644 --- a/doc/dnsseed-policy.md +++ b/doc/dnsseed-policy.md @@ -1,12 +1,12 @@ Expectations for DNS Seed operators ==================================== -Bitcoin Core attempts to minimize the level of trust in DNS seeds, +Vincoin Core attempts to minimize the level of trust in DNS seeds, but DNS seeds still pose a small amount of risk for the network. As such, DNS seeds must be run by entities which have some minimum -level of trust within the Bitcoin community. +level of trust within the Vincoin community. -Other implementations of Bitcoin software may also use the same +Other implementations of Vincoin software may also use the same seeds and may be more exposed. In light of this exposure, this document establishes some basic expectations for operating dnsseeds. @@ -16,7 +16,7 @@ and not sell or transfer control of the DNS seed. Any hosting services contracted by the operator are equally expected to uphold these expectations. 1. The DNS seed results must consist exclusively of fairly selected and -functioning Bitcoin nodes from the public network to the best of the +functioning Vincoin nodes from the public network to the best of the operator's understanding and capability. 2. For the avoidance of doubt, the results may be randomized but must not @@ -26,7 +26,7 @@ urgent technical necessity and disclosed. 3. The results may not be served with a DNS TTL of less than one minute. 4. Any logging of DNS queries should be only that which is necessary -for the operation of the service or urgent health of the Bitcoin +for the operation of the service or urgent health of the Vincoin network and must not be retained longer than necessary nor disclosed to any third party. @@ -42,13 +42,13 @@ details of their operating practices. related to the DNS seed operation. If these expectations cannot be satisfied the operator should -discontinue providing services and contact the active Bitcoin +discontinue providing services and contact the active Vincoin Core development team as well as posting on -[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev). +[vincoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/vincoin-dev). Behavior outside of these expectations may be reasonable in some situations but should be discussed in public in advance. See also ---------- -- [bitcoin-seeder](https://github.com/sipa/bitcoin-seeder) is a reference implementation of a DNS seed. +- [vincoin-seeder](https://github.com/sipa/vincoin-seeder) is a reference implementation of a DNS seed. diff --git a/doc/external-signer.md b/doc/external-signer.md index de44cdd88013c..d6d6f9a5cba64 100644 --- a/doc/external-signer.md +++ b/doc/external-signer.md @@ -1,29 +1,29 @@ -# Support for signing transactions outside of Bitcoin Core +# Support for signing transactions outside of Vincoin Core -Bitcoin Core can be launched with `-signer=` where `` is an external tool which can sign transactions and perform other functions. For example, it can be used to communicate with a hardware wallet. +Vincoin Core can be launched with `-signer=` where `` is an external tool which can sign transactions and perform other functions. For example, it can be used to communicate with a hardware wallet. ## Example usage -The following example is based on the [HWI](https://github.com/bitcoin-core/HWI) tool. Version 2.0 or newer is required. Although this tool is hosted under the Bitcoin Core GitHub organization and maintained by Bitcoin Core developers, it should be used with caution. It is considered experimental and has far less review than Bitcoin Core itself. Be particularly careful when running tools such as these on a computer with private keys on it. +The following example is based on the [HWI](https://github.com/vincoin-core/HWI) tool. Version 2.0 or newer is required. Although this tool is hosted under the Vincoin Core GitHub organization and maintained by Vincoin Core developers, it should be used with caution. It is considered experimental and has far less review than Vincoin Core itself. Be particularly careful when running tools such as these on a computer with private keys on it. -When using a hardware wallet, consult the manufacturer website for (alternative) software they recommend. As long as their software conforms to the standard below, it should be able to work with Bitcoin Core. +When using a hardware wallet, consult the manufacturer website for (alternative) software they recommend. As long as their software conforms to the standard below, it should be able to work with Vincoin Core. -Start Bitcoin Core: +Start Vincoin Core: ```sh -$ bitcoind -signer=../HWI/hwi.py +$ vincoind -signer=../HWI/hwi.py ``` ### Device setup -Follow the hardware manufacturers instructions for the initial device setup, as well as their instructions for creating a backup. Alternatively, for some devices, you can use the `setup`, `restore` and `backup` commands provided by [HWI](https://github.com/bitcoin-core/HWI). +Follow the hardware manufacturers instructions for the initial device setup, as well as their instructions for creating a backup. Alternatively, for some devices, you can use the `setup`, `restore` and `backup` commands provided by [HWI](https://github.com/vincoin-core/HWI). ### Create wallet and import keys Get a list of signing devices / services: ``` -$ bitcoin-cli enumeratesigners +$ vincoin-cli enumeratesigners { "signers": [ { @@ -37,7 +37,7 @@ The master key fingerprint is used to identify a device. Create a wallet, this automatically imports the public keys: ```sh -$ bitcoin-cli createwallet "hww" true true "" true true true +$ vincoin-cli createwallet "hww" true true "" true true true ``` ### Verify an address @@ -45,18 +45,18 @@ $ bitcoin-cli createwallet "hww" true true "" true true true Display an address on the device: ```sh -$ bitcoin-cli -rpcwallet= getnewaddress -$ bitcoin-cli -rpcwallet= walletdisplayaddress
    +$ vincoin-cli -rpcwallet= getnewaddress +$ vincoin-cli -rpcwallet= walletdisplayaddress
    ``` Replace `
    ` with the result of `getnewaddress`. ### Spending -Under the hood this uses a [Partially Signed Bitcoin Transaction](psbt.md). +Under the hood this uses a [Partially Signed Vincoin Transaction](psbt.md). ```sh -$ bitcoin-cli -rpcwallet= sendtoaddress
    +$ vincoin-cli -rpcwallet= sendtoaddress
    ``` This prompts your hardware wallet to sign, and fail if it's not connected. If successful @@ -68,11 +68,11 @@ it automatically broadcasts the transaction. ## Signer API -In order to be compatible with Bitcoin Core any signer command should conform to the specification below. This specification is subject to change. Ideally a BIP should propose a standard so that other wallets can also make use of it. +In order to be compatible with Vincoin Core any signer command should conform to the specification below. This specification is subject to change. Ideally a BIP should propose a standard so that other wallets can also make use of it. Prerequisite knowledge: * [Output Descriptors](descriptors.md) -* Partially Signed Bitcoin Transaction ([PSBT](psbt.md)) +* Partially Signed Vincoin Transaction ([PSBT](psbt.md)) ### `enumerate` (required) @@ -156,7 +156,7 @@ If contains an xpub, the command MUST fail if it does not match the The command MAY complain if `--testnet` is set, but the BIP32 coin type is not `1h` (and vice versa). -## How Bitcoin Core uses the Signer API +## How Vincoin Core uses the Signer API The `enumeratesigners` RPC simply calls ` enumerate`. diff --git a/doc/files.md b/doc/files.md index f88d3f91a1c16..99dd28220c0c7 100644 --- a/doc/files.md +++ b/doc/files.md @@ -1,4 +1,4 @@ -# Bitcoin Core file system +# Vincoin Core file system **Contents** @@ -20,19 +20,19 @@ ## Data directory location -The data directory is the default location where the Bitcoin Core files are stored. +The data directory is the default location where the Vincoin Core files are stored. 1. The default data directory paths for supported platforms are: Platform | Data directory path ---------|-------------------- -Linux | `$HOME/.bitcoin/` -macOS | `$HOME/Library/Application Support/Bitcoin/` -Windows | `%APPDATA%\Bitcoin\` [\[1\]](#note1) +Linux | `$HOME/.vincoin/` +macOS | `$HOME/Library/Application Support/Vincoin/` +Windows | `%APPDATA%\Vincoin\` [\[1\]](#note1) 2. A custom data directory path can be specified with the `-datadir` option. -3. All content of the data directory, except for `bitcoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ: +3. All content of the data directory, except for `vincoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ: Chain option | Data directory path -------------------------------|------------------------------ @@ -47,7 +47,7 @@ Subdirectory | File(s) | Description -------------------|-----------------------|------------ `blocks/` | | Blocks directory; can be specified by `-blocksdir` option (except for `blocks/index/`) `blocks/index/` | LevelDB database | Block index; `-blocksdir` option does not affect this path -`blocks/` | `blkNNNNN.dat`[\[2\]](#note2) | Actual Bitcoin blocks (in network format, dumped in raw on disk, 128 MiB per file) +`blocks/` | `blkNNNNN.dat`[\[2\]](#note2) | Actual Vincoin blocks (in network format, dumped in raw on disk, 128 MiB per file) `blocks/` | `revNNNNN.dat`[\[2\]](#note2) | Block undo data (custom format) `chainstate/` | LevelDB database | Blockchain state (a compact representation of all currently unspent transaction outputs (UTXOs) and metadata about the transactions they are from) `indexes/txindex/` | LevelDB database | Transaction index; *optional*, used if `-txindex=1` @@ -57,9 +57,9 @@ Subdirectory | File(s) | Description `wallets/` | | [Contains wallets](#multi-wallet-environment); can be specified by `-walletdir` option; if `wallets/` subdirectory does not exist, wallets reside in the [data directory](#data-directory-location) `./` | `anchors.dat` | Anchor IP address database, created on shutdown and deleted at startup. Anchors are last known outgoing block-relay-only peers that are tried to re-connect to on startup `./` | `banlist.json` | Stores the addresses/subnets of banned nodes. -`./` | `bitcoin.conf` | User-defined [configuration settings](bitcoin-conf.md) for `bitcoind` or `bitcoin-qt`. File is not written to by the software and must be created manually. Path can be specified by `-conf` option -`./` | `bitcoind.pid` | Stores the process ID (PID) of `bitcoind` or `bitcoin-qt` while running; created at start and deleted on shutdown; can be specified by `-pid` option -`./` | `debug.log` | Contains debug information and general logging generated by `bitcoind` or `bitcoin-qt`; can be specified by `-debuglogfile` option +`./` | `vincoin.conf` | User-defined [configuration settings](vincoin-conf.md) for `vincoind` or `vincoin-qt`. File is not written to by the software and must be created manually. Path can be specified by `-conf` option +`./` | `vincoind.pid` | Stores the process ID (PID) of `vincoind` or `vincoin-qt` while running; created at start and deleted on shutdown; can be specified by `-pid` option +`./` | `debug.log` | Contains debug information and general logging generated by `vincoind` or `vincoin-qt`; can be specified by `-debuglogfile` option `./` | `fee_estimates.dat` | Stores statistics used to estimate minimum transaction fees required for confirmation `./` | `guisettings.ini.bak` | Backup of former [GUI settings](#gui-settings) after `-resetguisettings` option is used `./` | `ip_asn.map` | IP addresses to Autonomous System Numbers (ASNs) mapping used for bucketing of the peers; path can be specified with the `-asmap` option @@ -67,7 +67,7 @@ Subdirectory | File(s) | Description `./` | `onion_v3_private_key` | Cached Tor onion service private key for `-listenonion` option `./` | `i2p_private_key` | Private key that corresponds to our I2P address. When `-i2psam=` is specified the contents of this file is used to identify ourselves for making outgoing connections to I2P peers and possibly accepting incoming ones. Automatically generated if it does not exist. `./` | `peers.dat` | Peer IP address database (custom format) -`./` | `settings.json` | Read-write settings set through GUI or RPC interfaces, augmenting manual settings from [bitcoin.conf](bitcoin-conf.md). File is created automatically if read-write settings storage is not disabled with `-nosettings` option. Path can be specified with `-settings` option +`./` | `settings.json` | Read-write settings set through GUI or RPC interfaces, augmenting manual settings from [vincoin.conf](vincoin-conf.md). File is created automatically if read-write settings storage is not disabled with `-nosettings` option. Path can be specified with `-settings` option `./` | `.cookie` | Session RPC authentication cookie; if used, created at start and deleted on shutdown; can be specified by `-rpccookiefile` option `./` | `.lock` | Data directory lock file @@ -105,21 +105,21 @@ Subdirectory | File | Description ## GUI settings -`bitcoin-qt` uses [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored). +`vincoin-qt` uses [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored). ## Legacy subdirectories and files -These subdirectories and files are no longer used by Bitcoin Core: +These subdirectories and files are no longer used by Vincoin Core: Path | Description | Repository notes ---------------|-------------|----------------- -`banlist.dat` | Stores the addresses/subnets of banned nodes; superseded by `banlist.json` in 22.0 and completely ignored in 23.0 | [PR #20966](https://github.com/bitcoin/bitcoin/pull/20966), [PR #22570](https://github.com/bitcoin/bitcoin/pull/22570) -`blktree/` | Blockchain index; replaced by `blocks/index/` in [0.8.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.8.0.md#improvements) | [PR #2231](https://github.com/bitcoin/bitcoin/pull/2231), [`8fdc94cc`](https://github.com/bitcoin/bitcoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) -`coins/` | Unspent transaction output database; replaced by `chainstate/` in 0.8.0 | [PR #2231](https://github.com/bitcoin/bitcoin/pull/2231), [`8fdc94cc`](https://github.com/bitcoin/bitcoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) -`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`[\[2\]](#note2)} in 0.8.0 | [PR #1677](https://github.com/bitcoin/bitcoin/pull/1677) -`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat`[\[2\]](#note2) in 0.8.0 | [PR #1677](https://github.com/bitcoin/bitcoin/pull/1677) -`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/bitcoin/bitcoin/pull/1198), [`928d3a01`](https://github.com/bitcoin/bitcoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc) -`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/bitcoin/bitcoin/pull/19954) +`banlist.dat` | Stores the addresses/subnets of banned nodes; superseded by `banlist.json` in 22.0 and completely ignored in 23.0 | [PR #20966](https://github.com/vincoin/vincoin/pull/20966), [PR #22570](https://github.com/vincoin/vincoin/pull/22570) +`blktree/` | Blockchain index; replaced by `blocks/index/` in [0.8.0](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.8.0.md#improvements) | [PR #2231](https://github.com/vincoin/vincoin/pull/2231), [`8fdc94cc`](https://github.com/vincoin/vincoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) +`coins/` | Unspent transaction output database; replaced by `chainstate/` in 0.8.0 | [PR #2231](https://github.com/vincoin/vincoin/pull/2231), [`8fdc94cc`](https://github.com/vincoin/vincoin/commit/8fdc94cc8f0341e96b1edb3a5b56811c0b20bd15) +`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`[\[2\]](#note2)} in 0.8.0 | [PR #1677](https://github.com/vincoin/vincoin/pull/1677) +`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat`[\[2\]](#note2) in 0.8.0 | [PR #1677](https://github.com/vincoin/vincoin/pull/1677) +`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/vincoin/vincoin/pull/1198), [`928d3a01`](https://github.com/vincoin/vincoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc) +`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/vincoin/vincoin/pull/19954) ## Notes diff --git a/doc/fuzzing.md b/doc/fuzzing.md index a4b0198dd99fe..836dc9bf07125 100644 --- a/doc/fuzzing.md +++ b/doc/fuzzing.md @@ -1,16 +1,16 @@ -# Fuzzing Bitcoin Core using libFuzzer +# Fuzzing Vincoin Core using libFuzzer ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [libFuzzer](https://llvm.org/docs/LibFuzzer.html): +To quickly get started fuzzing Vincoin Core using [libFuzzer](https://llvm.org/docs/LibFuzzer.html): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ ./autogen.sh $ CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=address,fuzzer,undefined # macOS users: If you have problem with this step then make sure to read "macOS hints for -# libFuzzer" on https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md#macos-hints-for-libfuzzer +# libFuzzer" on https://github.com/vincoin/vincoin/blob/master/doc/fuzzing.md#macos-hints-for-libfuzzer $ make $ FUZZ=process_message src/test/fuzz/fuzz # abort fuzzing using ctrl-c @@ -19,13 +19,13 @@ $ FUZZ=process_message src/test/fuzz/fuzz There is also a runner script to execute all fuzz targets. Refer to `./test/fuzz/test_runner.py --help` for more details. -## Overview of Bitcoin Core fuzzing +## Overview of Vincoin Core fuzzing -[Google](https://github.com/google/fuzzing/) has a good overview of fuzzing in general, with contributions from key architects of some of the most-used fuzzers. [This paper](https://agroce.github.io/bitcoin_report.pdf) includes an external overview of the status of Bitcoin Core fuzzing, as of summer 2021. [John Regehr](https://blog.regehr.org/archives/1687) provides good advice on writing code that assists fuzzers in finding bugs, which is useful for developers to keep in mind. +[Google](https://github.com/google/fuzzing/) has a good overview of fuzzing in general, with contributions from key architects of some of the most-used fuzzers. [This paper](https://agroce.github.io/vincoin_report.pdf) includes an external overview of the status of Vincoin Core fuzzing, as of summer 2021. [John Regehr](https://blog.regehr.org/archives/1687) provides good advice on writing code that assists fuzzers in finding bugs, which is useful for developers to keep in mind. ## Fuzzing harnesses and output -[`process_message`](https://github.com/bitcoin/bitcoin/blob/master/src/test/fuzz/process_message.cpp) is a fuzzing harness for the [`ProcessMessage(...)` function (`net_processing`)](https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp). The available fuzzing harnesses are found in [`src/test/fuzz/`](https://github.com/bitcoin/bitcoin/tree/master/src/test/fuzz). +[`process_message`](https://github.com/vincoin/vincoin/blob/master/src/test/fuzz/process_message.cpp) is a fuzzing harness for the [`ProcessMessage(...)` function (`net_processing`)](https://github.com/vincoin/vincoin/blob/master/src/net_processing.cpp). The available fuzzing harnesses are found in [`src/test/fuzz/`](https://github.com/vincoin/vincoin/tree/master/src/test/fuzz). The fuzzer will output `NEW` every time it has created a test input that covers new areas of the code under test. For more information on how to interpret the fuzzer output, see the [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html). @@ -71,7 +71,7 @@ block^@M-^?M-^?M-^?M-^?M-^?nM-^?M-^? In this case the fuzzer managed to create a `block` message which when passed to `ProcessMessage(...)` increased coverage. -It is possible to specify `bitcoind` arguments to the `fuzz` executable. +It is possible to specify `vincoind` arguments to the `fuzz` executable. Depending on the test, they may be ignored or consumed and alter the behavior of the test. Just make sure to use double-dash to distinguish them from the fuzzer's own arguments: @@ -82,12 +82,12 @@ $ FUZZ=address_deserialize_v2 src/test/fuzz/fuzz -runs=1 fuzz_seed_corpus/addres ## Fuzzing corpora -The project's collection of seed corpora is found in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. +The project's collection of seed corpora is found in the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) repo. -To fuzz `process_message` using the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) seed corpus: +To fuzz `process_message` using the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) seed corpus: ```sh -$ git clone https://github.com/bitcoin-core/qa-assets +$ git clone https://github.com/vincoin-core/qa-assets $ FUZZ=process_message src/test/fuzz/fuzz qa-assets/fuzz_seed_corpus/process_message/ INFO: Seed: 1346407872 INFO: Loaded 1 modules (424174 inline 8-bit counters): 424174 [0x55d8a9004ab8, 0x55d8a906c3a6), @@ -101,7 +101,7 @@ INFO: seed corpus: files: 991 min: 1b max: 1858b total: 288291b rss: 150Mb ## Run without sanitizers for increased throughput -Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets. +Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/vincoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets. ## Reproduce a fuzzer crash reported by the CI @@ -117,9 +117,9 @@ Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` ## Submit improved coverage -If you find coverage increasing inputs when fuzzing you are highly encouraged to submit them for inclusion in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. +If you find coverage increasing inputs when fuzzing you are highly encouraged to submit them for inclusion in the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) repo. -Every single pull request submitted against the Bitcoin Core repo is automatically tested against all inputs in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. Contributing new coverage increasing inputs is an easy way to help make Bitcoin Core more robust. +Every single pull request submitted against the Vincoin Core repo is automatically tested against all inputs in the [`vincoin-core/qa-assets`](https://github.com/vincoin-core/qa-assets) repo. Contributing new coverage increasing inputs is an easy way to help make Vincoin Core more robust. ## macOS hints for libFuzzer @@ -129,7 +129,7 @@ example using `brew install llvm`. Should you run into problems with the address sanitizer, it is possible you may need to run `./configure` with `--disable-asm` to avoid errors -with certain assembly code from Bitcoin Core's code. See [developer notes on sanitizers](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#sanitizers) +with certain assembly code from Vincoin Core's code. See [developer notes on sanitizers](https://github.com/vincoin/vincoin/blob/master/doc/developer-notes.md#sanitizers) for more information. You may also need to take care of giving the correct path for `clang` and @@ -144,15 +144,15 @@ Full configure that was tested on macOS with `brew` installed `llvm`: Read the [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html) for more information. This [libFuzzer tutorial](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md) might also be of interest. -# Fuzzing Bitcoin Core using afl++ +# Fuzzing Vincoin Core using afl++ ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [afl++](https://github.com/AFLplusplus/AFLplusplus): +To quickly get started fuzzing Vincoin Core using [afl++](https://github.com/AFLplusplus/AFLplusplus): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ git clone https://github.com/AFLplusplus/AFLplusplus $ make -C AFLplusplus/ source-only $ ./autogen.sh @@ -171,15 +171,15 @@ $ FUZZ=bech32 AFLplusplus/afl-fuzz -i inputs/ -o outputs/ -- src/test/fuzz/fuzz Read the [afl++ documentation](https://github.com/AFLplusplus/AFLplusplus) for more information. -# Fuzzing Bitcoin Core using Honggfuzz +# Fuzzing Vincoin Core using Honggfuzz ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [Honggfuzz](https://github.com/google/honggfuzz): +To quickly get started fuzzing Vincoin Core using [Honggfuzz](https://github.com/google/honggfuzz): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ ./autogen.sh $ git clone https://github.com/google/honggfuzz $ cd honggfuzz/ @@ -193,10 +193,10 @@ $ FUZZ=process_message honggfuzz/honggfuzz -i inputs/ -- src/test/fuzz/fuzz Read the [Honggfuzz documentation](https://github.com/google/honggfuzz/blob/master/docs/USAGE.md) for more information. -## Fuzzing the Bitcoin Core P2P layer using Honggfuzz NetDriver +## Fuzzing the Vincoin Core P2P layer using Honggfuzz NetDriver -Honggfuzz NetDriver allows for very easy fuzzing of TCP servers such as Bitcoin -Core without having to write any custom fuzzing harness. The `bitcoind` server +Honggfuzz NetDriver allows for very easy fuzzing of TCP servers such as Vincoin +Core without having to write any custom fuzzing harness. The `vincoind` server process is largely fuzzed without modification. This makes the fuzzing highly realistic: a bug reachable by the fuzzer is likely @@ -205,10 +205,10 @@ also remotely triggerable by an untrusted peer. To quickly get started fuzzing the P2P layer using Honggfuzz NetDriver: ```sh -$ mkdir bitcoin-honggfuzz-p2p/ -$ cd bitcoin-honggfuzz-p2p/ -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ mkdir vincoin-honggfuzz-p2p/ +$ cd vincoin-honggfuzz-p2p/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ ./autogen.sh $ git clone https://github.com/google/honggfuzz $ cd honggfuzz/ @@ -259,24 +259,24 @@ index 7601a6ea84..702d0f56ce 100644 SanitizeString(msg.m_type), msg.m_message_size, HexStr(Span{hash}.first(CMessageHeader::CHECKSUM_SIZE)), EOF -$ make -C src/ bitcoind +$ make -C src/ vincoind $ mkdir -p inputs/ $ honggfuzz/honggfuzz --exit_upon_crash --quiet --timeout 4 -n 1 -Q \ -E HFND_TCP_PORT=18444 -f inputs/ -- \ - src/bitcoind -regtest -discover=0 -dns=0 -dnsseed=0 -listenonion=0 \ + src/vincoind -regtest -discover=0 -dns=0 -dnsseed=0 -listenonion=0 \ -nodebuglogfile -bind=127.0.0.1:18444 -logthreadnames \ -debug ``` -# Fuzzing Bitcoin Core using Eclipser (v1.x) +# Fuzzing Vincoin Core using Eclipser (v1.x) ## Quickstart guide -To quickly get started fuzzing Bitcoin Core using [Eclipser v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x): +To quickly get started fuzzing Vincoin Core using [Eclipser v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x): ```sh -$ git clone https://github.com/bitcoin/bitcoin -$ cd bitcoin/ +$ git clone https://github.com/vincoin/vincoin +$ cd vincoin/ $ sudo vim /etc/apt/sources.list # Uncomment the lines starting with 'deb-src'. $ sudo apt-get update $ sudo apt-get build-dep qemu @@ -324,27 +324,27 @@ be decoded in the same way. Fuzzing with Eclipser will likely be much more effective if using an existing corpus: ```sh -$ git clone https://github.com/bitcoin-core/qa-assets +$ git clone https://github.com/vincoin-core/qa-assets $ FUZZ=bech32 dotnet Eclipser/build/Eclipser.dll fuzz -p src/test/fuzz/fuzz -t 36000 -i qa-assets/fuzz_seed_corpus/bech32 outputs --src stdin ``` Note that fuzzing with Eclipser on certain targets (those that create 'full nodes', e.g. `process_message*`) will, for now, slowly fill `/tmp/` with improperly cleaned-up files, which will cause spurious crashes. -See [this proposed patch](https://github.com/bitcoin/bitcoin/pull/22472) for more information. +See [this proposed patch](https://github.com/vincoin/vincoin/pull/22472) for more information. Read the [Eclipser documentation for v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x) for more details on using Eclipser. # OSS-Fuzz -Bitcoin Core participates in Google's [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/bitcoin-core) -program, which includes a dashboard of [publicly disclosed vulnerabilities](https://bugs.chromium.org/p/oss-fuzz/issues/list?q=bitcoin-core). +Vincoin Core participates in Google's [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/vincoin-core) +program, which includes a dashboard of [publicly disclosed vulnerabilities](https://bugs.chromium.org/p/oss-fuzz/issues/list?q=vincoin-core). Generally, we try to disclose vulnerabilities as soon as possible after they are fixed to give users the knowledge they need to be protected. However, -because Bitcoin is a live P2P network, and not just standalone local software, +because Vincoin is a live P2P network, and not just standalone local software, we might not fully disclose every issue within Google's standard [90-day disclosure window](https://google.github.io/oss-fuzz/getting-started/bug-disclosure-guidelines/) if a partial or delayed disclosure is important to protect users or the function of the network. -OSS-Fuzz also produces [a fuzzing coverage report](https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_bitcoin-core/latest). +OSS-Fuzz also produces [a fuzzing coverage report](https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_vincoin-core/latest). diff --git a/doc/guix.md b/doc/guix.md index fa9c74f4860f5..81f8b35eadbee 100644 --- a/doc/guix.md +++ b/doc/guix.md @@ -1,3 +1,3 @@ -# Bootstrappable Bitcoin Core Builds +# Bootstrappable Vincoin Core Builds See [contrib/guix/README.md](../contrib/guix/README.md) diff --git a/doc/i2p.md b/doc/i2p.md index b6c07388b7816..e8b236bf84f37 100644 --- a/doc/i2p.md +++ b/doc/i2p.md @@ -1,16 +1,16 @@ -# I2P support in Bitcoin Core +# I2P support in Vincoin Core -It is possible to run Bitcoin Core as an +It is possible to run Vincoin Core as an [I2P (Invisible Internet Project)](https://en.wikipedia.org/wiki/I2P) service and connect to such services. This [glossary](https://geti2p.net/en/about/glossary) may be useful to get started with I2P terminology. -## Run Bitcoin Core with an I2P router (proxy) +## Run Vincoin Core with an I2P router (proxy) A running I2P router (proxy) is required with the [SAM](https://geti2p.net/en/docs/api/samv3) -application bridge enabled. The following routers are recommended for use with Bitcoin Core: +application bridge enabled. The following routers are recommended for use with Vincoin Core: - [i2prouter (I2P Router)](https://geti2p.net), the official implementation in Java. The SAM bridge is not enabled by default; it must be started manually, @@ -23,7 +23,7 @@ application bridge enabled. The following routers are recommended for use with B Note the IP address and port the SAM proxy is listening to; usually, it is `127.0.0.1:7656`. -Once an I2P router with SAM enabled is up and running, use the following Bitcoin +Once an I2P router with SAM enabled is up and running, use the following Vincoin Core configuration options: ``` @@ -41,7 +41,7 @@ Core configuration options: In a typical situation, this suffices: ``` -bitcoind -i2psam=127.0.0.1:7656 +vincoind -i2psam=127.0.0.1:7656 ``` ## Additional configuration options related to I2P @@ -51,7 +51,7 @@ bitcoind -i2psam=127.0.0.1:7656 ``` Set the `debug=i2p` config logging option to see additional information in the -debug log about your I2P configuration and connections. Run `bitcoin-cli help +debug log about your I2P configuration and connections. Run `vincoin-cli help logging` for more information. ``` @@ -62,11 +62,11 @@ Make automatic outbound connections only to I2P addresses. Inbound and manual connections are not affected by this option. It can be specified multiple times to allow multiple networks, e.g. onlynet=onion, onlynet=i2p. -I2P support was added to Bitcoin Core in version 22.0 and there may be fewer I2P +I2P support was added to Vincoin Core in version 22.0 and there may be fewer I2P peers than Tor or IP ones. Therefore, using I2P alone without other networks may make a node more susceptible to [Sybil -attacks](https://en.bitcoin.it/wiki/Weaknesses#Sybil_attack). You can use -`bitcoin-cli -addrinfo` to see the number of I2P addresses known to your node. +attacks](https://en.vincoin.it/wiki/Weaknesses#Sybil_attack). You can use +`vincoin-cli -addrinfo` to see the number of I2P addresses known to your node. Another consideration with `onlynet=i2p` is that the initial blocks download phase when syncing up a new node can be very slow. This phase can be sped up by @@ -78,10 +78,10 @@ one of the networks has issues. ## Persistent vs transient I2P addresses -The first time Bitcoin Core connects to the I2P router, it automatically +The first time Vincoin Core connects to the I2P router, it automatically generates a persistent I2P address and its corresponding private key by default or if `-i2pacceptincoming=1` is set. The private key is saved in a file named -`i2p_private_key` in the Bitcoin Core data directory. The persistent I2P +`i2p_private_key` in the Vincoin Core data directory. The persistent I2P address is used for making outbound connections and accepting inbound connections. @@ -98,25 +98,25 @@ I2P addresses are designed to be long-lived. Waiting for tunnels to be built for every peer connection adds delay to connection setup time. Therefore, I2P listening should only be turned off if really needed. -## Fetching I2P-related information from Bitcoin Core +## Fetching I2P-related information from Vincoin Core -There are several ways to see your I2P address in Bitcoin Core if accepting +There are several ways to see your I2P address in Vincoin Core if accepting incoming I2P connections (`-i2pacceptincoming`): - in the "Local addresses" output of CLI `-netinfo` - in the "localaddresses" output of RPC `getnetworkinfo` - in the debug log (grep for `AddLocal`; the I2P address ends in `.b32.i2p`) -To see which I2P peers your node is connected to, use `bitcoin-cli -netinfo 4` -or the `getpeerinfo` RPC (e.g. `bitcoin-cli getpeerinfo`). +To see which I2P peers your node is connected to, use `vincoin-cli -netinfo 4` +or the `getpeerinfo` RPC (e.g. `vincoin-cli getpeerinfo`). -You can use the `getnodeaddresses` RPC to fetch a number of I2P peers known to your node; run `bitcoin-cli help getnodeaddresses` for details. +You can use the `getnodeaddresses` RPC to fetch a number of I2P peers known to your node; run `vincoin-cli help getnodeaddresses` for details. ## Compatibility -Bitcoin Core uses the [SAM v3.1](https://geti2p.net/en/docs/api/samv3) protocol +Vincoin Core uses the [SAM v3.1](https://geti2p.net/en/docs/api/samv3) protocol to connect to the I2P network. Any I2P router that supports it can be used. -## Ports in I2P and Bitcoin Core +## Ports in I2P and Vincoin Core One particularity of SAM v3.1 is that it does not support ports, unlike newer versions of SAM (v3.2 and up) that do support them and default the @@ -124,18 +124,18 @@ port numbers to 0. From the point of view of peers that use newer versions of SAM or other protocols that support ports, a SAM v3.1 peer is connecting to them on port 0, from source port 0. -To allow future upgrades to newer versions of SAM, Bitcoin Core sets its +To allow future upgrades to newer versions of SAM, Vincoin Core sets its listening port to 0 when listening for incoming I2P connections and advertises its own I2P address with port 0. Furthermore, it will not attempt to connect to I2P addresses with a non-zero port number because with SAM v3.1 the destination -port (`TO_PORT`) is always set to 0 and is not in the control of Bitcoin Core. +port (`TO_PORT`) is always set to 0 and is not in the control of Vincoin Core. ## Bandwidth By default, your node shares bandwidth and transit tunnels with the I2P network in order to increase your anonymity with cover traffic, help the I2P router used by your node integrate optimally with the network, and give back to the network. -It's important that the nodes of a popular application like Bitcoin contribute +It's important that the nodes of a popular application like Vincoin contribute as much to the I2P network as they consume. It is possible, though strongly discouraged, to change your I2P router @@ -162,7 +162,7 @@ in [Embedding I2P in your Application](https://geti2p.net/en/docs/applications/e In most cases, the default router settings should work fine. -## Bundling I2P in a Bitcoin application +## Bundling I2P in a Vincoin application Please see the "General Guidance for Developers" section in https://geti2p.net/en/docs/api/samv3 -if you are developing a downstream application that may be bundling I2P with Bitcoin. +if you are developing a downstream application that may be bundling I2P with Vincoin. diff --git a/doc/init.md b/doc/init.md index 7f7902771802e..e4fd4d570e0ca 100644 --- a/doc/init.md +++ b/doc/init.md @@ -1,36 +1,36 @@ -Sample init scripts and service configuration for bitcoind +Sample init scripts and service configuration for vincoind ========================================================== Sample scripts and configuration files for systemd, Upstart and OpenRC can be found in the contrib/init folder. - contrib/init/bitcoind.service: systemd service unit configuration - contrib/init/bitcoind.openrc: OpenRC compatible SysV style init script - contrib/init/bitcoind.openrcconf: OpenRC conf.d file - contrib/init/bitcoind.conf: Upstart service configuration file - contrib/init/bitcoind.init: CentOS compatible SysV style init script + contrib/init/vincoind.service: systemd service unit configuration + contrib/init/vincoind.openrc: OpenRC compatible SysV style init script + contrib/init/vincoind.openrcconf: OpenRC conf.d file + contrib/init/vincoind.conf: Upstart service configuration file + contrib/init/vincoind.init: CentOS compatible SysV style init script Service User --------------------------------- -All three Linux startup configurations assume the existence of a "bitcoin" user +All three Linux startup configurations assume the existence of a "vincoin" user and group. They must be created before attempting to use these scripts. -The macOS configuration assumes bitcoind will be set up for the current user. +The macOS configuration assumes vincoind will be set up for the current user. Configuration --------------------------------- -Running bitcoind as a daemon does not require any manual configuration. You may -set the `rpcauth` setting in the `bitcoin.conf` configuration file to override +Running vincoind as a daemon does not require any manual configuration. You may +set the `rpcauth` setting in the `vincoin.conf` configuration file to override the default behaviour of using a special cookie for authentication. This password does not have to be remembered or typed as it is mostly used -as a fixed token that bitcoind and client programs read from the configuration +as a fixed token that vincoind and client programs read from the configuration file, however it is recommended that a strong and secure password be used as this password is security critical to securing the wallet should the wallet be enabled. -If bitcoind is run with the "-server" flag (set by default), and no rpcpassword is set, +If vincoind is run with the "-server" flag (set by default), and no rpcpassword is set, it will use a special cookie file for authentication. The cookie is generated with random content when the daemon starts, and deleted when it exits. Read access to this file controls who can access it through RPC. @@ -38,13 +38,13 @@ controls who can access it through RPC. By default the cookie is stored in the data directory, but it's location can be overridden with the option '-rpccookiefile'. -This allows for running bitcoind without having to do any manual configuration. +This allows for running vincoind without having to do any manual configuration. `conf`, `pid`, and `wallet` accept relative paths which are interpreted as relative to the data directory. `wallet` *only* supports relative paths. For an example configuration file that describes the configuration settings, -see `share/examples/bitcoin.conf`. +see `share/examples/vincoin.conf`. Paths --------------------------------- @@ -53,41 +53,41 @@ Paths All three configurations assume several paths that might need to be adjusted. - Binary: /usr/bin/bitcoind - Configuration file: /etc/bitcoin/bitcoin.conf - Data directory: /var/lib/bitcoind - PID file: /var/run/bitcoind/bitcoind.pid (OpenRC and Upstart) or - /run/bitcoind/bitcoind.pid (systemd) - Lock file: /var/lock/subsys/bitcoind (CentOS) + Binary: /usr/bin/vincoind + Configuration file: /etc/vincoin/vincoin.conf + Data directory: /var/lib/vincoind + PID file: /var/run/vincoind/vincoind.pid (OpenRC and Upstart) or + /run/vincoind/vincoind.pid (systemd) + Lock file: /var/lock/subsys/vincoind (CentOS) The PID directory (if applicable) and data directory should both be owned by the -bitcoin user and group. It is advised for security reasons to make the -configuration file and data directory only readable by the bitcoin user and -group. Access to bitcoin-cli and other bitcoind rpc clients can then be +vincoin user and group. It is advised for security reasons to make the +configuration file and data directory only readable by the vincoin user and +group. Access to vincoin-cli and other vincoind rpc clients can then be controlled by group membership. NOTE: When using the systemd .service file, the creation of the aforementioned directories and the setting of their permissions is automatically handled by -systemd. Directories are given a permission of 710, giving the bitcoin group +systemd. Directories are given a permission of 710, giving the vincoin group access to files under it _if_ the files themselves give permission to the -bitcoin group to do so. This does not allow +vincoin group to do so. This does not allow for the listing of files under the directory. NOTE: It is not currently possible to override `datadir` in -`/etc/bitcoin/bitcoin.conf` with the current systemd, OpenRC, and Upstart init +`/etc/vincoin/vincoin.conf` with the current systemd, OpenRC, and Upstart init files out-of-the-box. This is because the command line options specified in the init files take precedence over the configurations in -`/etc/bitcoin/bitcoin.conf`. However, some init systems have their own +`/etc/vincoin/vincoin.conf`. However, some init systems have their own configuration mechanisms that would allow for overriding the command line options specified in the init files (e.g. setting `BITCOIND_DATADIR` for OpenRC). ### macOS - Binary: /usr/local/bin/bitcoind - Configuration file: ~/Library/Application Support/Bitcoin/bitcoin.conf - Data directory: ~/Library/Application Support/Bitcoin - Lock file: ~/Library/Application Support/Bitcoin/.lock + Binary: /usr/local/bin/vincoind + Configuration file: ~/Library/Application Support/Vincoin/vincoin.conf + Data directory: ~/Library/Application Support/Vincoin + Lock file: ~/Library/Application Support/Vincoin/.lock Installing Service Configuration ----------------------------------- @@ -98,23 +98,23 @@ Installing this .service file consists of just copying it to /usr/lib/systemd/system directory, followed by the command `systemctl daemon-reload` in order to update running systemd configuration. -To test, run `systemctl start bitcoind` and to enable for system startup run -`systemctl enable bitcoind` +To test, run `systemctl start vincoind` and to enable for system startup run +`systemctl enable vincoind` NOTE: When installing for systemd in Debian/Ubuntu the .service file needs to be copied to the /lib/systemd/system directory instead. ### OpenRC -Rename bitcoind.openrc to bitcoind and drop it in /etc/init.d. Double +Rename vincoind.openrc to vincoind and drop it in /etc/init.d. Double check ownership and permissions and make it executable. Test it with -`/etc/init.d/bitcoind start` and configure it to run on startup with -`rc-update add bitcoind` +`/etc/init.d/vincoind start` and configure it to run on startup with +`rc-update add vincoind` ### Upstart (for Debian/Ubuntu based distributions) Upstart is the default init system for Debian/Ubuntu versions older than 15.04. If you are using version 15.04 or newer and haven't manually configured upstart you should follow the systemd instructions instead. -Drop bitcoind.conf in /etc/init. Test by running `service bitcoind start` +Drop vincoind.conf in /etc/init. Test by running `service vincoind start` it will automatically start on reboot. NOTE: This script is incompatible with CentOS 5 and Amazon Linux 2014 as they @@ -122,22 +122,22 @@ use old versions of Upstart and do not supply the start-stop-daemon utility. ### CentOS -Copy bitcoind.init to /etc/init.d/bitcoind. Test by running `service bitcoind start`. +Copy vincoind.init to /etc/init.d/vincoind. Test by running `service vincoind start`. -Using this script, you can adjust the path and flags to the bitcoind program by +Using this script, you can adjust the path and flags to the vincoind program by setting the BITCOIND and FLAGS environment variables in the file -/etc/sysconfig/bitcoind. You can also use the DAEMONOPTS environment variable here. +/etc/sysconfig/vincoind. You can also use the DAEMONOPTS environment variable here. ### macOS -Copy org.bitcoin.bitcoind.plist into ~/Library/LaunchAgents. Load the launch agent by -running `launchctl load ~/Library/LaunchAgents/org.bitcoin.bitcoind.plist`. +Copy org.vincoin.vincoind.plist into ~/Library/LaunchAgents. Load the launch agent by +running `launchctl load ~/Library/LaunchAgents/org.vincoin.vincoind.plist`. -This Launch Agent will cause bitcoind to start whenever the user logs in. +This Launch Agent will cause vincoind to start whenever the user logs in. -NOTE: This approach is intended for those wanting to run bitcoind as the current user. -You will need to modify org.bitcoin.bitcoind.plist if you intend to use it as a -Launch Daemon with a dedicated bitcoin user. +NOTE: This approach is intended for those wanting to run vincoind as the current user. +You will need to modify org.vincoin.vincoind.plist if you intend to use it as a +Launch Daemon with a dedicated vincoin user. Auto-respawn ----------------------------------- diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am index 8f890da5327b1..65f9cbb58f625 100644 --- a/doc/man/Makefile.am +++ b/doc/man/Makefile.am @@ -1,27 +1,27 @@ dist_man1_MANS= if BUILD_BITCOIND - dist_man1_MANS+=bitcoind.1 + dist_man1_MANS+=vincoind.1 endif if ENABLE_QT - dist_man1_MANS+=bitcoin-qt.1 + dist_man1_MANS+=vincoin-qt.1 endif if BUILD_BITCOIN_CLI - dist_man1_MANS+=bitcoin-cli.1 + dist_man1_MANS+=vincoin-cli.1 endif if BUILD_BITCOIN_TX - dist_man1_MANS+=bitcoin-tx.1 + dist_man1_MANS+=vincoin-tx.1 endif if BUILD_BITCOIN_UTIL - dist_man1_MANS+=bitcoin-util.1 + dist_man1_MANS+=vincoin-util.1 endif if ENABLE_WALLET if BUILD_BITCOIN_WALLET - dist_man1_MANS+=bitcoin-wallet.1 + dist_man1_MANS+=vincoin-wallet.1 endif endif diff --git a/doc/man/vincoin-cli.1 b/doc/man/vincoin-cli.1 index 6bcad7006b08c..37167df894182 100644 --- a/doc/man/vincoin-cli.1 +++ b/doc/man/vincoin-cli.1 @@ -1,5 +1,5 @@ .TH BITCOIN-CLI "1" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli +vincoin-cli \- manual page for vincoin-cli This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-qt.1 b/doc/man/vincoin-qt.1 index ff4d1d2c7ac2e..3605b7b60bdd8 100644 --- a/doc/man/vincoin-qt.1 +++ b/doc/man/vincoin-qt.1 @@ -1,5 +1,5 @@ .TH BITCOIN-QT "1" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt +vincoin-qt \- manual page for vincoin-qt This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-tx.1 b/doc/man/vincoin-tx.1 index 776bb462342a6..a58f35c42317d 100644 --- a/doc/man/vincoin-tx.1 +++ b/doc/man/vincoin-tx.1 @@ -1,5 +1,5 @@ .TH BITCOIN-TX "1" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx +vincoin-tx \- manual page for vincoin-tx This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-util.1 b/doc/man/vincoin-util.1 index 5c733c6e21dcc..4e85c2f8f58f1 100644 --- a/doc/man/vincoin-util.1 +++ b/doc/man/vincoin-util.1 @@ -1,5 +1,5 @@ .TH BITCOIN-UTIL "1" .SH NAME -bitcoin-util \- manual page for bitcoin-util +vincoin-util \- manual page for vincoin-util This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoin-wallet.1 b/doc/man/vincoin-wallet.1 index 2da43dec66398..577925d7caa84 100644 --- a/doc/man/vincoin-wallet.1 +++ b/doc/man/vincoin-wallet.1 @@ -1,5 +1,5 @@ .TH BITCOIN-WALLET "1" .SH NAME -bitcoin-wallet \- manual page for bitcoin-wallet +vincoin-wallet \- manual page for vincoin-wallet This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/man/vincoind.1 b/doc/man/vincoind.1 index 2c88f745205bc..fb2075ffef2b9 100644 --- a/doc/man/vincoind.1 +++ b/doc/man/vincoind.1 @@ -1,5 +1,5 @@ .TH BITCOIND "1" .SH NAME -bitcoind \- manual page for bitcoind +vincoind \- manual page for vincoind This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release. diff --git a/doc/managing-wallets.md b/doc/managing-wallets.md index 22e006c9639e9..152c212824632 100644 --- a/doc/managing-wallets.md +++ b/doc/managing-wallets.md @@ -4,24 +4,24 @@ ### 1.1 Creating the Wallet -Since version 0.21, Bitcoin Core no longer has a default wallet. +Since version 0.21, Vincoin Core no longer has a default wallet. Wallets can be created with the `createwallet` RPC or with the `Create wallet` GUI menu item. In the GUI, the `Create a new wallet` button is displayed on the main screen when there is no wallet loaded. Alternatively, there is the option `File` ->`Create wallet`. -The following command, for example, creates a descriptor wallet. More information about this command may be found by running `bitcoin-cli help createwallet`. +The following command, for example, creates a descriptor wallet. More information about this command may be found by running `vincoin-cli help createwallet`. ``` -$ bitcoin-cli createwallet "wallet-01" +$ vincoin-cli createwallet "wallet-01" ``` By default, wallets are created in the `wallets` folder of the data directory, which varies by operating system, as shown below. The user can change the default by using the `-datadir` or `-walletdir` initialization parameters. | Operating System | Default wallet directory | | -----------------|:------------------------------------------------------------| -| Linux | `/home//.bitcoin/wallets` | -| Windows | `C:\Users\\AppData\Roaming\Bitcoin\wallets` | -| macOS | `/Users//Library/Application Support/Bitcoin/wallets` | +| Linux | `/home//.vincoin/wallets` | +| Windows | `C:\Users\\AppData\Roaming\Vincoin\wallets` | +| macOS | `/Users//Library/Application Support/Vincoin/wallets` | ### 1.2 Encrypting the Wallet @@ -31,18 +31,18 @@ Wallet encryption may prevent unauthorized access. However, this significantly i Wallet encryption may also not protect against more sophisticated attacks. An attacker can, for example, obtain the password by installing a keylogger on the user's machine. -After encrypting the wallet or changing the passphrase, a new backup needs to be created immediately. The reason is that the keypool is flushed and a new HD seed is generated after encryption. Any bitcoins received by the new seed cannot be recovered from the previous backups. +After encrypting the wallet or changing the passphrase, a new backup needs to be created immediately. The reason is that the keypool is flushed and a new HD seed is generated after encryption. Any vincoins received by the new seed cannot be recovered from the previous backups. The wallet's private key may be encrypted with the following command: ``` -$ bitcoin-cli -rpcwallet="wallet-01" encryptwallet "passphrase" +$ vincoin-cli -rpcwallet="wallet-01" encryptwallet "passphrase" ``` Once encrypted, the passphrase can be changed with the `walletpassphrasechange` command. ``` -$ bitcoin-cli -rpcwallet="wallet-01" walletpassphrasechange "oldpassphrase" "newpassphrase" +$ vincoin-cli -rpcwallet="wallet-01" walletpassphrasechange "oldpassphrase" "newpassphrase" ``` The argument passed to `-rpcwallet` is the name of the wallet to be encrypted. @@ -52,17 +52,17 @@ Only the wallet's private key is encrypted. All other wallet information, such a The wallet's private key can also be encrypted in the `createwallet` command via the `passphrase` argument: ``` -$ bitcoin-cli -named createwallet wallet_name="wallet-01" passphrase="passphrase" +$ vincoin-cli -named createwallet wallet_name="wallet-01" passphrase="passphrase" ``` Note that if the passphrase is lost, all the coins in the wallet will also be lost forever. ### 1.3 Unlocking the Wallet -If the wallet is encrypted and the user tries any operation related to private keys, such as sending bitcoins, an error message will be displayed. +If the wallet is encrypted and the user tries any operation related to private keys, such as sending vincoins, an error message will be displayed. ``` -$ bitcoin-cli -rpcwallet="wallet-01" sendtoaddress "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" 0.01 +$ vincoin-cli -rpcwallet="wallet-01" sendtoaddress "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" 0.01 error code: -13 error message: Error: Please enter the wallet passphrase with walletpassphrase first. @@ -73,10 +73,10 @@ To unlock the wallet and allow it to run these operations, the `walletpassphrase This command takes the passphrase and an argument called `timeout`, which specifies the time in seconds that the wallet decryption key is stored in memory. After this period expires, the user needs to execute this RPC again. ``` -$ bitcoin-cli -rpcwallet="wallet-01" walletpassphrase "passphrase" 120 +$ vincoin-cli -rpcwallet="wallet-01" walletpassphrase "passphrase" 120 ``` -In the GUI, there is no specific menu item to unlock the wallet. When the user sends bitcoins, the passphrase will be prompted automatically. +In the GUI, there is no specific menu item to unlock the wallet. When the user sends vincoins, the passphrase will be prompted automatically. ### 1.4 Backing Up the Wallet @@ -85,7 +85,7 @@ To backup the wallet, the `backupwallet` RPC or the `Backup Wallet` GUI menu ite In the RPC, the destination parameter must include the name of the file. Otherwise, the command will return an error message like "Error: Wallet backup failed!" for descriptor wallets. If it is a legacy wallet, it will be copied and a file will be created with the default file name `wallet.dat`. ``` -$ bitcoin-cli -rpcwallet="wallet-01" backupwallet /home/node01/Backups/backup-01.dat +$ vincoin-cli -rpcwallet="wallet-01" backupwallet /home/node01/Backups/backup-01.dat ``` In the GUI, the wallet is selected in the `Wallet` drop-down list in the upper right corner. If this list is not present, the wallet can be loaded in `File` ->`Open Wallet` if necessary. Then, the backup can be done in `File` -> `Backup Wallet…`. @@ -94,13 +94,13 @@ This backup file can be stored on one or multiple offline devices, which must be If the computer has malware, it can compromise the wallet when recovering the backup file. One way to minimize this is to not connect the backup to an online device. -If both the wallet and all backups are lost for any reason, the bitcoins related to this wallet will become permanently inaccessible. +If both the wallet and all backups are lost for any reason, the vincoins related to this wallet will become permanently inaccessible. ### 1.5 Backup Frequency -The original Bitcoin Core wallet was a collection of unrelated private keys. If a non-HD wallet had received funds to an address and then was restored from a backup made before the address was generated, then any funds sent to that address would have been lost because there was no deterministic mechanism to derive the address again. +The original Vincoin Core wallet was a collection of unrelated private keys. If a non-HD wallet had received funds to an address and then was restored from a backup made before the address was generated, then any funds sent to that address would have been lost because there was no deterministic mechanism to derive the address again. -Bitcoin Core [version 0.13](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.13.0.md) introduced HD wallets with deterministic key derivation. With HD wallets, users no longer lose funds when restoring old backups because all addresses are derived from the HD wallet seed. +Vincoin Core [version 0.13](https://github.com/vincoin/vincoin/blob/master/doc/release-notes/release-notes-0.13.0.md) introduced HD wallets with deterministic key derivation. With HD wallets, users no longer lose funds when restoring old backups because all addresses are derived from the HD wallet seed. This means that a single backup is enough to recover the coins at any time. It is still recommended to make regular backups (once a week) or after a significant number of new transactions to maintain the metadata, such as labels. Metadata cannot be retrieved from a blockchain rescan, so if the backup is too old, the metadata will be lost forever. @@ -111,13 +111,13 @@ Wallets created before version 0.13 are not HD and must be backed up every 100 k To restore a wallet, the `restorewallet` RPC or the `Restore Wallet` GUI menu item (`File` -> `Restore Wallet…`) must be used. ``` -$ bitcoin-cli restorewallet "restored-wallet" /home/node01/Backups/backup-01.dat +$ vincoin-cli restorewallet "restored-wallet" /home/node01/Backups/backup-01.dat ``` After that, `getwalletinfo` can be used to check if the wallet has been fully restored. ``` -$ bitcoin-cli -rpcwallet="restored-wallet" getwalletinfo +$ vincoin-cli -rpcwallet="restored-wallet" getwalletinfo ``` The restored wallet can also be loaded in the GUI via `File` ->`Open wallet`. diff --git a/doc/multiprocess.md b/doc/multiprocess.md index 7ba89b3ff56a2..801dba437690d 100644 --- a/doc/multiprocess.md +++ b/doc/multiprocess.md @@ -1,10 +1,10 @@ -# Multiprocess Bitcoin +# Multiprocess Vincoin _This document describes usage of the multiprocess feature. For design information, see the [design/multiprocess.md](design/multiprocess.md) file._ ## Build Option -On unix systems, the `--enable-multiprocess` build option can be passed to `./configure` to build new `bitcoin-node`, `bitcoin-wallet`, and `bitcoin-gui` executables alongside existing `bitcoind` and `bitcoin-qt` executables. +On unix systems, the `--enable-multiprocess` build option can be passed to `./configure` to build new `vincoin-node`, `vincoin-wallet`, and `vincoin-gui` executables alongside existing `vincoind` and `vincoin-qt` executables. ## Debugging @@ -19,8 +19,8 @@ cd make -C depends NO_QT=1 MULTIPROCESS=1 CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure make -src/bitcoin-node -regtest -printtoconsole -debug=ipc -BITCOIND=bitcoin-node test/functional/test_runner.py +src/vincoin-node -regtest -printtoconsole -debug=ipc +BITCOIND=vincoin-node test/functional/test_runner.py ``` The configure script will pick up settings and library locations from the depends directory, so there is no need to pass `--enable-multiprocess` as a separate flag when using the depends system (it's controlled by the `MULTIPROCESS=1` option). @@ -29,6 +29,6 @@ Alternately, you can install [Cap'n Proto](https://capnproto.org/) and [libmulti ## Usage -`bitcoin-node` is a drop-in replacement for `bitcoind`, and `bitcoin-gui` is a drop-in replacement for `bitcoin-qt`, and there are no differences in use or external behavior between the new and old executables. But internally after [#10102](https://github.com/bitcoin/bitcoin/pull/10102), `bitcoin-gui` will spawn a `bitcoin-node` process to run P2P and RPC code, communicating with it across a socket pair, and `bitcoin-node` will spawn `bitcoin-wallet` to run wallet code, also communicating over a socket pair. This will let node, wallet, and GUI code run in separate address spaces for better isolation, and allow future improvements like being able to start and stop components independently on different machines and environments. -[#19460](https://github.com/bitcoin/bitcoin/pull/19460) also adds a new `bitcoin-node` `-ipcbind` option and an `bitcoind-wallet` `-ipcconnect` option to allow new wallet processes to connect to an existing node process. -And [#19461](https://github.com/bitcoin/bitcoin/pull/19461) adds a new `bitcoin-gui` `-ipcconnect` option to allow new GUI processes to connect to an existing node process. +`vincoin-node` is a drop-in replacement for `vincoind`, and `vincoin-gui` is a drop-in replacement for `vincoin-qt`, and there are no differences in use or external behavior between the new and old executables. But internally after [#10102](https://github.com/vincoin/vincoin/pull/10102), `vincoin-gui` will spawn a `vincoin-node` process to run P2P and RPC code, communicating with it across a socket pair, and `vincoin-node` will spawn `vincoin-wallet` to run wallet code, also communicating over a socket pair. This will let node, wallet, and GUI code run in separate address spaces for better isolation, and allow future improvements like being able to start and stop components independently on different machines and environments. +[#19460](https://github.com/vincoin/vincoin/pull/19460) also adds a new `vincoin-node` `-ipcbind` option and an `vincoind-wallet` `-ipcconnect` option to allow new wallet processes to connect to an existing node process. +And [#19461](https://github.com/vincoin/vincoin/pull/19461) adds a new `vincoin-gui` `-ipcconnect` option to allow new GUI processes to connect to an existing node process. diff --git a/doc/multisig-tutorial.md b/doc/multisig-tutorial.md index 1d2b3244bca2c..f6d2fa6429da6 100644 --- a/doc/multisig-tutorial.md +++ b/doc/multisig-tutorial.md @@ -1,22 +1,22 @@ # 1. Multisig Tutorial -Currently, it is possible to create a multisig wallet using Bitcoin Core only. +Currently, it is possible to create a multisig wallet using Vincoin Core only. -Although there is already a brief explanation about the multisig in the [Descriptors documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md#multisig), this tutorial proposes to use the signet (instead of regtest), bringing the reader closer to a real environment and explaining some functions in more detail. +Although there is already a brief explanation about the multisig in the [Descriptors documentation](https://github.com/vincoin/vincoin/blob/master/doc/descriptors.md#multisig), this tutorial proposes to use the signet (instead of regtest), bringing the reader closer to a real environment and explaining some functions in more detail. This tutorial uses [jq](https://github.com/stedolan/jq) JSON processor to process the results from RPC and stores the relevant values in bash variables. This makes the tutorial reproducible and easier to follow step by step. -Before starting this tutorial, start the bitcoin node on the signet network. +Before starting this tutorial, start the vincoin node on the signet network. ```bash -./src/bitcoind -signet -daemon +./src/vincoind -signet -daemon ``` -This tutorial also uses the default WPKH derivation path to get the xpubs and does not conform to [BIP 45](https://github.com/bitcoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/bitcoin/bips/blob/master/bip-0087.mediawiki). +This tutorial also uses the default WPKH derivation path to get the xpubs and does not conform to [BIP 45](https://github.com/vincoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/vincoin/bips/blob/master/bip-0087.mediawiki). -At the time of writing, there is no way to extract a specific path from wallets in Bitcoin Core. For this, an external signer/xpub can be used. +At the time of writing, there is no way to extract a specific path from wallets in Vincoin Core. For this, an external signer/xpub can be used. -[PR #22341](https://github.com/bitcoin/bitcoin/pull/22341), which is still under development, introduces a new wallet RPC `getxpub`. It takes a BIP32 path as an argument and returns the xpub, along with the master key fingerprint. +[PR #22341](https://github.com/vincoin/vincoin/pull/22341), which is still under development, introduces a new wallet RPC `getxpub`. It takes a BIP32 path as an argument and returns the xpub, along with the master key fingerprint. ## 1.1 Basic Multisig Workflow @@ -29,11 +29,11 @@ These three wallets should not be used directly for privacy reasons (public key ```bash for ((n=1;n<=3;n++)) do - ./src/bitcoin-cli -signet createwallet "participant_${n}" + ./src/vincoin-cli -signet createwallet "participant_${n}" done ``` -Extract the xpub of each wallet. To do this, the `listdescriptors` RPC is used. By default, Bitcoin Core single-sig wallets are created using path `m/44'/1'/0'` for PKH, `m/84'/1'/0'` for WPKH, `m/49'/1'/0'` for P2WPKH-nested-in-P2SH and `m/86'/1'/0'` for P2TR based accounts. Each of them uses the chain 0 for external addresses and chain 1 for internal ones, as shown in the example below. +Extract the xpub of each wallet. To do this, the `listdescriptors` RPC is used. By default, Vincoin Core single-sig wallets are created using path `m/44'/1'/0'` for PKH, `m/84'/1'/0'` for WPKH, `m/49'/1'/0'` for P2WPKH-nested-in-P2SH and `m/86'/1'/0'` for P2TR based accounts. Each of them uses the chain 0 for external addresses and chain 1 for internal ones, as shown in the example below. ``` wpkh([1004658e/84'/1'/0']tpubDCBEcmVKbfC9KfdydyLbJ2gfNL88grZu1XcWSW9ytTM6fitvaRmVyr8Ddf7SjZ2ZfMx9RicjYAXhuh3fmLiVLPodPEqnQQURUfrBKiiVZc8/0/*)#g8l47ngv @@ -42,16 +42,16 @@ wpkh([1004658e/84'/1'/0']tpubDCBEcmVKbfC9KfdydyLbJ2gfNL88grZu1XcWSW9ytTM6fitvaRm ``` The suffix (after #) is the checksum. Descriptors can optionally be suffixed with a checksum to protect against typos or copy-paste errors. -All RPCs in Bitcoin Core will include the checksum in their output. +All RPCs in Vincoin Core will include the checksum in their output. ```bash declare -A xpubs for ((n=1;n<=3;n++)) do - xpubs["internal_xpub_${n}"]=$(./src/bitcoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/1/*"))][0] | .desc' | grep -Po '(?<=\().*(?=\))') + xpubs["internal_xpub_${n}"]=$(./src/vincoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/1/*"))][0] | .desc' | grep -Po '(?<=\().*(?=\))') - xpubs["external_xpub_${n}"]=$(./src/bitcoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/0/*") )][0] | .desc' | grep -Po '(?<=\().*(?=\))') + xpubs["external_xpub_${n}"]=$(./src/vincoin-cli -signet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/0/*") )][0] | .desc' | grep -Po '(?<=\().*(?=\))') done ``` @@ -63,7 +63,7 @@ The following command can be used to verify if the xpub was generated correctly. for x in "${!xpubs[@]}"; do printf "[%s]=%s\n" "$x" "${xpubs[$x]}" ; done ``` -As previously mentioned, this step extracts the `m/84'/1'/0'` account instead of the path defined in [BIP 45](https://github.com/bitcoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/bitcoin/bips/blob/master/bip-0087.mediawiki), since there is no way to extract a specific path in Bitcoin Core at the time of writing. +As previously mentioned, this step extracts the `m/84'/1'/0'` account instead of the path defined in [BIP 45](https://github.com/vincoin/bips/blob/master/bip-0045.mediawiki) or [BIP 87](https://github.com/vincoin/bips/blob/master/bip-0087.mediawiki), since there is no way to extract a specific path in Vincoin Core at the time of writing. ### 1.2 Define the Multisig Descriptors @@ -73,8 +73,8 @@ Define the external and internal multisig descriptors, add the checksum and then external_desc="wsh(sortedmulti(2,${xpubs["external_xpub_1"]},${xpubs["external_xpub_2"]},${xpubs["external_xpub_3"]}))" internal_desc="wsh(sortedmulti(2,${xpubs["internal_xpub_1"]},${xpubs["internal_xpub_2"]},${xpubs["internal_xpub_3"]}))" -external_desc_sum=$(./src/bitcoin-cli -signet getdescriptorinfo $external_desc | jq '.descriptor') -internal_desc_sum=$(./src/bitcoin-cli -signet getdescriptorinfo $internal_desc | jq '.descriptor') +external_desc_sum=$(./src/vincoin-cli -signet getdescriptorinfo $external_desc | jq '.descriptor') +internal_desc_sum=$(./src/vincoin-cli -signet getdescriptorinfo $internal_desc | jq '.descriptor') multisig_ext_desc="{\"desc\": $external_desc_sum, \"active\": true, \"internal\": false, \"timestamp\": \"now\"}" multisig_int_desc="{\"desc\": $internal_desc_sum, \"active\": true, \"internal\": true, \"timestamp\": \"now\"}" @@ -82,9 +82,9 @@ multisig_int_desc="{\"desc\": $internal_desc_sum, \"active\": true, \"internal\" multisig_desc="[$multisig_ext_desc, $multisig_int_desc]" ``` -`external_desc` and `internal_desc` specify the output type (`wsh`, in this case) and the xpubs involved. They also use BIP 67 (`sortedmulti`), so the wallet can be recreated without worrying about the order of xpubs. Conceptually, descriptors describe a list of scriptPubKey (along with information for spending from it) [[source](https://github.com/bitcoin/bitcoin/issues/21199#issuecomment-780772418)]. +`external_desc` and `internal_desc` specify the output type (`wsh`, in this case) and the xpubs involved. They also use BIP 67 (`sortedmulti`), so the wallet can be recreated without worrying about the order of xpubs. Conceptually, descriptors describe a list of scriptPubKey (along with information for spending from it) [[source](https://github.com/vincoin/vincoin/issues/21199#issuecomment-780772418)]. -Note that at least two descriptors are usually used, one for internal derivation paths and external ones. There are discussions about eliminating this redundancy, as can been seen in the issue [#17190](https://github.com/bitcoin/bitcoin/issues/17190). +Note that at least two descriptors are usually used, one for internal derivation paths and external ones. There are discussions about eliminating this redundancy, as can been seen in the issue [#17190](https://github.com/vincoin/vincoin/issues/17190). After creating the descriptors, it is necessary to add the checksum, which is required by the `importdescriptors` RPC. @@ -96,7 +96,7 @@ There are other fields that can be added to the descriptors: * `internal`: Indicates whether matching outputs should be treated as something other than incoming payments (e.g. change). * `timestamp`: Sets the time from which to start rescanning the blockchain for the descriptor, in UNIX epoch time. -Documentation for these and other parameters can be found by typing `./src/bitcoin-cli help importdescriptors`. +Documentation for these and other parameters can be found by typing `./src/vincoin-cli help importdescriptors`. `multisig_desc` concatenates external and internal descriptors in a JSON array and then it will be used to create the multisig wallet. @@ -109,17 +109,17 @@ Then import the descriptors created in the previous step using the `importdescri After that, `getwalletinfo` can be used to check if the wallet was created successfully. ```bash -./src/bitcoin-cli -signet -named createwallet wallet_name="multisig_wallet_01" disable_private_keys=true blank=true +./src/vincoin-cli -signet -named createwallet wallet_name="multisig_wallet_01" disable_private_keys=true blank=true -./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" importdescriptors "$multisig_desc" +./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" importdescriptors "$multisig_desc" -./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getwalletinfo +./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getwalletinfo ``` Once the wallets have already been created and this tutorial needs to be repeated or resumed, it is not necessary to recreate them, just load them with the command below: ```bash -for ((n=1;n<=3;n++)); do ./src/bitcoin-cli -signet loadwallet "participant_${n}"; done +for ((n=1;n<=3;n++)); do ./src/vincoin-cli -signet loadwallet "participant_${n}"; done ``` ### 1.4 Fund the wallet @@ -133,9 +133,9 @@ The url used by the script can also be accessed directly. At time of writing, th Coins received by the wallet must have at least 1 confirmation before they can be spent. It is necessary to wait for a new block to be mined before continuing. ```bash -receiving_address=$(./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getnewaddress) +receiving_address=$(./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getnewaddress) -./contrib/signet/getcoins.py -c ./src/bitcoin-cli -a $receiving_address +./contrib/signet/getcoins.py -c ./src/vincoin-cli -a $receiving_address ``` To copy the receiving address onto the clipboard, use the following command. This can be useful when getting coins via the signet faucet mentioned above. @@ -147,32 +147,32 @@ echo -n "$receiving_address" | xclip -sel clip The `getbalances` RPC may be used to check the balance. Coins with `trusted` status can be spent. ```bash -./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getbalances +./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getbalances ``` ### 1.5 Create a PSBT -Unlike singlesig wallets, multisig wallets cannot create and sign transactions directly because they require the signatures of the co-signers. Instead they create a Partially Signed Bitcoin Transaction (PSBT). +Unlike singlesig wallets, multisig wallets cannot create and sign transactions directly because they require the signatures of the co-signers. Instead they create a Partially Signed Vincoin Transaction (PSBT). -PSBT is a data format that allows wallets and other tools to exchange information about a Bitcoin transaction and the signatures necessary to complete it. [[source](https://bitcoinops.org/en/topics/psbt/)] +PSBT is a data format that allows wallets and other tools to exchange information about a Vincoin transaction and the signatures necessary to complete it. [[source](https://vincoinops.org/en/topics/psbt/)] -The current PSBT version (v0) is defined in [BIP 174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki). +The current PSBT version (v0) is defined in [BIP 174](https://github.com/vincoin/bips/blob/master/bip-0174.mediawiki). -For simplicity, the destination address is taken from the `participant_1` wallet in the code above, but it can be any valid bitcoin address. +For simplicity, the destination address is taken from the `participant_1` wallet in the code above, but it can be any valid vincoin address. The `walletcreatefundedpsbt` RPC is used to create and fund a transaction in the PSBT format. It is the first step in creating the PSBT. ```bash -balance=$(./src/bitcoin-cli -signet -rpcwallet="multisig_wallet_01" getbalance) +balance=$(./src/vincoin-cli -signet -rpcwallet="multisig_wallet_01" getbalance) amount=$(echo "$balance * 0.8" | bc -l | sed -e 's/^\./0./' -e 's/^-\./-0./') -destination_addr=$(./src/bitcoin-cli -signet -rpcwallet="participant_1" getnewaddress) +destination_addr=$(./src/vincoin-cli -signet -rpcwallet="participant_1" getnewaddress) -funded_psbt=$(./src/bitcoin-cli -signet -named -rpcwallet="multisig_wallet_01" walletcreatefundedpsbt outputs="{\"$destination_addr\": $amount}" | jq -r '.psbt') +funded_psbt=$(./src/vincoin-cli -signet -named -rpcwallet="multisig_wallet_01" walletcreatefundedpsbt outputs="{\"$destination_addr\": $amount}" | jq -r '.psbt') ``` -There is also the `createpsbt` RPC, which serves the same purpose, but it has no access to the wallet or to the UTXO set. It is functionally the same as `createrawtransaction` and just drops the raw transaction into an otherwise blank PSBT. [[source](https://bitcointalk.org/index.php?topic=5131043.msg50573609#msg50573609)] In most cases, `walletcreatefundedpsbt` solves the problem. +There is also the `createpsbt` RPC, which serves the same purpose, but it has no access to the wallet or to the UTXO set. It is functionally the same as `createrawtransaction` and just drops the raw transaction into an otherwise blank PSBT. [[source](https://vincointalk.org/index.php?topic=5131043.msg50573609#msg50573609)] In most cases, `walletcreatefundedpsbt` solves the problem. The `send` RPC can also return a PSBT if more signatures are needed to sign the transaction. @@ -183,9 +183,9 @@ Optionally, the PSBT can be decoded to a JSON format using `decodepsbt` RPC. The `analyzepsbt` RPC analyzes and provides information about the current status of a PSBT and its inputs, e.g. missing signatures. ```bash -./src/bitcoin-cli -signet decodepsbt $funded_psbt +./src/vincoin-cli -signet decodepsbt $funded_psbt -./src/bitcoin-cli -signet analyzepsbt $funded_psbt +./src/vincoin-cli -signet analyzepsbt $funded_psbt ``` ### 1.7 Update the PSBT @@ -195,9 +195,9 @@ In the code above, two PSBTs are created. One signed by `participant_1` wallet a The `walletprocesspsbt` is used by the wallet to sign a PSBT. ```bash -psbt_1=$(./src/bitcoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq '.psbt') +psbt_1=$(./src/vincoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq '.psbt') -psbt_2=$(./src/bitcoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $funded_psbt | jq '.psbt') +psbt_2=$(./src/vincoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $funded_psbt | jq '.psbt') ``` ### 1.8 Combine the PSBT @@ -205,7 +205,7 @@ psbt_2=$(./src/bitcoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt The PSBT, if signed separately by the co-signers, must be combined into one transaction before being finalized. This is done by `combinepsbt` RPC. ```bash -combined_psbt=$(./src/bitcoin-cli -signet combinepsbt "[$psbt_1, $psbt_2]") +combined_psbt=$(./src/vincoin-cli -signet combinepsbt "[$psbt_1, $psbt_2]") ``` There is an RPC called `joinpsbts`, but it has a different purpose than `combinepsbt`. `joinpsbts` joins the inputs from multiple distinct PSBTs into one PSBT. @@ -219,9 +219,9 @@ The `finalizepsbt` RPC is used to produce a network serialized transaction which It checks that all inputs have complete scriptSigs and scriptWitnesses and, if so, encodes them into network serialized transactions. ```bash -finalized_psbt_hex=$(./src/bitcoin-cli -signet finalizepsbt $combined_psbt | jq -r '.hex') +finalized_psbt_hex=$(./src/vincoin-cli -signet finalizepsbt $combined_psbt | jq -r '.hex') -./src/bitcoin-cli -signet sendrawtransaction $finalized_psbt_hex +./src/vincoin-cli -signet sendrawtransaction $finalized_psbt_hex ``` ### 1.10 Alternative Workflow (PSBT sequential signatures) @@ -231,11 +231,11 @@ Instead of each wallet signing the original PSBT and combining them later, the w After that, the rest of the process is the same: the PSBT is finalized and transmitted to the network. ```bash -psbt_1=$(./src/bitcoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq -r '.psbt') +psbt_1=$(./src/vincoin-cli -signet -rpcwallet="participant_1" walletprocesspsbt $funded_psbt | jq -r '.psbt') -psbt_2=$(./src/bitcoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $psbt_1 | jq -r '.psbt') +psbt_2=$(./src/vincoin-cli -signet -rpcwallet="participant_2" walletprocesspsbt $psbt_1 | jq -r '.psbt') -finalized_psbt_hex=$(./src/bitcoin-cli -signet finalizepsbt $psbt_2 | jq -r '.hex') +finalized_psbt_hex=$(./src/vincoin-cli -signet finalizepsbt $psbt_2 | jq -r '.hex') -./src/bitcoin-cli -signet sendrawtransaction $finalized_psbt_hex +./src/vincoin-cli -signet sendrawtransaction $finalized_psbt_hex ``` diff --git a/doc/offline-signing-tutorial.md b/doc/offline-signing-tutorial.md index 4761cf256bdb3..05f04156bb6a6 100644 --- a/doc/offline-signing-tutorial.md +++ b/doc/offline-signing-tutorial.md @@ -1,16 +1,16 @@ # Offline Signing Tutorial -This tutorial will describe how to use two instances of Bitcoin Core, one online and one offline, to greatly increase security by not having private keys reside on a networked device. +This tutorial will describe how to use two instances of Vincoin Core, one online and one offline, to greatly increase security by not having private keys reside on a networked device. Maintaining an air-gap between private keys and any network connections drastically reduces the opportunity for those keys to be exfiltrated from the user. -This workflow uses [Partially Signed Bitcoin Transactions](https://github.com/bitcoin/bitcoin/blob/master/doc/psbt.md) (PSBTs) to transfer the transaction to and from the offline wallet for signing using the private keys. +This workflow uses [Partially Signed Vincoin Transactions](https://github.com/vincoin/vincoin/blob/master/doc/psbt.md) (PSBTs) to transfer the transaction to and from the offline wallet for signing using the private keys. > [!NOTE] > While this tutorial demonstrates the process using `signet` network, you should omit the `-signet` flag in the provided commands when working with `mainnet`. ## Overview -In this tutorial we have two hosts, both running Bitcoin v25.0 +In this tutorial we have two hosts, both running Vincoin v25.0 * `offline` host which is disconnected from all networks (internet, Tor, wifi, bluetooth etc.) and does not have, or need, a copy of the blockchain. * `online` host which is a regular online node with a synced blockchain. @@ -25,7 +25,7 @@ We are going to first create an `offline_wallet` on the offline host. We will th 1. On the offline machine create a wallet named `offline_wallet` secured by a wallet `passphrase`. This wallet will contain private keys and must remain unconnected to any networks at all times. ```sh -[offline]$ ./src/bitcoin-cli -signet -named createwallet \ +[offline]$ ./src/vincoin-cli -signet -named createwallet \ wallet_name="offline_wallet" \ passphrase="** enter passphrase **" @@ -35,12 +35,12 @@ We are going to first create an `offline_wallet` on the offline host. We will th ``` > [!NOTE] -> The use of a passphrase is crucial to encrypt the wallet.dat file. This encryption ensures that even if an unauthorized individual gains access to the offline host, they won't be able to access the wallet's contents. Further details about securing your wallet can be found in [Managing the Wallet](https://github.com/bitcoin/bitcoin/blob/master/doc/managing-wallets.md#12-encrypting-the-wallet) +> The use of a passphrase is crucial to encrypt the wallet.dat file. This encryption ensures that even if an unauthorized individual gains access to the offline host, they won't be able to access the wallet's contents. Further details about securing your wallet can be found in [Managing the Wallet](https://github.com/vincoin/vincoin/blob/master/doc/managing-wallets.md#12-encrypting-the-wallet) 2. Export the public key-only descriptors from the offline host to a JSON file named `descriptors.json`. We use `jq` here to extract the `.descriptors` field from the full RPC response. ```sh -[offline]$ ./src/bitcoin-cli -signet -rpcwallet="offline_wallet" listdescriptors \ +[offline]$ ./src/vincoin-cli -signet -rpcwallet="offline_wallet" listdescriptors \ | jq -r '.descriptors' \ >> /path/to/descriptors.json ``` @@ -58,7 +58,7 @@ The `watch_only_wallet` wallet will be used to track and validate incoming trans > `disable_private_keys` indicates that the wallet should refuse to import private keys, i.e. will be a dedicated watch-only wallet. ```sh -[online]$ ./src/bitcoin-cli -signet -named createwallet \ +[online]$ ./src/vincoin-cli -signet -named createwallet \ wallet_name="watch_only_wallet" \ disable_private_keys=true @@ -70,7 +70,7 @@ The `watch_only_wallet` wallet will be used to track and validate incoming trans 2. Import the `offline_wallet`s public key descriptors to the online `watch_only_wallet` using the `descriptors.json` file created on the offline wallet. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" importdescriptors "$(cat /path/to/descriptors.json)" +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" importdescriptors "$(cat /path/to/descriptors.json)" [ { @@ -109,7 +109,7 @@ At this point, it's important to understand that both the `offline_wallet` and o 1. Generate an address to receive coins. You can use _either_ the `offline_wallet` or the online `watch_only_wallet` to generate this address, as they will produce the same addresses. For the sake of this guide, we'll use the online `watch_only_wallet` to generate the address. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" getnewaddress +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" getnewaddress tb1qtu5qgc6ddhmqm5yqjvhg83qgk2t4ewajg0h6yh ``` @@ -119,7 +119,7 @@ tb1qtu5qgc6ddhmqm5yqjvhg83qgk2t4ewajg0h6yh 3. Confirm that coins were received using the online `watch_only_wallet`. Note that the transaction may take a few moments before being received on your local node, depending on its connectivity. Just re-run the command periodically until the transaction is received. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" listunspent +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" listunspent [ { @@ -148,7 +148,7 @@ tb1qtu5qgc6ddhmqm5yqjvhg83qgk2t4ewajg0h6yh 2. Create a funded but unsigned PSBT to the destination address with the online `watch_only_wallet` by using `send [{"address":amount},...]` and export the unsigned PSBT to a file `funded_psbt.txt` for easy portability to the `offline_wallet` for signing: ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" send \ +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" send \ '{"tb1q9k5w0nhnhyeh78snpxh0t5t7c3lxdeg3erez32": 0.009}' \ | jq -r '.psbt' \ >> /path/to/funded_psbt.txt @@ -165,13 +165,13 @@ cHNidP8BAHECAAAAAWLHKR9/xAjetzL/FCmZU5lbfINRMWPRPHWO68PfUzkPAQAAAAD9////AoA4AQAA Decode and analyze the unsigned PSBT on the `offline_wallet` using the `funded_psbt.txt` file: ```sh -[offline]$ ./src/bitcoin-cli -signet decodepsbt $(cat /path/to/funded_psbt.txt) +[offline]$ ./src/vincoin-cli -signet decodepsbt $(cat /path/to/funded_psbt.txt) { ... } -[offline]$ ./src/bitcoin-cli -signet analyzepsbt $(cat /path/to/funded_psbt.txt) +[offline]$ ./src/vincoin-cli -signet analyzepsbt $(cat /path/to/funded_psbt.txt) { "inputs": [ @@ -202,13 +202,13 @@ Notice that the analysis of the PSBT shows that "signatures" are missing and sho Use the walletpassphrase command to unlock the `offline_wallet` with the passphrase. You should specify the passphrase and a timeout (in seconds) for how long you want the wallet to remain unlocked. ```sh -[offline]$ ./src/bitcoin-cli -signet -rpcwallet="offline_wallet" walletpassphrase "** enter passphrase **" 60 +[offline]$ ./src/vincoin-cli -signet -rpcwallet="offline_wallet" walletpassphrase "** enter passphrase **" 60 ``` 2. Process, sign and finalize the PSBT on the `offline_wallet` using the `walletprocesspsbt` command, saving the output to a file `final_psbt.txt`. ```sh -[offline]$ ./src/bitcoin-cli -signet -rpcwallet="offline_wallet" walletprocesspsbt \ +[offline]$ ./src/vincoin-cli -signet -rpcwallet="offline_wallet" walletprocesspsbt \ $(cat /path/to/funded_psbt.txt) \ | jq -r .hex \ >> /path/to/final_psbt.txt @@ -218,7 +218,7 @@ Use the walletpassphrase command to unlock the `offline_wallet` with the passphr Broadcast the funded, signed and finalized PSBT `final_psbt.txt` using `sendrawtransaction` with an online node: ```sh -[online]$ ./src/bitcoin-cli -signet sendrawtransaction $(cat /path/to/final_psbt.txt) +[online]$ ./src/vincoin-cli -signet sendrawtransaction $(cat /path/to/final_psbt.txt) c2430a0e46df472b04b0ca887bbcd5c4abf7b2ce2eb71de981444a80e2b96d52 ``` @@ -228,7 +228,7 @@ c2430a0e46df472b04b0ca887bbcd5c4abf7b2ce2eb71de981444a80e2b96d52 Confirm the updated balance of the offline wallet using the `watch_only_wallet`. ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" getbalances +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" getbalances { "mine": { @@ -247,7 +247,7 @@ Confirm the updated balance of the offline wallet using the `watch_only_wallet`. You can also show transactions related to the wallet using `listtransactions` ```sh -[online]$ ./src/bitcoin-cli -signet -rpcwallet="watch_only_wallet" listtransactions +[online]$ ./src/vincoin-cli -signet -rpcwallet="watch_only_wallet" listtransactions { ... diff --git a/doc/p2p-bad-ports.md b/doc/p2p-bad-ports.md index 4f717f97a2976..6ba46991800c6 100644 --- a/doc/p2p-bad-ports.md +++ b/doc/p2p-bad-ports.md @@ -1,22 +1,22 @@ -When Bitcoin Core automatically opens outgoing P2P connections, it chooses +When Vincoin Core automatically opens outgoing P2P connections, it chooses a peer (address and port) from its list of potential peers. This list is populated with unchecked data gossiped over the P2P network by other peers. -A malicious actor may gossip an address:port where no Bitcoin node is listening, -or one where a service is listening that is not related to the Bitcoin network. -As a result, this service may occasionally get connection attempts from Bitcoin +A malicious actor may gossip an address:port where no Vincoin node is listening, +or one where a service is listening that is not related to the Vincoin network. +As a result, this service may occasionally get connection attempts from Vincoin nodes. "Bad" ports are ones used by services which are usually not open to the public -and usually require authentication. A connection attempt (by Bitcoin Core, -trying to connect because it thinks there is a Bitcoin node on that +and usually require authentication. A connection attempt (by Vincoin Core, +trying to connect because it thinks there is a Vincoin node on that address:port) to such service may be considered a malicious action by an ultra-paranoid administrator. An example for such a port is 22 (ssh). On the other hand, connection attempts to public services that usually do not require authentication are unlikely to be considered a malicious action, e.g. port 80 (http). -Below is a list of "bad" ports which Bitcoin Core avoids when choosing a peer to +Below is a list of "bad" ports which Vincoin Core avoids when choosing a peer to connect to. If a node is listening on such a port, it will likely receive fewer incoming connections. @@ -103,9 +103,9 @@ incoming connections. For further information see: -[pull/23306](https://github.com/bitcoin/bitcoin/pull/23306#issuecomment-947516736) +[pull/23306](https://github.com/vincoin/vincoin/pull/23306#issuecomment-947516736) -[pull/23542](https://github.com/bitcoin/bitcoin/pull/23542) +[pull/23542](https://github.com/vincoin/vincoin/pull/23542) [fetch.spec.whatwg.org](https://fetch.spec.whatwg.org/#port-blocking) diff --git a/doc/policy/mempool-limits.md b/doc/policy/mempool-limits.md index 73ab017f1b165..396d9f3e99129 100644 --- a/doc/policy/mempool-limits.md +++ b/doc/policy/mempool-limits.md @@ -39,9 +39,9 @@ of the following conditions are met: *Rationale*: this rule was introduced to prevent pinning by domination of a transaction's descendant limits in two-party contract protocols such as LN. Also see the [mailing list -post](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016518.html). +post](https://lists.linuxfoundation.org/pipermail/vincoin-dev/2018-November/016518.html). -This rule was introduced in [PR #15681](https://github.com/bitcoin/bitcoin/pull/15681). +This rule was introduced in [PR #15681](https://github.com/vincoin/vincoin/pull/15681). ### Single-Conflict RBF Carve Out diff --git a/doc/policy/mempool-replacements.md b/doc/policy/mempool-replacements.md index 3fd7ff2ad2de9..f4c9d585e8ae5 100644 --- a/doc/policy/mempool-replacements.md +++ b/doc/policy/mempool-replacements.md @@ -15,7 +15,7 @@ other consensus and policy rules, each of the following conditions are met: A transaction also signals replaceability if its nVersion field is set to 3. *Rationale*: See [BIP125 - explanation](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki#motivation). + explanation](https://github.com/vincoin/bips/blob/master/bip-0125.mediawiki#motivation). Use the (`-mempoolfullrbf`) configuration option to allow transaction replacement without enforcement of the opt-in signaling rule. @@ -66,17 +66,17 @@ This set of rules is similar but distinct from BIP125. ## History * Opt-in full replace-by-fee (without inherited signaling) honoured in mempool and mining as of - **v0.12.0** ([PR 6871](https://github.com/bitcoin/bitcoin/pull/6871)). + **v0.12.0** ([PR 6871](https://github.com/vincoin/vincoin/pull/6871)). -* [BIP125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki) defined based on - Bitcoin Core implementation. +* [BIP125](https://github.com/vincoin/bips/blob/master/bip-0125.mediawiki) defined based on + Vincoin Core implementation. * The incremental relay feerate used to calculate the required additional fees is distinct from `-minrelaytxfee` and configurable using `-incrementalrelayfee` - ([PR #9380](https://github.com/bitcoin/bitcoin/pull/9380)). + ([PR #9380](https://github.com/vincoin/vincoin/pull/9380)). * RBF enabled by default in the wallet GUI as of **v0.18.1** ([PR - #11605](https://github.com/bitcoin/bitcoin/pull/11605)). + #11605](https://github.com/vincoin/vincoin/pull/11605)). * Full replace-by-fee enabled as a configurable mempool policy as of **v24.0** ([PR - #25353](https://github.com/bitcoin/bitcoin/pull/25353)). + #25353](https://github.com/vincoin/vincoin/pull/25353)). diff --git a/doc/productivity.md b/doc/productivity.md index e9b7bc270c677..e68d659c38ac0 100644 --- a/doc/productivity.md +++ b/doc/productivity.md @@ -75,9 +75,9 @@ When rebuilding during development, note that running `make`, without giving a t Obviously, it is important to build and run the tests at appropriate times -- but when you just want a quick compile to check your work, consider picking one or a set of build targets relevant to what you're working on, e.g.: ```sh -make src/bitcoind src/bitcoin-cli -make src/qt/bitcoin-qt -make -C src bitcoin_bench +make src/vincoind src/vincoin-cli +make src/qt/vincoin-qt +make -C src vincoin_bench ``` (You can and should combine this with `-j`, as above, for a parallel build.) @@ -179,7 +179,7 @@ When looking at other's pull requests, it may make sense to add the following se ``` [remote "upstream-pull"] fetch = +refs/pull/*/head:refs/remotes/upstream-pull/* - url = git@github.com:bitcoin/bitcoin.git + url = git@github.com:vincoin/vincoin.git ``` This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all` or `git fetch upstream-pull`. It will download and store on disk quite a lot of data (all PRs, including merged and closed ones). Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`, `git checkout` and anywhere a commit id would be acceptable to see the changes from pull request NUMBER. diff --git a/doc/psbt.md b/doc/psbt.md index 0f31cb8eba633..e846af23e246a 100644 --- a/doc/psbt.md +++ b/doc/psbt.md @@ -1,8 +1,8 @@ -# PSBT Howto for Bitcoin Core +# PSBT Howto for Vincoin Core -Since Bitcoin Core 0.17, an RPC interface exists for Partially Signed Bitcoin +Since Vincoin Core 0.17, an RPC interface exists for Partially Signed Vincoin Transactions (PSBTs, as specified in -[BIP 174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki)). +[BIP 174](https://github.com/vincoin/bips/blob/master/bip-0174.mediawiki)). This document describes the overall workflow for producing signed transactions through the use of PSBT, and the specific RPC commands used in typical @@ -10,15 +10,15 @@ scenarios. ## PSBT in general -PSBT is an interchange format for Bitcoin transactions that are not fully signed +PSBT is an interchange format for Vincoin transactions that are not fully signed yet, together with relevant metadata to help entities work towards signing it. It is intended to simplify workflows where multiple parties need to cooperate to produce a transaction. Examples include hardware wallets, multisig setups, and -[CoinJoin](https://bitcointalk.org/?topic=279249) transactions. +[CoinJoin](https://vincointalk.org/?topic=279249) transactions. ### Overall workflow -Overall, the construction of a fully signed Bitcoin transaction goes through the +Overall, the construction of a fully signed Vincoin transaction goes through the following steps: - A **Creator** proposes a particular transaction to be created. They construct @@ -32,7 +32,7 @@ following steps: partial signature for the inputs for which they have relevant key(s). - A **Finalizer** is run for each input to convert the partial signatures and possibly script information into a final `scriptSig` and/or `scriptWitness`. -- An **Extractor** produces a valid Bitcoin transaction (in network format) +- An **Extractor** produces a valid Vincoin transaction (in network format) from a PSBT for which all inputs are finalized. Generally, each of the above (excluding Creator and Extractor) will simply @@ -46,7 +46,7 @@ The names above in bold are the names of the roles defined in BIP174. They're useful in understanding the underlying steps, but in practice, software and hardware implementations will typically implement multiple roles simultaneously. -## PSBT in Bitcoin Core +## PSBT in Vincoin Core ### RPCs @@ -90,16 +90,16 @@ hardware implementations will typically implement multiple roles simultaneously. ### Workflows -#### Multisig with multiple Bitcoin Core instances +#### Multisig with multiple Vincoin Core instances For a quick start see [Basic M-of-N multisig example using descriptor wallets and PSBTs](./descriptors.md#basic-multisig-example). If you are using legacy wallets feel free to continue with the example provided here. Alice, Bob, and Carol want to create a 2-of-3 multisig address. They're all using -Bitcoin Core. We assume their wallets only contain the multisig funds. In case +Vincoin Core. We assume their wallets only contain the multisig funds. In case they also have a personal wallet, this can be accomplished through the multiwallet feature - possibly resulting in a need to add `-rpcwallet=name` to -the command line in case `bitcoin-cli` is used. +the command line in case `vincoin-cli` is used. Setup: - All three call `getnewaddress` to create a new address; call these addresses diff --git a/doc/reduce-memory.md b/doc/reduce-memory.md index 2710797ef3abb..07ab8cb1373df 100644 --- a/doc/reduce-memory.md +++ b/doc/reduce-memory.md @@ -1,6 +1,6 @@ # Reduce Memory -There are a few parameters that can be dialed down to reduce the memory usage of `bitcoind`. This can be useful on embedded systems or small VPSes. +There are a few parameters that can be dialed down to reduce the memory usage of `vincoind`. This can be useful on embedded systems or small VPSes. ## In-memory caches @@ -12,9 +12,9 @@ The size of some in-memory caches can be reduced. As caches trade off memory usa ## Memory pool -- In Bitcoin Core there is a memory pool limiter which can be configured with `-maxmempool=`, where `` is the size in MB (1000). The default value is `300`. +- In Vincoin Core there is a memory pool limiter which can be configured with `-maxmempool=`, where `` is the size in MB (1000). The default value is `300`. - The minimum value for `-maxmempool` is 5. - - A lower maximum mempool size means that transactions will be evicted sooner. This will affect any uses of `bitcoind` that process unconfirmed transactions. + - A lower maximum mempool size means that transactions will be evicted sooner. This will affect any uses of `vincoind` that process unconfirmed transactions. - Since `0.14.0`, unused memory allocated to the mempool (default: 300MB) is shared with the UTXO cache, so when trying to reduce memory usage you should limit the mempool, with the `-maxmempool` command line argument. @@ -43,12 +43,12 @@ threads take up 8MiB for the thread stack on a 64-bit system, and 4MiB in a ## Linux specific -By default, glibc's implementation of `malloc` may use more than one arena. This is known to cause excessive memory usage in some scenarios. To avoid this, make a script that sets `MALLOC_ARENA_MAX` before starting bitcoind: +By default, glibc's implementation of `malloc` may use more than one arena. This is known to cause excessive memory usage in some scenarios. To avoid this, make a script that sets `MALLOC_ARENA_MAX` before starting vincoind: ```bash #!/usr/bin/env bash export MALLOC_ARENA_MAX=1 -bitcoind +vincoind ``` -The behavior was introduced to increase CPU locality of allocated memory and performance with concurrent allocation, so this setting could in theory reduce performance. However, in Bitcoin Core very little parallel allocation happens, so the impact is expected to be small or absent. +The behavior was introduced to increase CPU locality of allocated memory and performance with concurrent allocation, so this setting could in theory reduce performance. However, in Vincoin Core very little parallel allocation happens, so the impact is expected to be small or absent. diff --git a/doc/reduce-traffic.md b/doc/reduce-traffic.md index 8926a8361aa3e..5db58c69a5b3b 100644 --- a/doc/reduce-traffic.md +++ b/doc/reduce-traffic.md @@ -3,7 +3,7 @@ Reduce Traffic Some node operators need to deal with bandwidth caps imposed by their ISPs. -By default, Bitcoin Core allows up to 125 connections to different peers, 11 of +By default, Vincoin Core allows up to 125 connections to different peers, 11 of which are outbound. You can therefore, have at most 114 inbound connections. Of the 11 outbound peers, there can be 8 full-relay connections, 2 block-relay-only ones and occasionally 1 short-lived feeler or an extra block-relay-only connection. @@ -35,7 +35,7 @@ blocks and transactions to fewer nodes. ## 3. Reduce maximum connections (`-maxconnections=`) Reducing the maximum connected nodes to a minimum could be desirable if traffic -limits are tiny. Keep in mind that bitcoin's trustless model works best if you are +limits are tiny. Keep in mind that vincoin's trustless model works best if you are connected to a handful of nodes. ## 4. Turn off transaction relay (`-blocksonly`) diff --git a/doc/release-notes-29189.md b/doc/release-notes-29189.md index f75e450217229..416c1a781357b 100644 --- a/doc/release-notes-29189.md +++ b/doc/release-notes-29189.md @@ -1,4 +1,4 @@ -libbitcoinconsensus +libvincoinconsensus ======================== This library is deprecated and will be removed for v28. @@ -10,6 +10,6 @@ The underlying functionality does not change between versions, so any users of the library can continue to use the final release indefinitely, with the understanding that Taproot is its final consensus update. -In the future, libbitcoinkernel will provide a much more useful API that is +In the future, libvincoinkernel will provide a much more useful API that is aware of the UTXO set, and therefore be able to fully validate transactions and blocks. diff --git a/doc/release-notes-empty-template.md b/doc/release-notes-empty-template.md index 96e28c3763316..0821e94804467 100644 --- a/doc/release-notes-empty-template.md +++ b/doc/release-notes-empty-template.md @@ -5,40 +5,40 @@ for the process.* *version* Release Notes Draft =============================== -Bitcoin Core version *version* is now available from: +Vincoin Core version *version* is now available from: - + This release includes new features, various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: - + To receive security and update notifications, please subscribe to: - + How to Upgrade ============== If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes in some cases), then run the -installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) -or `bitcoind`/`bitcoin-qt` (on Linux). +installer (on Windows) or just copy over `/Applications/Vincoin-Qt` (on macOS) +or `vincoind`/`vincoin-qt` (on Linux). -Upgrading directly from a version of Bitcoin Core that has reached its EOL is +Upgrading directly from a version of Vincoin Core that has reached its EOL is possible, but it might take some time if the data directory needs to be migrated. Old -wallet versions of Bitcoin Core are generally supported. +wallet versions of Vincoin Core are generally supported. Compatibility ============== -Bitcoin Core is supported and extensively tested on operating systems -using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin +Vincoin Core is supported and extensively tested on operating systems +using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Vincoin Core should also work on most other Unix-like systems but is not as -frequently tested on them. It is not recommended to use Bitcoin Core on +frequently tested on them. It is not recommended to use Vincoin Core on unsupported systems. Notable changes @@ -96,4 +96,4 @@ Thanks to everyone who directly contributed to this release: As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). +[Transifex](https://www.transifex.com/vincoin/vincoin/). diff --git a/doc/release-process.md b/doc/release-process.md index 95ef08a26f3df..ebe18223a58fe 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -5,10 +5,10 @@ Release Process ### Before every release candidate -* Update translations see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations). +* Update translations see [translation_process.md](https://github.com/vincoin/vincoin/blob/master/doc/translation_process.md#synchronising-translations). * Update release candidate version in `configure.ac` (`CLIENT_VERSION_RC`). -* Update manpages (after rebuilding the binaries), see [gen-manpages.py](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-manpagespy). -* Update bitcoin.conf and commit, see [gen-bitcoin-conf.sh](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-bitcoin-confsh). +* Update manpages (after rebuilding the binaries), see [gen-manpages.py](https://github.com/vincoin/vincoin/blob/master/contrib/devtools/README.md#gen-manpagespy). +* Update vincoin.conf and commit, see [gen-vincoin-conf.sh](https://github.com/vincoin/vincoin/blob/master/contrib/devtools/README.md#gen-vincoin-confsh). ### Before every major and minor release @@ -21,14 +21,14 @@ Release Process * On both the master branch and the new release branch: - update `CLIENT_VERSION_MAJOR` in [`configure.ac`](../configure.ac) -* On the new release branch in [`configure.ac`](../configure.ac)(see [this commit](https://github.com/bitcoin/bitcoin/commit/742f7dd)): +* On the new release branch in [`configure.ac`](../configure.ac)(see [this commit](https://github.com/vincoin/vincoin/commit/742f7dd)): - set `CLIENT_VERSION_MINOR` to `0` - set `CLIENT_VERSION_BUILD` to `0` - set `CLIENT_VERSION_IS_RELEASE` to `true` #### Before branch-off -* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/27488) for an example. +* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/vincoin/vincoin/pull/27488) for an example. * Update the following variables in [`src/kernel/chainparams.cpp`](/src/kernel/chainparams.cpp) for mainnet, testnet, and signet: - `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). @@ -36,7 +36,7 @@ Release Process that causes rejection of blocks in the past history. - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC with an `nBlocks` of 4096 (28 days) and a `bestblockhash` of RPC `getbestblockhash`; see - [this pull request](https://github.com/bitcoin/bitcoin/pull/28591) for an example. Reviewers can verify the results by running + [this pull request](https://github.com/vincoin/vincoin/pull/28591) for an example. Reviewers can verify the results by running `getchaintxstats ` with the `window_block_count` and `window_final_block_hash` from your output. - `defaultAssumeValid` with the output of RPC `getblockhash` using the `height` of `window_final_block_height` above (and update the block height comment with that height), taking into account the following: @@ -54,35 +54,35 @@ Release Process - Clear the release notes and move them to the wiki (see "Write the release notes" below). - Translations on Transifex: - Pull translations from Transifex into the master branch. - - Create [a new resource](https://www.transifex.com/bitcoin/bitcoin/content/) named after the major version with the slug `qt-translation-x`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/bitcoin_en.xlf` to create it. + - Create [a new resource](https://www.transifex.com/vincoin/vincoin/content/) named after the major version with the slug `qt-translation-x`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/vincoin_en.xlf` to create it. - In the project workflow settings, ensure that [Translation Memory Fill-up](https://help.transifex.com/en/articles/6224817-setting-up-translation-memory-fill-up) is enabled and that [Translation Memory Context Matching](https://help.transifex.com/en/articles/6224753-translation-memory-with-context) is disabled. - Update the Transifex slug in [`.tx/config`](/.tx/config) to the slug of the resource created in the first step. This identifies which resource the translations will be synchronized from. - - Make an announcement that translators can start translating for the new version. You can use one of the [previous announcements](https://www.transifex.com/bitcoin/communication/) as a template. - - Change the auto-update URL for the resource to `master`, e.g. `https://raw.githubusercontent.com/bitcoin/bitcoin/master/src/qt/locale/bitcoin_en.xlf`. (Do this only after the previous steps, to prevent an auto-update from interfering.) + - Make an announcement that translators can start translating for the new version. You can use one of the [previous announcements](https://www.transifex.com/vincoin/communication/) as a template. + - Change the auto-update URL for the resource to `master`, e.g. `https://raw.githubusercontent.com/vincoin/vincoin/master/src/qt/locale/vincoin_en.xlf`. (Do this only after the previous steps, to prevent an auto-update from interfering.) #### After branch-off (on the major release branch) - Update the versions. -- Create the draft, named "*version* Release Notes Draft", as a [collaborative wiki](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/_new). +- Create the draft, named "*version* Release Notes Draft", as a [collaborative wiki](https://github.com/vincoin-core/vincoin-devwiki/wiki/_new). - Clear the release notes: `cp doc/release-notes-empty-template.md doc/release-notes.md` -- Create a pinned meta-issue for testing the release candidate (see [this issue](https://github.com/bitcoin/bitcoin/issues/27621) for an example) and provide a link to it in the release announcements where useful. +- Create a pinned meta-issue for testing the release candidate (see [this issue](https://github.com/vincoin/vincoin/issues/27621) for an example) and provide a link to it in the release announcements where useful. - Translations on Transifex - - Change the auto-update URL for the new major version's resource away from `master` and to the branch, e.g. `https://raw.githubusercontent.com/bitcoin/bitcoin//src/qt/locale/bitcoin_en.xlf`. Do not forget this or it will keep tracking the translations on master instead, drifting away from the specific major release. + - Change the auto-update URL for the new major version's resource away from `master` and to the branch, e.g. `https://raw.githubusercontent.com/vincoin/vincoin//src/qt/locale/vincoin_en.xlf`. Do not forget this or it will keep tracking the translations on master instead, drifting away from the specific major release. - Prune inputs from the qa-assets repo (See [pruning - inputs](https://github.com/bitcoin-core/qa-assets#pruning-inputs)). + inputs](https://github.com/vincoin-core/qa-assets#pruning-inputs)). #### Before final release -- Merge the release notes from [the wiki](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/) into the branch. +- Merge the release notes from [the wiki](https://github.com/vincoin-core/vincoin-devwiki/wiki/) into the branch. - Ensure the "Needs release note" label is removed from all relevant pull requests and issues: - https://github.com/bitcoin/bitcoin/issues?q=label%3A%22Needs+release+note%22 + https://github.com/vincoin/vincoin/issues?q=label%3A%22Needs+release+note%22 #### Tagging a release (candidate) -To tag the version (or release candidate) in git, use the `make-tag.py` script from [bitcoin-maintainer-tools](https://github.com/bitcoin-core/bitcoin-maintainer-tools). From the root of the repository run: +To tag the version (or release candidate) in git, use the `make-tag.py` script from [vincoin-maintainer-tools](https://github.com/vincoin-core/vincoin-maintainer-tools). From the root of the repository run: - ../bitcoin-maintainer-tools/make-tag.py v(new version, e.g. 25.0) + ../vincoin-maintainer-tools/make-tag.py v(new version, e.g. 25.0) This will perform a few last-minute consistency checks in the build system files, and if they pass, create a signed tag. @@ -96,13 +96,13 @@ Install Guix using one of the installation methods detailed in Check out the source code in the following directory hierarchy. cd /path/to/your/toplevel/build - git clone https://github.com/bitcoin-core/guix.sigs.git - git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git - git clone https://github.com/bitcoin/bitcoin.git + git clone https://github.com/vincoin-core/guix.sigs.git + git clone https://github.com/vincoin-core/vincoin-detached-sigs.git + git clone https://github.com/vincoin/vincoin.git ### Write the release notes -Open a draft of the release notes for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki. +Open a draft of the release notes for collaborative editing at https://github.com/vincoin-core/vincoin-devwiki/wiki. For the period during which the notes are being edited on the wiki, the version on the branch should be wiped and replaced with a link to the wiki which should be used for all announcements until `-final`. @@ -112,10 +112,10 @@ Generate list of authors: ### Setup and perform Guix builds -Checkout the Bitcoin Core version you'd like to build: +Checkout the Vincoin Core version you'd like to build: ```sh -pushd ./bitcoin +pushd ./vincoin SIGNER='(your builder key, ie bluematt, sipa, etc)' VERSION='(new version without v-prefix, e.g. 25.0)' git fetch origin "v${VERSION}" @@ -155,32 +155,32 @@ git commit -m "Add attestations by ${SIGNER} for ${VERSION} non-codesigned" popd ``` -Then open a Pull Request to the [guix.sigs repository](https://github.com/bitcoin-core/guix.sigs). +Then open a Pull Request to the [guix.sigs repository](https://github.com/vincoin-core/guix.sigs). ## Codesigning ### macOS codesigner only: Create detached macOS signatures (assuming [signapple](https://github.com/achow101/signapple/) is installed and up to date with master branch) - tar xf bitcoin-osx-unsigned.tar.gz + tar xf vincoin-osx-unsigned.tar.gz ./detached-sig-create.sh /path/to/codesign.p12 Enter the keychain password and authorize the signature signature-osx.tar.gz will be created ### Windows codesigner only: Create detached Windows signatures - tar xf bitcoin-win-unsigned.tar.gz + tar xf vincoin-win-unsigned.tar.gz ./detached-sig-create.sh -key /path/to/codesign.key Enter the passphrase for the key when prompted signature-win.tar.gz will be created ### Windows and macOS codesigners only: test code signatures It is advised to test that the code signature attaches properly prior to tagging by performing the `guix-codesign` step. -However if this is done, once the release has been tagged in the bitcoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds. +However if this is done, once the release has been tagged in the vincoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds. ### Windows and macOS codesigners only: Commit the detached codesign payloads ```sh -pushd ./bitcoin-detached-sigs +pushd ./vincoin-detached-sigs # checkout the appropriate branch for this release series rm -rf ./* tar xf signature-osx.tar.gz @@ -195,7 +195,7 @@ popd ### Non-codesigners: wait for Windows and macOS detached signatures - Once the Windows and macOS builds each have 3 matching signatures, they will be signed with their respective release keys. -- Detached signatures will then be committed to the [bitcoin-detached-sigs](https://github.com/bitcoin-core/bitcoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries. +- Detached signatures will then be committed to the [vincoin-detached-sigs](https://github.com/vincoin-core/vincoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries. ### Create the codesigned build outputs @@ -214,7 +214,7 @@ git commit -m "Add attestations by ${SIGNER} for ${VERSION} codesigned" popd ``` -Then open a Pull Request to the [guix.sigs repository](https://github.com/bitcoin-core/guix.sigs). +Then open a Pull Request to the [guix.sigs repository](https://github.com/vincoin-core/guix.sigs). ## After 3 or more people have guix-built and their results match @@ -225,8 +225,8 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc ``` -- Upload to the bitcoincore.org server (`/var/www/bin/bitcoin-core-${VERSION}/`): - 1. The contents of each `./bitcoin/guix-build-${VERSION}/output/${HOST}/` directory, except for +- Upload to the vincoincore.org server (`/var/www/bin/vincoin-core-${VERSION}/`): + 1. The contents of each `./vincoin/guix-build-${VERSION}/output/${HOST}/` directory, except for `*-debug*` files. Guix will output all of the results into host subdirectories, but the SHA256SUMS @@ -238,21 +238,21 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc for troubleshooting by developers. It is assumed that anyone that is interested in debugging can run guix to generate the files for themselves. To avoid end-user confusion about which file to pick, as well - as save storage space *do not upload these to the bitcoincore.org server, + as save storage space *do not upload these to the vincoincore.org server, nor put them in the torrent*. ```sh - find guix-build-${VERSION}/output/ -maxdepth 2 -type f -not -name "SHA256SUMS.part" -and -not -name "*debug*" -exec scp {} user@bitcoincore.org:/var/www/bin/bitcoin-core-${VERSION} \; + find guix-build-${VERSION}/output/ -maxdepth 2 -type f -not -name "SHA256SUMS.part" -and -not -name "*debug*" -exec scp {} user@vincoincore.org:/var/www/bin/vincoin-core-${VERSION} \; ``` 2. The `SHA256SUMS` file 3. The `SHA256SUMS.asc` combined signature file you just created -- Create a torrent of the `/var/www/bin/bitcoin-core-${VERSION}` directory such - that at the top level there is only one file: the `bitcoin-core-${VERSION}` +- Create a torrent of the `/var/www/bin/vincoin-core-${VERSION}` directory such + that at the top level there is only one file: the `vincoin-core-${VERSION}` directory containing everything else. Name the torrent - `bitcoin-${VERSION}.torrent` (note that there is no `-core-` in this name). + `vincoin-${VERSION}.torrent` (note that there is no `-core-` in this name). Optionally help seed this torrent. To get the `magnet:` URI use: @@ -261,44 +261,44 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc ``` Insert the magnet URI into the announcement sent to mailing lists. This permits - people without access to `bitcoincore.org` to download the binary distribution. + people without access to `vincoincore.org` to download the binary distribution. Also put it into the `optional_magnetlink:` slot in the YAML file for - bitcoincore.org. + vincoincore.org. - Update other repositories and websites for new version - - bitcoincore.org blog post + - vincoincore.org blog post - - bitcoincore.org maintained versions update: - [table](https://github.com/bitcoin-core/bitcoincore.org/commits/master/_includes/posts/maintenance-table.md) + - vincoincore.org maintained versions update: + [table](https://github.com/vincoin-core/vincoincore.org/commits/master/_includes/posts/maintenance-table.md) - - Delete post-EOL [release branches](https://github.com/bitcoin/bitcoin/branches/all) and create a tag `v${branch_name}-final`. + - Delete post-EOL [release branches](https://github.com/vincoin/vincoin/branches/all) and create a tag `v${branch_name}-final`. - - Delete ["Needs backport" labels](https://github.com/bitcoin/bitcoin/labels?q=backport) for non-existing branches. + - Delete ["Needs backport" labels](https://github.com/vincoin/vincoin/labels?q=backport) for non-existing branches. - - bitcoincore.org RPC documentation update + - vincoincore.org RPC documentation update - - See https://github.com/bitcoin-core/bitcoincore.org/blob/master/contrib/doc-gen/ + - See https://github.com/vincoin-core/vincoincore.org/blob/master/contrib/doc-gen/ - Update packaging repo - - Push the flatpak to flathub, e.g. https://github.com/flathub/org.bitcoincore.bitcoin-qt/pull/2 + - Push the flatpak to flathub, e.g. https://github.com/flathub/org.vincoincore.vincoin-qt/pull/2 - - Push the snap, see https://github.com/bitcoin-core/packaging/blob/main/snap/local/build.md + - Push the snap, see https://github.com/vincoin-core/packaging/blob/main/snap/local/build.md - This repo - Archive the release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release) - - Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes + - Create a [new GitHub release](https://github.com/vincoin/vincoin/releases/new) with a link to the archived release notes - Announce the release: - - bitcoin-dev and bitcoin-core-dev mailing list + - vincoin-dev and vincoin-core-dev mailing list - - Bitcoin Core announcements list https://bitcoincore.org/en/list/announcements/join/ + - Vincoin Core announcements list https://vincoincore.org/en/list/announcements/join/ - - Bitcoin Core Twitter https://twitter.com/bitcoincoreorg + - Vincoin Core Twitter https://twitter.com/vincoincoreorg - Celebrate diff --git a/doc/shared-libraries.md b/doc/shared-libraries.md index 3a448c655612e..04eff854e7a6f 100644 --- a/doc/shared-libraries.md +++ b/doc/shared-libraries.md @@ -1,34 +1,34 @@ Shared Libraries ================ -## bitcoinconsensus +## vincoinconsensus ***This library is deprecated and will be removed in v28*** -The purpose of this library is to make the verification functionality that is critical to Bitcoin's consensus available to other applications, e.g. to language bindings. +The purpose of this library is to make the verification functionality that is critical to Vincoin's consensus available to other applications, e.g. to language bindings. ### API -The interface is defined in the C header `bitcoinconsensus.h` located in `src/script/bitcoinconsensus.h`. +The interface is defined in the C header `vincoinconsensus.h` located in `src/script/vincoinconsensus.h`. #### Version -`bitcoinconsensus_version` returns an `unsigned int` with the API version *(currently `2`)*. +`vincoinconsensus_version` returns an `unsigned int` with the API version *(currently `2`)*. #### Script Validation -`bitcoinconsensus_verify_script`, `bitcoinconsensus_verify_script_with_amount` and `bitcoinconsensus_verify_script_with_spent_outputs` return an `int` with the status of the verification. It will be `1` if the input script correctly spends the previous output `scriptPubKey`. +`vincoinconsensus_verify_script`, `vincoinconsensus_verify_script_with_amount` and `vincoinconsensus_verify_script_with_spent_outputs` return an `int` with the status of the verification. It will be `1` if the input script correctly spends the previous output `scriptPubKey`. ##### Parameters -###### bitcoinconsensus_verify_script +###### vincoinconsensus_verify_script - `const unsigned char *scriptPubKey` - The previous output script that encumbers spending. - `unsigned int scriptPubKeyLen` - The number of bytes for the `scriptPubKey`. - `const unsigned char *txTo` - The transaction with the input that is spending the previous output. - `unsigned int txToLen` - The number of bytes for the `txTo`. - `unsigned int nIn` - The index of the input in `txTo` that spends the `scriptPubKey`. - `unsigned int flags` - The script validation flags *(see below)*. -- `bitcoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. +- `vincoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. -###### bitcoinconsensus_verify_script_with_amount +###### vincoinconsensus_verify_script_with_amount - `const unsigned char *scriptPubKey` - The previous output script that encumbers spending. - `unsigned int scriptPubKeyLen` - The number of bytes for the `scriptPubKey`. - `int64_t amount` - The amount spent in the input @@ -36,9 +36,9 @@ The interface is defined in the C header `bitcoinconsensus.h` located in `src/sc - `unsigned int txToLen` - The number of bytes for the `txTo`. - `unsigned int nIn` - The index of the input in `txTo` that spends the `scriptPubKey`. - `unsigned int flags` - The script validation flags *(see below)*. -- `bitcoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. +- `vincoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. -###### bitcoinconsensus_verify_script_with_spent_outputs +###### vincoinconsensus_verify_script_with_spent_outputs - `const unsigned char *scriptPubKey` - The previous output script that encumbers spending. - `unsigned int scriptPubKeyLen` - The number of bytes for the `scriptPubKey`. - `int64_t amount` - The amount spent in the input @@ -48,31 +48,31 @@ The interface is defined in the C header `bitcoinconsensus.h` located in `src/sc - `unsigned int spentOutputsLen` - The number of bytes for the `spentOutputs`. - `unsigned int nIn` - The index of the input in `txTo` that spends the `scriptPubKey`. - `unsigned int flags` - The script validation flags *(see below)*. -- `bitcoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. +- `vincoinconsensus_error* err` - Will have the error/success code for the operation *(see below)*. ##### Script Flags -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NONE` -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH` - Evaluate P2SH ([BIP16](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki)) subscripts -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG` - Enforce strict DER ([BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)) compliance -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY` - Enforce NULLDUMMY ([BIP147](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY` - Enable CHECKLOCKTIMEVERIFY ([BIP65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY` - Enable CHECKSEQUENCEVERIFY ([BIP112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS` - Enable WITNESS ([BIP141](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki)) -- `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` - Enable TAPROOT ([BIP340](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki), [BIP341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki), [BIP342](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_NONE` +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_P2SH` - Evaluate P2SH ([BIP16](https://github.com/vincoin/bips/blob/master/bip-0016.mediawiki)) subscripts +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_DERSIG` - Enforce strict DER ([BIP66](https://github.com/vincoin/bips/blob/master/bip-0066.mediawiki)) compliance +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_NULLDUMMY` - Enforce NULLDUMMY ([BIP147](https://github.com/vincoin/bips/blob/master/bip-0147.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY` - Enable CHECKLOCKTIMEVERIFY ([BIP65](https://github.com/vincoin/bips/blob/master/bip-0065.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_CHECKSEQUENCEVERIFY` - Enable CHECKSEQUENCEVERIFY ([BIP112](https://github.com/vincoin/bips/blob/master/bip-0112.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_WITNESS` - Enable WITNESS ([BIP141](https://github.com/vincoin/bips/blob/master/bip-0141.mediawiki)) +- `vincoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` - Enable TAPROOT ([BIP340](https://github.com/vincoin/bips/blob/master/bip-0340.mediawiki), [BIP341](https://github.com/vincoin/bips/blob/master/bip-0341.mediawiki), [BIP342](https://github.com/vincoin/bips/blob/master/bip-0342.mediawiki)) ##### Errors -- `bitcoinconsensus_ERR_OK` - No errors with input parameters *(see the return value of `bitcoinconsensus_verify_script` for the verification status)* -- `bitcoinconsensus_ERR_TX_INDEX` - An invalid index for `txTo` -- `bitcoinconsensus_ERR_TX_SIZE_MISMATCH` - `txToLen` did not match with the size of `txTo` -- `bitcoinconsensus_ERR_DESERIALIZE` - An error deserializing `txTo` -- `bitcoinconsensus_ERR_AMOUNT_REQUIRED` - Input amount is required if WITNESS is used -- `bitcoinconsensus_ERR_INVALID_FLAGS` - Script verification `flags` are invalid (i.e. not part of the libconsensus interface) -- `bitcoinconsensus_ERR_SPENT_OUTPUTS_REQUIRED` - Spent outputs are required if TAPROOT is used -- `bitcoinconsensus_ERR_SPENT_OUTPUTS_MISMATCH` - Spent outputs size doesn't match tx inputs size +- `vincoinconsensus_ERR_OK` - No errors with input parameters *(see the return value of `vincoinconsensus_verify_script` for the verification status)* +- `vincoinconsensus_ERR_TX_INDEX` - An invalid index for `txTo` +- `vincoinconsensus_ERR_TX_SIZE_MISMATCH` - `txToLen` did not match with the size of `txTo` +- `vincoinconsensus_ERR_DESERIALIZE` - An error deserializing `txTo` +- `vincoinconsensus_ERR_AMOUNT_REQUIRED` - Input amount is required if WITNESS is used +- `vincoinconsensus_ERR_INVALID_FLAGS` - Script verification `flags` are invalid (i.e. not part of the libconsensus interface) +- `vincoinconsensus_ERR_SPENT_OUTPUTS_REQUIRED` - Spent outputs are required if TAPROOT is used +- `vincoinconsensus_ERR_SPENT_OUTPUTS_MISMATCH` - Spent outputs size doesn't match tx inputs size ### Example Implementations -- [NBitcoin](https://github.com/MetacoSA/NBitcoin/blob/5e1055cd7c4186dee4227c344af8892aea54faec/NBitcoin/Script.cs#L979-#L1031) (.NET Bindings) -- [node-libbitcoinconsensus](https://github.com/bitpay/node-libbitcoinconsensus) (Node.js Bindings) -- [java-libbitcoinconsensus](https://github.com/dexX7/java-libbitcoinconsensus) (Java Bindings) -- [bitcoinconsensus-php](https://github.com/Bit-Wasp/bitcoinconsensus-php) (PHP Bindings) -- [rust-bitcoinconsensus](https://github.com/rust-bitcoin/rust-bitcoinconsensus) (Rust Bindings) \ No newline at end of file +- [NVincoin](https://github.com/MetacoSA/NVincoin/blob/5e1055cd7c4186dee4227c344af8892aea54faec/NVincoin/Script.cs#L979-#L1031) (.NET Bindings) +- [node-libvincoinconsensus](https://github.com/bitpay/node-libvincoinconsensus) (Node.js Bindings) +- [java-libvincoinconsensus](https://github.com/dexX7/java-libvincoinconsensus) (Java Bindings) +- [vincoinconsensus-php](https://github.com/Bit-Wasp/vincoinconsensus-php) (PHP Bindings) +- [rust-vincoinconsensus](https://github.com/rust-vincoin/rust-vincoinconsensus) (Rust Bindings) \ No newline at end of file diff --git a/doc/tor.md b/doc/tor.md index 65aa3ece02eb3..8d816d775b33e 100644 --- a/doc/tor.md +++ b/doc/tor.md @@ -1,19 +1,19 @@ # TOR SUPPORT IN BITCOIN -It is possible to run Bitcoin Core as a Tor onion service, and connect to such services. +It is possible to run Vincoin Core as a Tor onion service, and connect to such services. The following directions assume you have a Tor proxy running on port 9050. Many distributions default to having a SOCKS proxy listening on port 9050, but others may not. In particular, the Tor Browser Bundle defaults to listening on port 9150. ## Compatibility -- Starting with version 22.0, Bitcoin Core only supports Tor version 3 hidden - services (Tor v3). Tor v2 addresses are ignored by Bitcoin Core and neither +- Starting with version 22.0, Vincoin Core only supports Tor version 3 hidden + services (Tor v3). Tor v2 addresses are ignored by Vincoin Core and neither relayed nor stored. - Tor removed v2 support beginning with version 0.4.6. -## How to see information about your Tor configuration via Bitcoin Core +## How to see information about your Tor configuration via Vincoin Core -There are several ways to see your local onion address in Bitcoin Core: +There are several ways to see your local onion address in Vincoin Core: - in the "Local addresses" output of CLI `-netinfo` - in the "localaddresses" output of RPC `getnetworkinfo` - in the debug log (grep for "AddLocal"; the Tor address ends in `.onion`) @@ -25,11 +25,11 @@ CLI `-addrinfo` returns the number of addresses known to your node per network. This can be useful to see how many onion peers your node knows, e.g. for `-onlynet=onion`. -You can use the `getnodeaddresses` RPC to fetch a number of onion peers known to your node; run `bitcoin-cli help getnodeaddresses` for details. +You can use the `getnodeaddresses` RPC to fetch a number of onion peers known to your node; run `vincoin-cli help getnodeaddresses` for details. -## 1. Run Bitcoin Core behind a Tor proxy +## 1. Run Vincoin Core behind a Tor proxy -The first step is running Bitcoin Core behind a Tor proxy. This will already anonymize all +The first step is running Vincoin Core behind a Tor proxy. This will already anonymize all outgoing connections, but more is possible. -proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy @@ -62,22 +62,22 @@ outgoing connections, but more is possible. In a typical situation, this suffices to run behind a Tor proxy: - ./bitcoind -proxy=127.0.0.1:9050 + ./vincoind -proxy=127.0.0.1:9050 -## 2. Automatically create a Bitcoin Core onion service +## 2. Automatically create a Vincoin Core onion service -Bitcoin Core makes use of Tor's control socket API to create and destroy +Vincoin Core makes use of Tor's control socket API to create and destroy ephemeral onion services programmatically. This means that if Tor is running and -proper authentication has been configured, Bitcoin Core automatically creates an +proper authentication has been configured, Vincoin Core automatically creates an onion service to listen on. The goal is to increase the number of available onion nodes. -This feature is enabled by default if Bitcoin Core is listening (`-listen`) and +This feature is enabled by default if Vincoin Core is listening (`-listen`) and it requires a Tor connection to work. It can be explicitly disabled with `-listenonion=0`. If it is not disabled, it can be configured using the `-torcontrol` and `-torpassword` settings. -To see verbose Tor information in the bitcoind debug log, pass `-debug=tor`. +To see verbose Tor information in the vincoind debug log, pass `-debug=tor`. ### Control Port @@ -99,20 +99,20 @@ Debian and Ubuntu, or just restart the computer). ### Authentication Connecting to Tor's control socket API requires one of two authentication -methods to be configured: cookie authentication or bitcoind's `-torpassword` +methods to be configured: cookie authentication or vincoind's `-torpassword` configuration option. #### Cookie authentication -For cookie authentication, the user running bitcoind must have read access to +For cookie authentication, the user running vincoind must have read access to the `CookieAuthFile` specified in the Tor configuration. In some cases this is preconfigured and the creation of an onion service is automatic. Don't forget to -use the `-debug=tor` bitcoind configuration option to enable Tor debug logging. +use the `-debug=tor` vincoind configuration option to enable Tor debug logging. If a permissions problem is seen in the debug log, e.g. `tor: Authentication cookie /run/tor/control.authcookie could not be opened (check permissions)`, it can be resolved by adding both the user running Tor and the user running -bitcoind to the same Tor group and setting permissions appropriately. +vincoind to the same Tor group and setting permissions appropriately. On Debian-derived systems, the Tor group will likely be `debian-tor` and one way to verify could be to list the groups and grep for a "tor" group name: @@ -129,14 +129,14 @@ TORGROUP=$(stat -c '%G' /run/tor/control.authcookie) ``` Once you have determined the `${TORGROUP}` and selected the `${USER}` that will -run bitcoind, run this as root: +run vincoind, run this as root: ``` usermod -a -G ${TORGROUP} ${USER} ``` Then restart the computer (or log out) and log in as the `${USER}` that will run -bitcoind. +vincoind. #### `torpassword` authentication @@ -150,22 +150,22 @@ Manual](https://2019.www.torproject.org/docs/tor-manual.html.en) for more details). -## 3. Manually create a Bitcoin Core onion service +## 3. Manually create a Vincoin Core onion service You can also manually configure your node to be reachable from the Tor network. Add these lines to your `/etc/tor/torrc` (or equivalent config file): - HiddenServiceDir /var/lib/tor/bitcoin-service/ + HiddenServiceDir /var/lib/tor/vincoin-service/ HiddenServicePort 8333 127.0.0.1:8334 The directory can be different of course, but virtual port numbers should be equal to -your bitcoind's P2P listen port (8333 by default), and target addresses and ports +your vincoind's P2P listen port (8333 by default), and target addresses and ports should be equal to binding address and port for inbound Tor connections (127.0.0.1:8334 by default). - -externalip=X You can tell bitcoin about its publicly reachable addresses using + -externalip=X You can tell vincoin about its publicly reachable addresses using this option, and this can be an onion address. Given the above configuration, you can find your onion address in - /var/lib/tor/bitcoin-service/hostname. For connections + /var/lib/tor/vincoin-service/hostname. For connections coming from unroutable addresses (such as 127.0.0.1, where the Tor proxy typically runs), onion addresses are given preference for your node to advertise itself with. @@ -187,29 +187,29 @@ should be equal to binding address and port for inbound Tor connections (127.0.0 In a typical situation, where you're only reachable via Tor, this should suffice: - ./bitcoind -proxy=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -listen + ./vincoind -proxy=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -listen (obviously, replace the .onion address with your own). It should be noted that you still listen on all devices and another node could establish a clearnet connection, when knowing your address. To mitigate this, additionally bind the address of your Tor proxy: - ./bitcoind ... -bind=127.0.0.1 + ./vincoind ... -bind=127.0.0.1 If you don't care too much about hiding your node, and want to be reachable on IPv4 as well, use `discover` instead: - ./bitcoind ... -discover + ./vincoind ... -discover and open port 8333 on your firewall (or use port mapping, i.e., `-upnp` or `-natpmp`). If you only want to use Tor to reach .onion addresses, but not use it as a proxy for normal IPv4/IPv6 communication, use: - ./bitcoind -onion=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -discover + ./vincoind -onion=127.0.0.1:9050 -externalip=7zvj7a2imdgkdbg4f2dryd5rgtrn7upivr5eeij4cicjh65pooxeshid.onion -discover ## 4. Privacy recommendations -- Do not add anything but Bitcoin Core ports to the onion service created in section 3. +- Do not add anything but Vincoin Core ports to the onion service created in section 3. If you run a web service too, create a new onion service for that. Otherwise it is trivial to link them, which may reduce privacy. Onion services created automatically (as in section 2) always have only one port diff --git a/doc/tracing.md b/doc/tracing.md index 0e3414205abe3..969b58d633f5c 100644 --- a/doc/tracing.md +++ b/doc/tracing.md @@ -1,6 +1,6 @@ -# User-space, Statically Defined Tracing (USDT) for Bitcoin Core +# User-space, Statically Defined Tracing (USDT) for Vincoin Core -Bitcoin Core includes statically defined tracepoints to allow for more +Vincoin Core includes statically defined tracepoints to allow for more observability during development, debugging, code review, and production usage. These tracepoints make it possible to keep track of custom statistics and enable detailed monitoring of otherwise hidden internals. They have @@ -11,7 +11,7 @@ eBPF and USDT Overview ====================== ┌──────────────────┐ ┌──────────────┐ - │ tracing script │ │ bitcoind │ + │ tracing script │ │ vincoind │ │==================│ 2. │==============│ │ eBPF │ tracing │ hooks │ │ │ code │ logic │ into┌─┤►tracepoint 1─┼───┐ 3. @@ -112,7 +112,7 @@ Arguments passed: The following tracepoints cover the in-memory UTXO cache. UTXOs are, for example, added to and removed (spent) from the cache when we connect a new block. -**Note**: Bitcoin Core uses temporary clones of the _main_ UTXO cache +**Note**: Vincoin Core uses temporary clones of the _main_ UTXO cache (`chainstate.CoinsTip()`). For example, the RPCs `generateblock` and `getblocktemplate` call `TestBlockValidity()`, which applies the UTXO set changes to a temporary cache. Similarly, mempool consistency checks, which are @@ -263,7 +263,7 @@ Arguments passed: 1. Transaction ID (hash) as `pointer to unsigned chars` (i.e. 32 bytes in little-endian) 2. Reject reason as `pointer to C-style String` (max. length 118 characters) -## Adding tracepoints to Bitcoin Core +## Adding tracepoints to Vincoin Core To add a new tracepoint, `#include ` in the compilation unit where the tracepoint is inserted. Use one of the `TRACEx` macros listed below @@ -358,31 +358,31 @@ maximum expected string size if known. ## Listing available tracepoints -Multiple tools can list the available tracepoints in a `bitcoind` binary with +Multiple tools can list the available tracepoints in a `vincoind` binary with USDT support. ### GDB - GNU Project Debugger -To list probes in Bitcoin Core, use `info probes` in `gdb`: +To list probes in Vincoin Core, use `info probes` in `gdb`: ``` -$ gdb ./src/bitcoind +$ gdb ./src/vincoind … (gdb) info probes Type Provider Name Where Semaphore Object -stap net inbound_message 0x000000000014419e /src/bitcoind -stap net outbound_message 0x0000000000107c05 /src/bitcoind -stap validation block_connected 0x00000000002fb10c /src/bitcoind +stap net inbound_message 0x000000000014419e /src/vincoind +stap net outbound_message 0x0000000000107c05 /src/vincoind +stap validation block_connected 0x00000000002fb10c /src/vincoind … ``` ### With `readelf` -The `readelf` tool can be used to display the USDT tracepoints in Bitcoin Core. +The `readelf` tool can be used to display the USDT tracepoints in Vincoin Core. Look for the notes with the description `NT_STAPSDT`. ``` -$ readelf -n ./src/bitcoind | grep NT_STAPSDT -A 4 -B 2 +$ readelf -n ./src/vincoind | grep NT_STAPSDT -A 4 -B 2 Displaying notes found in: .note.stapsdt Owner Data size Description stapsdt 0x0000005d NT_STAPSDT (SystemTap probe descriptors) @@ -406,7 +406,7 @@ between distributions. For example, on [ubuntu binary]: https://github.com/iovisor/bcc/blob/master/INSTALL.md#ubuntu---binary ``` -$ tplist -l ./src/bitcoind -v +$ tplist -l ./src/vincoind -v b'net':b'outbound_message' [sema 0x0] 1 location(s) 6 argument(s) diff --git a/doc/translation_process.md b/doc/translation_process.md index e5ed7f4e0ae73..753c87c12511d 100644 --- a/doc/translation_process.md +++ b/doc/translation_process.md @@ -1,22 +1,22 @@ Translations ============ -The Bitcoin-Core project has been designed to support multiple localisations. This makes adding new phrases, and completely new languages easily achievable. For managing all application translations, Bitcoin-Core makes use of the Transifex online translation management tool. +The Vincoin-Core project has been designed to support multiple localisations. This makes adding new phrases, and completely new languages easily achievable. For managing all application translations, Vincoin-Core makes use of the Transifex online translation management tool. ### Helping to translate (using Transifex) Transifex is setup to monitor the GitHub repo for updates, and when code containing new translations is found, Transifex will process any changes. It may take several hours after a pull-request has been merged, to appear in the Transifex web interface. -Multiple language support is critical in assisting Bitcoin’s global adoption, and growth. One of Bitcoin’s greatest strengths is cross-border money transfers, any help making that easier is greatly appreciated. +Multiple language support is critical in assisting Vincoin’s global adoption, and growth. One of Vincoin’s greatest strengths is cross-border money transfers, any help making that easier is greatly appreciated. -See the [Transifex Bitcoin project](https://www.transifex.com/bitcoin/bitcoin/) to assist in translations. You should also join the translation mailing list for announcements - see details below. +See the [Transifex Vincoin project](https://www.transifex.com/vincoin/vincoin/) to assist in translations. You should also join the translation mailing list for announcements - see details below. ### Writing code with translations We use automated scripts to help extract translations in both Qt, and non-Qt source files. It is rarely necessary to manually edit the files in `src/qt/locale/`. The translation source files must adhere to the following format: -`bitcoin_xx_YY.ts or bitcoin_xx.ts` +`vincoin_xx_YY.ts or vincoin_xx.ts` -`src/qt/locale/bitcoin_en.ts` is treated in a special way. It is used as the source for all other translations. Whenever a string in the source code is changed, this file must be updated to reflect those changes. A custom script is used to extract strings from the non-Qt parts. This script makes use of `gettext`, so make sure that utility is installed (ie, `apt-get install gettext` on Ubuntu/Debian). Once this has been updated, `lupdate` (included in the Qt SDK) is used to update `bitcoin_en.ts`. +`src/qt/locale/vincoin_en.ts` is treated in a special way. It is used as the source for all other translations. Whenever a string in the source code is changed, this file must be updated to reflect those changes. A custom script is used to extract strings from the non-Qt parts. This script makes use of `gettext`, so make sure that utility is installed (ie, `apt-get install gettext` on Ubuntu/Debian). Once this has been updated, `lupdate` (included in the Qt SDK) is used to update `vincoin_en.ts`. -To automatically regenerate the `bitcoin_en.ts` file, run the following commands: +To automatically regenerate the `vincoin_en.ts` file, run the following commands: ```sh cd src/ make translate @@ -34,26 +34,26 @@ When an updated source file is merged into the GitHub repo, Transifex will autom To create the pull-request, use the following commands: ``` -git add src/qt/bitcoinstrings.cpp src/qt/locale/bitcoin_en.ts +git add src/qt/vincoinstrings.cpp src/qt/locale/vincoin_en.ts git commit ``` ### Creating a Transifex account Visit the [Transifex Signup](https://www.transifex.com/signup/) page to create an account. Take note of your username and password, as they will be required to configure the command-line tool. -You can find the Bitcoin translation project at [https://www.transifex.com/bitcoin/bitcoin/](https://www.transifex.com/bitcoin/bitcoin/). +You can find the Vincoin translation project at [https://www.transifex.com/vincoin/vincoin/](https://www.transifex.com/vincoin/vincoin/). ### Installing the Transifex client command-line tool The client is used to fetch updated translations. Please check installation instructions and any other details at https://developers.transifex.com/docs/cli. -The Transifex Bitcoin project config file is included as part of the repo. It can be found at `.tx/config`, however you shouldn’t need to change anything. +The Transifex Vincoin project config file is included as part of the repo. It can be found at `.tx/config`, however you shouldn’t need to change anything. ### Synchronising translations -To assist in updating translations, a helper script is available in the [maintainer-tools repo](https://github.com/bitcoin-core/bitcoin-maintainer-tools). To use it and commit the result, simply do: +To assist in updating translations, a helper script is available in the [maintainer-tools repo](https://github.com/vincoin-core/vincoin-maintainer-tools). To use it and commit the result, simply do: ``` -python3 ../bitcoin-maintainer-tools/update-translations.py +python3 ../vincoin-maintainer-tools/update-translations.py git commit -a ``` @@ -62,7 +62,7 @@ git commit -a ### Handling Plurals (in source files) When new plurals are added to the source file, it's important to do the following steps: -1. Open `bitcoin_en.ts` in Qt Linguist (included in the Qt SDK) +1. Open `vincoin_en.ts` in Qt Linguist (included in the Qt SDK) 2. Search for `%n`, which will take you to the parts in the translation that use plurals 3. Look for empty `English Translation (Singular)` and `English Translation (Plural)` fields 4. Add the appropriate strings for the singular and plural form of the base string @@ -71,11 +71,11 @@ When new plurals are added to the source file, it's important to do the followin 7. Save the source file ### Translating a new language -To create a new language template, you will need to edit the languages manifest file `src/qt/bitcoin_locale.qrc` and add a new entry. Below is an example of the English language entry. +To create a new language template, you will need to edit the languages manifest file `src/qt/vincoin_locale.qrc` and add a new entry. Below is an example of the English language entry. ```xml - locale/bitcoin_en.qm + locale/vincoin_en.qm ... ``` @@ -84,4 +84,4 @@ To create a new language template, you will need to edit the languages manifest ### Questions and general assistance -If you are a translator, you should also subscribe to the mailing list, https://groups.google.com/forum/#!forum/bitcoin-translators. Announcements will be posted during application pre-releases to notify translators to check for updates. +If you are a translator, you should also subscribe to the mailing list, https://groups.google.com/forum/#!forum/vincoin-translators. Announcements will be posted during application pre-releases to notify translators to check for updates. diff --git a/doc/translation_strings_policy.md b/doc/translation_strings_policy.md index 1931302ddafdb..07d053ef225eb 100644 --- a/doc/translation_strings_policy.md +++ b/doc/translation_strings_policy.md @@ -1,7 +1,7 @@ Translation Strings Policy =========================== -This document provides guidelines for internationalization of the Bitcoin Core software. +This document provides guidelines for internationalization of the Vincoin Core software. How to translate? ------------------ @@ -76,10 +76,10 @@ In Qt code, use tr's third argument for optional plurality. For example: This adds ``s to the respective `.ts` file, which can be translated separately depending on the language. In English, this is simply: - %n active connection(s) to Bitcoin network + %n active connection(s) to Vincoin network - %n active connection to Bitcoin network - %n active connections to Bitcoin network + %n active connection to Vincoin network + %n active connections to Vincoin network @@ -97,4 +97,4 @@ The second example reduces the number of pluralized words that translators have During a string freeze (often before a major release), no translation strings are to be added, modified or removed. -This can be checked by executing `make translate` in the `src` directory, then verifying that `bitcoin_en.ts` remains unchanged. +This can be checked by executing `make translate` in the `src` directory, then verifying that `vincoin_en.ts` remains unchanged. diff --git a/doc/vincoin-conf.md b/doc/vincoin-conf.md index 1ebfb4c1de944..f9e0e2fc475cd 100644 --- a/doc/vincoin-conf.md +++ b/doc/vincoin-conf.md @@ -1,10 +1,10 @@ -# `bitcoin.conf` Configuration File +# `vincoin.conf` Configuration File -The configuration file is used by `bitcoind`, `bitcoin-qt` and `bitcoin-cli`. +The configuration file is used by `vincoind`, `vincoin-qt` and `vincoin-cli`. All command-line options (except for `-?`, `-help`, `-version` and `-conf`) may be specified in a configuration file, and all configuration file options (except for `includeconf`) may also be specified on the command line. Command-line options override values set in the configuration file and configuration file options override values set in the GUI. -Changes to the configuration file while `bitcoind` or `bitcoin-qt` is running only take effect after restarting. +Changes to the configuration file while `vincoind` or `vincoin-qt` is running only take effect after restarting. Users should never make any configuration changes which they do not understand. Furthermore, users should always be wary of accepting any configuration changes provided to them by another source (even if they believe that they do understand them). @@ -51,24 +51,24 @@ rpcport=4000 ## Configuration File Path -The configuration file is not automatically created; you can create it using your favorite text editor. By default, the configuration file name is `bitcoin.conf` and it is located in the Bitcoin data directory, but both the Bitcoin data directory and the configuration file path may be changed using the `-datadir` and `-conf` command-line options. +The configuration file is not automatically created; you can create it using your favorite text editor. By default, the configuration file name is `vincoin.conf` and it is located in the Vincoin data directory, but both the Vincoin data directory and the configuration file path may be changed using the `-datadir` and `-conf` command-line options. -The `includeconf=` option in the `bitcoin.conf` file can be used to include additional configuration files. +The `includeconf=` option in the `vincoin.conf` file can be used to include additional configuration files. ### Default configuration file locations Operating System | Data Directory | Example Path -- | -- | -- -Windows | `%APPDATA%\Bitcoin\` | `C:\Users\username\AppData\Roaming\Bitcoin\bitcoin.conf` -Linux | `$HOME/.bitcoin/` | `/home/username/.bitcoin/bitcoin.conf` -macOS | `$HOME/Library/Application Support/Bitcoin/` | `/Users/username/Library/Application Support/Bitcoin/bitcoin.conf` +Windows | `%APPDATA%\Vincoin\` | `C:\Users\username\AppData\Roaming\Vincoin\vincoin.conf` +Linux | `$HOME/.vincoin/` | `/home/username/.vincoin/vincoin.conf` +macOS | `$HOME/Library/Application Support/Vincoin/` | `/Users/username/Library/Application Support/Vincoin/vincoin.conf` -An example configuration file can be generated by [contrib/devtools/gen-bitcoin-conf.sh](../contrib/devtools/gen-bitcoin-conf.sh). +An example configuration file can be generated by [contrib/devtools/gen-vincoin-conf.sh](../contrib/devtools/gen-vincoin-conf.sh). Run this script after compiling to generate an up-to-date configuration file. -The output is placed under `share/examples/bitcoin.conf`. +The output is placed under `share/examples/vincoin.conf`. To use the generated configuration file, copy the example file into your data directory and edit it there, like so: ``` # example copy command for linux user -cp share/examples/bitcoin.conf ~/.bitcoin +cp share/examples/vincoin.conf ~/.vincoin ``` diff --git a/doc/zmq.md b/doc/zmq.md index 07c340fb99e8f..976addb316bed 100644 --- a/doc/zmq.md +++ b/doc/zmq.md @@ -5,8 +5,8 @@ connections, inter-process communication, and shared-memory, providing various message-oriented semantics such as publish/subscribe, request/reply, and push/pull. -The Bitcoin Core daemon can be configured to act as a trusted "border -router", implementing the bitcoin wire protocol and relay, making +The Vincoin Core daemon can be configured to act as a trusted "border +router", implementing the vincoin wire protocol and relay, making consensus decisions, maintaining the local blockchain database, broadcasting locally generated transactions into the network, and providing a queryable RPC interface to interact on a polled basis for @@ -33,7 +33,7 @@ buffering or reassembly. ## Prerequisites -The ZeroMQ feature in Bitcoin Core requires the ZeroMQ API >= 4.0.0 +The ZeroMQ feature in Vincoin Core requires the ZeroMQ API >= 4.0.0 [libzmq](https://github.com/zeromq/libzmq/releases). For version information, see [dependencies.md](dependencies.md). Typically, it is packaged by distributions as something like @@ -48,7 +48,7 @@ operation. By default, the ZeroMQ feature is automatically compiled in if the necessary prerequisites are found. To disable, use --disable-zmq -during the *configure* step of building bitcoind: +during the *configure* step of building vincoind: $ ./configure --disable-zmq (other options) @@ -82,16 +82,16 @@ The high water mark value must be an integer greater than or equal to 0. For instance: - $ bitcoind -zmqpubhashtx=tcp://127.0.0.1:28332 \ + $ vincoind -zmqpubhashtx=tcp://127.0.0.1:28332 \ -zmqpubhashtx=tcp://192.168.1.2:28332 \ -zmqpubhashblock="tcp://[::1]:28333" \ - -zmqpubrawtx=ipc:///tmp/bitcoind.tx.raw \ + -zmqpubrawtx=ipc:///tmp/vincoind.tx.raw \ -zmqpubhashtxhwm=10000 Each PUB notification has a topic and body, where the header corresponds to the notification type. For instance, for the notification `-zmqpubhashtx` the topic is `hashtx` (no null -terminator). These options can also be provided in bitcoin.conf. +terminator). These options can also be provided in vincoin.conf. The topics are: @@ -150,9 +150,9 @@ hosts as well. If needed, this option has to be set on the client side too. ## Remarks -From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB +From the perspective of vincoind, the ZeroMQ socket is write-only; PUB sockets don't even have a read function. Thus, there is no state -introduced into bitcoind directly. Furthermore, no information is +introduced into vincoind directly. Furthermore, no information is broadcast that wasn't already received from the public P2P network. No authentication or authorization is done on connecting clients; it @@ -169,7 +169,7 @@ disconnections. There are several possibilities that ZMQ notification can get lost during transmission depending on the communication type you are -using. Bitcoind appends an up-counting sequence number to each +using. Vincoind appends an up-counting sequence number to each notification which allows listeners to detect lost notifications. The `sequence` topic refers specifically to the mempool sequence diff --git a/libvincoinconsensus.pc.in b/libvincoinconsensus.pc.in index 1ceab280bb114..c047aae809593 100644 --- a/libvincoinconsensus.pc.in +++ b/libvincoinconsensus.pc.in @@ -4,7 +4,7 @@ libdir=@libdir@ includedir=@includedir@ Name: @PACKAGE_NAME@ consensus library -Description: Library for the Bitcoin consensus protocol. +Description: Library for the Vincoin consensus protocol. Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lbitcoinconsensus +Libs: -L${libdir} -lvincoinconsensus Cflags: -I${includedir} diff --git a/share/examples/vincoin.conf b/share/examples/vincoin.conf index 5bee4bf92e73c..4866186fa63cc 100644 --- a/share/examples/vincoin.conf +++ b/share/examples/vincoin.conf @@ -1 +1 @@ -# This is a placeholder file. Please follow the instructions in `contrib/devtools/README.md` to generate a bitcoin.conf file. +# This is a placeholder file. Please follow the instructions in `contrib/devtools/README.md` to generate a vincoin.conf file. diff --git a/share/genbuild.sh b/share/genbuild.sh index ecc96160e6901..3f6b098be3d09 100755 --- a/share/genbuild.sh +++ b/share/genbuild.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2012-2021 The Bitcoin Core developers +# Copyright (c) 2012-2021 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/share/pixmaps/vincoin128.xpm b/share/pixmaps/vincoin128.xpm index d8e41e9ea4413..453295954916d 100644 --- a/share/pixmaps/vincoin128.xpm +++ b/share/pixmaps/vincoin128.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin___[] = { +static char *vincoin___[] = { /* columns rows colors chars-per-pixel */ "128 128 250 2", " c #845415", diff --git a/share/pixmaps/vincoin16.xpm b/share/pixmaps/vincoin16.xpm index 40a0624ac72a6..df42a5b676427 100644 --- a/share/pixmaps/vincoin16.xpm +++ b/share/pixmaps/vincoin16.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin__[] = { +static char *vincoin__[] = { /* columns rows colors chars-per-pixel */ "16 16 159 2", " c #CA7C1E", diff --git a/share/pixmaps/vincoin256.xpm b/share/pixmaps/vincoin256.xpm index 87bb35cdadd6b..987fdb4a68213 100644 --- a/share/pixmaps/vincoin256.xpm +++ b/share/pixmaps/vincoin256.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin___[] = { +static char *vincoin___[] = { /* columns rows colors chars-per-pixel */ "256 256 203 2", " c #BE741B", diff --git a/share/pixmaps/vincoin32.xpm b/share/pixmaps/vincoin32.xpm index bffedd4c68e6e..92f18ff017df5 100644 --- a/share/pixmaps/vincoin32.xpm +++ b/share/pixmaps/vincoin32.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin__[] = { +static char *vincoin__[] = { /* columns rows colors chars-per-pixel */ "32 32 102 2", " c #CC7D1D", diff --git a/share/pixmaps/vincoin64.xpm b/share/pixmaps/vincoin64.xpm index 851829d41c5ed..757d06972f4d8 100644 --- a/share/pixmaps/vincoin64.xpm +++ b/share/pixmaps/vincoin64.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *bitcoin__[] = { +static char *vincoin__[] = { /* columns rows colors chars-per-pixel */ "64 64 172 2", " c #8F6319", diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in index b4e6f6a150dc5..df63793205124 100644 --- a/share/qt/Info.plist.in +++ b/share/qt/Info.plist.in @@ -11,7 +11,7 @@ CFBundleIconFile - bitcoin.icns + vincoin.icns CFBundlePackageType APPL @@ -34,16 +34,16 @@ ???? CFBundleExecutable - Bitcoin-Qt + Vincoin-Qt CFBundleName - Bitcoin-Qt + Vincoin-Qt LSHasLocalizedDisplayName CFBundleIdentifier - org.bitcoinfoundation.Bitcoin-Qt + org.vincoinfoundation.Vincoin-Qt CFBundleURLTypes @@ -51,10 +51,10 @@ CFBundleTypeRole Editor CFBundleURLName - org.bitcoin.BitcoinPayment + org.vincoin.VincoinPayment CFBundleURLSchemes - bitcoin + vincoin diff --git a/share/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py index 39acec89423bb..bd4162b074e62 100755 --- a/share/qt/extract_strings_qt.py +++ b/share/qt/extract_strings_qt.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) 2012-2021 The Bitcoin Core developers +# Copyright (c) 2012-2021 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. ''' @@ -11,7 +11,7 @@ import os import sys -OUT_CPP="qt/bitcoinstrings.cpp" +OUT_CPP="qt/vincoinstrings.cpp" EMPTY=['""'] def parse_po(text): @@ -75,11 +75,11 @@ def parse_po(text): #define UNUSED #endif """) -f.write('static const char UNUSED *bitcoin_strings[] = {\n') -f.write('QT_TRANSLATE_NOOP("bitcoin-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS'),)) +f.write('static const char UNUSED *vincoin_strings[] = {\n') +f.write('QT_TRANSLATE_NOOP("vincoin-core", "%s"),\n' % (os.getenv('COPYRIGHT_HOLDERS'),)) messages.sort(key=operator.itemgetter(0)) for (msgid, msgstr) in messages: if msgid != EMPTY: - f.write('QT_TRANSLATE_NOOP("bitcoin-core", %s),\n' % ('\n'.join(msgid))) + f.write('QT_TRANSLATE_NOOP("vincoin-core", %s),\n' % ('\n'.join(msgid))) f.write('};\n') f.close() diff --git a/share/rpcauth/rpcauth.py b/share/rpcauth/rpcauth.py index cc7bba1f8b19d..64a7ac69f56f6 100755 --- a/share/rpcauth/rpcauth.py +++ b/share/rpcauth/rpcauth.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) 2015-2021 The Bitcoin Core developers +# Copyright (c) 2015-2021 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -35,7 +35,7 @@ def main(): salt = generate_salt(16) password_hmac = password_to_hmac(salt, args.password) - print('String to be appended to bitcoin.conf:') + print('String to be appended to vincoin.conf:') print(f'rpcauth={args.username}:{salt}${password_hmac}') print(f'Your password:\n{args.password}') diff --git a/share/setup.nsi.in b/share/setup.nsi.in index 2ce798bd2d1d3..15a91c02a55f4 100644 --- a/share/setup.nsi.in +++ b/share/setup.nsi.in @@ -15,7 +15,7 @@ Unicode true !define URL @PACKAGE_URL@ # MUI Symbol Definitions -!define MUI_ICON "@abs_top_srcdir@/share/pixmaps/bitcoin.ico" +!define MUI_ICON "@abs_top_srcdir@/share/pixmaps/vincoin.ico" !define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_RIGHT @@ -52,7 +52,7 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English # Installer attributes -InstallDir $PROGRAMFILES64\Bitcoin +InstallDir $PROGRAMFILES64\Vincoin CRCCheck force XPStyle on BrandingText " " @@ -75,7 +75,7 @@ Section -Main SEC0000 File @abs_top_builddir@/release/@BITCOIN_GUI_NAME@@EXEEXT@ File /oname=COPYING.txt @abs_top_srcdir@/COPYING File /oname=readme.txt @abs_top_srcdir@/doc/README_windows.txt - File @abs_top_srcdir@/share/examples/bitcoin.conf + File @abs_top_srcdir@/share/examples/vincoin.conf SetOutPath $INSTDIR\share\rpcauth File @abs_top_srcdir@/share/rpcauth/*.* SetOutPath $INSTDIR\daemon @@ -102,12 +102,12 @@ Section -post SEC0001 WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "@PACKAGE_VERSION@" WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" Publisher "${COMPANY}" WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" URLInfoAbout "${URL}" - WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\bitcoin-qt.exe + WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayIcon $INSTDIR\vincoin-qt.exe WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" UninstallString $INSTDIR\uninstall.exe WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1 WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1 WriteRegStr HKCR "@PACKAGE_TARNAME@" "URL Protocol" "" - WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Bitcoin" + WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Vincoin" WriteRegStr HKCR "@PACKAGE_TARNAME@\DefaultIcon" "" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ WriteRegStr HKCR "@PACKAGE_TARNAME@\shell\open\command" "" '"$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "%1"' SectionEnd @@ -130,7 +130,7 @@ Section /o -un.Main UNSEC0000 Delete /REBOOTOK $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@ Delete /REBOOTOK $INSTDIR\COPYING.txt Delete /REBOOTOK $INSTDIR\readme.txt - Delete /REBOOTOK $INSTDIR\bitcoin.conf + Delete /REBOOTOK $INSTDIR\vincoin.conf RMDir /r /REBOOTOK $INSTDIR\share RMDir /r /REBOOTOK $INSTDIR\daemon DeleteRegValue HKCU "${REGKEY}\Components" Main @@ -141,7 +141,7 @@ Section -un.post UNSEC0001 Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@PACKAGE_NAME@ (testnet, 64-bit).lnk" - Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk" + Delete /REBOOTOK "$SMSTARTUP\Vincoin.lnk" Delete /REBOOTOK $INSTDIR\uninstall.exe Delete /REBOOTOK $INSTDIR\debug.log Delete /REBOOTOK $INSTDIR\db.log diff --git a/src/.clang-tidy b/src/.clang-tidy index bfaa5ab8e7b09..a9b13c45bce02 100644 --- a/src/.clang-tidy +++ b/src/.clang-tidy @@ -1,6 +1,6 @@ Checks: ' -*, -bitcoin-*, +vincoin-*, bugprone-argument-comment, bugprone-string-constructor, bugprone-use-after-move, diff --git a/src/Makefile.am b/src/Makefile.am index 3e8870c828668..e716280e3c821 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -26,48 +26,48 @@ BENCHMARKS = BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) -LIBBITCOIN_NODE=libbitcoin_node.a -LIBBITCOIN_COMMON=libbitcoin_common.a -LIBBITCOIN_CONSENSUS=libbitcoin_consensus.a -LIBBITCOIN_CLI=libbitcoin_cli.a -LIBBITCOIN_UTIL=libbitcoin_util.a -LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.la -LIBBITCOINQT=qt/libbitcoinqt.a +LIBBITCOIN_NODE=libvincoin_node.a +LIBBITCOIN_COMMON=libvincoin_common.a +LIBBITCOIN_CONSENSUS=libvincoin_consensus.a +LIBBITCOIN_CLI=libvincoin_cli.a +LIBBITCOIN_UTIL=libvincoin_util.a +LIBBITCOIN_CRYPTO_BASE=crypto/libvincoin_crypto_base.la +LIBBITCOINQT=qt/libvincoinqt.a LIBSECP256K1=secp256k1/libsecp256k1.la if ENABLE_ZMQ -LIBBITCOIN_ZMQ=libbitcoin_zmq.a +LIBBITCOIN_ZMQ=libvincoin_zmq.a endif if BUILD_BITCOIN_LIBS -LIBBITCOINCONSENSUS=libbitcoinconsensus.la +LIBBITCOINCONSENSUS=libvincoinconsensus.la endif if BUILD_BITCOIN_KERNEL_LIB -LIBBITCOINKERNEL=libbitcoinkernel.la +LIBBITCOINKERNEL=libvincoinkernel.la endif if ENABLE_WALLET -LIBBITCOIN_WALLET=libbitcoin_wallet.a -LIBBITCOIN_WALLET_TOOL=libbitcoin_wallet_tool.a +LIBBITCOIN_WALLET=libvincoin_wallet.a +LIBBITCOIN_WALLET_TOOL=libvincoin_wallet_tool.a endif LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE) if USE_ASM -LIBBITCOIN_CRYPTO_SSE4 = crypto/libbitcoin_crypto_sse4.la +LIBBITCOIN_CRYPTO_SSE4 = crypto/libvincoin_crypto_sse4.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE4) endif if ENABLE_SSE41 -LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la +LIBBITCOIN_CRYPTO_SSE41 = crypto/libvincoin_crypto_sse41.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41) endif if ENABLE_AVX2 -LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.la +LIBBITCOIN_CRYPTO_AVX2 = crypto/libvincoin_crypto_avx2.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_AVX2) endif if ENABLE_X86_SHANI -LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.la +LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libvincoin_crypto_x86_shani.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_X86_SHANI) endif if ENABLE_ARM_SHANI -LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.la +LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libvincoin_crypto_arm_shani.la LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI) endif noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO) @@ -89,37 +89,37 @@ EXTRA_LIBRARIES += \ $(LIBBITCOIN_ZMQ) if BUILD_BITCOIND - bin_PROGRAMS += bitcoind + bin_PROGRAMS += vincoind endif if BUILD_BITCOIN_NODE - bin_PROGRAMS += bitcoin-node + bin_PROGRAMS += vincoin-node endif if BUILD_BITCOIN_CLI - bin_PROGRAMS += bitcoin-cli + bin_PROGRAMS += vincoin-cli endif if BUILD_BITCOIN_TX - bin_PROGRAMS += bitcoin-tx + bin_PROGRAMS += vincoin-tx endif if ENABLE_WALLET if BUILD_BITCOIN_WALLET - bin_PROGRAMS += bitcoin-wallet + bin_PROGRAMS += vincoin-wallet endif endif if BUILD_BITCOIN_UTIL - bin_PROGRAMS += bitcoin-util + bin_PROGRAMS += vincoin-util endif if BUILD_BITCOIN_CHAINSTATE - bin_PROGRAMS += bitcoin-chainstate + bin_PROGRAMS += vincoin-chainstate endif .PHONY: FORCE check-symbols check-security -# bitcoin core # +# vincoin core # BITCOIN_CORE_H = \ addresstype.h \ addrdb.h \ @@ -377,12 +377,12 @@ obj/build.h: FORCE @$(MKDIR_P) $(builddir)/obj $(AM_V_GEN) $(top_srcdir)/share/genbuild.sh "$(abs_top_builddir)/src/obj/build.h" \ "$(abs_top_srcdir)" -libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h +libvincoin_util_a-clientversion.$(OBJEXT): obj/build.h # node # -libbitcoin_node_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(LEVELDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(MINIUPNPC_CPPFLAGS) $(NATPMP_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -libbitcoin_node_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_node_a_SOURCES = \ +libvincoin_node_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(LEVELDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(MINIUPNPC_CPPFLAGS) $(NATPMP_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) +libvincoin_node_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_node_a_SOURCES = \ addrdb.cpp \ addrman.cpp \ banman.cpp \ @@ -476,19 +476,19 @@ libbitcoin_node_a_SOURCES = \ $(BITCOIN_CORE_H) if ENABLE_WALLET -libbitcoin_node_a_SOURCES += wallet/init.cpp -libbitcoin_node_a_CPPFLAGS += $(BDB_CPPFLAGS) +libvincoin_node_a_SOURCES += wallet/init.cpp +libvincoin_node_a_CPPFLAGS += $(BDB_CPPFLAGS) endif if !ENABLE_WALLET -libbitcoin_node_a_SOURCES += dummywallet.cpp +libvincoin_node_a_SOURCES += dummywallet.cpp endif # # zmq # if ENABLE_ZMQ -libbitcoin_zmq_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS) -libbitcoin_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_zmq_a_SOURCES = \ +libvincoin_zmq_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS) +libvincoin_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_zmq_a_SOURCES = \ zmq/zmqabstractnotifier.cpp \ zmq/zmqnotificationinterface.cpp \ zmq/zmqpublishnotifier.cpp \ @@ -498,9 +498,9 @@ endif # # wallet # -libbitcoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(BDB_CPPFLAGS) $(SQLITE_CFLAGS) -libbitcoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_wallet_a_SOURCES = \ +libvincoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(BDB_CPPFLAGS) $(SQLITE_CFLAGS) +libvincoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_wallet_a_SOURCES = \ wallet/coincontrol.cpp \ wallet/context.cpp \ wallet/crypter.cpp \ @@ -531,17 +531,17 @@ libbitcoin_wallet_a_SOURCES = \ $(BITCOIN_CORE_H) if USE_SQLITE -libbitcoin_wallet_a_SOURCES += wallet/sqlite.cpp +libvincoin_wallet_a_SOURCES += wallet/sqlite.cpp endif if USE_BDB -libbitcoin_wallet_a_SOURCES += wallet/bdb.cpp wallet/salvage.cpp +libvincoin_wallet_a_SOURCES += wallet/bdb.cpp wallet/salvage.cpp endif # # wallet tool # -libbitcoin_wallet_tool_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -libbitcoin_wallet_tool_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_wallet_tool_a_SOURCES = \ +libvincoin_wallet_tool_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) +libvincoin_wallet_tool_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_wallet_tool_a_SOURCES = \ wallet/wallettool.cpp \ $(BITCOIN_CORE_H) # @@ -551,16 +551,16 @@ libbitcoin_wallet_tool_a_SOURCES = \ # crypto_base contains the unspecialized (unoptimized) versions of our # crypto functions. Functions that require custom compiler flags and/or # runtime opt-in are omitted. -crypto_libbitcoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS) # Specify -static in both CXXFLAGS and LDFLAGS so libtool will only build a # static version of this library. We don't need a dynamic version, and a dynamic # version can't be used on windows anyway because the library doesn't currently # export DLL symbols. -crypto_libbitcoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_base_la_SOURCES = \ +crypto_libvincoin_crypto_base_la_SOURCES = \ crypto/aes.cpp \ crypto/aes.h \ crypto/chacha20.h \ @@ -591,54 +591,54 @@ crypto_libbitcoin_crypto_base_la_SOURCES = \ crypto/siphash.cpp \ crypto/siphash.h -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_sse4_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_sse4_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_sse4_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_sse4_la_SOURCES = crypto/sha256_sse4.cpp +crypto_libvincoin_crypto_sse4_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_sse4_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_sse4_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_sse4_la_SOURCES = crypto/sha256_sse4.cpp -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS) -crypto_libbitcoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41 -crypto_libbitcoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp - -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +crypto_libvincoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS) +crypto_libvincoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41 +crypto_libvincoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp + +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS) -crypto_libbitcoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2 -crypto_libbitcoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp - -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +crypto_libvincoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS) +crypto_libvincoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2 +crypto_libvincoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp + +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS) -crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI -crypto_libbitcoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp - -# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and +crypto_libvincoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS) +crypto_libvincoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI +crypto_libvincoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp + +# See explanation for -static in crypto_libvincoin_crypto_base_la's LDFLAGS and # CXXFLAGS above -crypto_libbitcoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS) -static -crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static -crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS) -crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS) -crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI -crypto_libbitcoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp +crypto_libvincoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS) -static +crypto_libvincoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static +crypto_libvincoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS) +crypto_libvincoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS) +crypto_libvincoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI +crypto_libvincoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp # # consensus # -libbitcoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_consensus_a_SOURCES = \ +libvincoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_consensus_a_SOURCES = \ arith_uint256.cpp \ arith_uint256.h \ consensus/amount.h \ @@ -656,7 +656,7 @@ libbitcoin_consensus_a_SOURCES = \ primitives/transaction.h \ pubkey.cpp \ pubkey.h \ - script/bitcoinconsensus.cpp \ + script/vincoinconsensus.cpp \ script/interpreter.cpp \ script/interpreter.h \ script/script.cpp \ @@ -673,9 +673,9 @@ libbitcoin_consensus_a_SOURCES = \ # # common # -libbitcoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -libbitcoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_common_a_SOURCES = \ +libvincoin_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) +libvincoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_common_a_SOURCES = \ addresstype.cpp \ base58.cpp \ bech32.cpp \ @@ -723,15 +723,15 @@ libbitcoin_common_a_SOURCES = \ $(BITCOIN_CORE_H) if USE_LIBEVENT -libbitcoin_common_a_CPPFLAGS += $(EVENT_CFLAGS) -libbitcoin_common_a_SOURCES += common/url.cpp +libvincoin_common_a_CPPFLAGS += $(EVENT_CFLAGS) +libvincoin_common_a_SOURCES += common/url.cpp endif # # util # -libbitcoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_util_a_SOURCES = \ +libvincoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_util_a_SOURCES = \ support/lockedpool.cpp \ chainparamsbase.cpp \ clientversion.cpp \ @@ -773,28 +773,28 @@ libbitcoin_util_a_SOURCES = \ # # cli # -libbitcoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -libbitcoin_cli_a_SOURCES = \ +libvincoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoin_cli_a_SOURCES = \ compat/stdin.h \ compat/stdin.cpp \ rpc/client.cpp \ $(BITCOIN_CORE_H) -nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h +nodist_libvincoin_util_a_SOURCES = $(srcdir)/obj/build.h # -# bitcoind & bitcoin-node binaries # -bitcoin_daemon_sources = bitcoind.cpp -bitcoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoind & vincoin-node binaries # +vincoin_daemon_sources = vincoind.cpp +vincoin_bin_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +vincoin_bin_cxxflags = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_bin_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_daemon_sources += bitcoind-res.rc +vincoin_daemon_sources += vincoind-res.rc endif -bitcoin_bin_ldadd = \ +vincoin_bin_ldadd = \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ @@ -806,51 +806,51 @@ bitcoin_bin_ldadd = \ $(LIBMEMENV) \ $(LIBSECP256K1) -bitcoin_bin_ldadd += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS) +vincoin_bin_ldadd += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS) $(SQLITE_LIBS) -bitcoind_SOURCES = $(bitcoin_daemon_sources) init/bitcoind.cpp -bitcoind_CPPFLAGS = $(bitcoin_bin_cppflags) -bitcoind_CXXFLAGS = $(bitcoin_bin_cxxflags) -bitcoind_LDFLAGS = $(bitcoin_bin_ldflags) -bitcoind_LDADD = $(LIBBITCOIN_NODE) $(bitcoin_bin_ldadd) +vincoind_SOURCES = $(vincoin_daemon_sources) init/vincoind.cpp +vincoind_CPPFLAGS = $(vincoin_bin_cppflags) +vincoind_CXXFLAGS = $(vincoin_bin_cxxflags) +vincoind_LDFLAGS = $(vincoin_bin_ldflags) +vincoind_LDADD = $(LIBBITCOIN_NODE) $(vincoin_bin_ldadd) -bitcoin_node_SOURCES = $(bitcoin_daemon_sources) init/bitcoin-node.cpp -bitcoin_node_CPPFLAGS = $(bitcoin_bin_cppflags) -bitcoin_node_CXXFLAGS = $(bitcoin_bin_cxxflags) -bitcoin_node_LDFLAGS = $(bitcoin_bin_ldflags) -bitcoin_node_LDADD = $(LIBBITCOIN_NODE) $(bitcoin_bin_ldadd) $(LIBBITCOIN_IPC) $(LIBMULTIPROCESS_LIBS) +vincoin_node_SOURCES = $(vincoin_daemon_sources) init/vincoin-node.cpp +vincoin_node_CPPFLAGS = $(vincoin_bin_cppflags) +vincoin_node_CXXFLAGS = $(vincoin_bin_cxxflags) +vincoin_node_LDFLAGS = $(vincoin_bin_ldflags) +vincoin_node_LDADD = $(LIBBITCOIN_NODE) $(vincoin_bin_ldadd) $(LIBBITCOIN_IPC) $(LIBMULTIPROCESS_LIBS) -# bitcoin-cli binary # -bitcoin_cli_SOURCES = bitcoin-cli.cpp -bitcoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) -bitcoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoin-cli binary # +vincoin_cli_SOURCES = vincoin-cli.cpp +vincoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) +vincoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_cli_SOURCES += bitcoin-cli-res.rc +vincoin_cli_SOURCES += vincoin-cli-res.rc endif -bitcoin_cli_LDADD = \ +vincoin_cli_LDADD = \ $(LIBBITCOIN_CLI) \ $(LIBUNIVALUE) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ $(LIBBITCOIN_CRYPTO) -bitcoin_cli_LDADD += $(EVENT_LIBS) +vincoin_cli_LDADD += $(EVENT_LIBS) # -# bitcoin-tx binary # -bitcoin_tx_SOURCES = bitcoin-tx.cpp -bitcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoin-tx binary # +vincoin_tx_SOURCES = vincoin-tx.cpp +vincoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +vincoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_tx_SOURCES += bitcoin-tx-res.rc +vincoin_tx_SOURCES += vincoin-tx-res.rc endif -bitcoin_tx_LDADD = \ +vincoin_tx_LDADD = \ $(LIBUNIVALUE) \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ @@ -859,13 +859,13 @@ bitcoin_tx_LDADD = \ $(LIBSECP256K1) # -# bitcoin-wallet binary # -bitcoin_wallet_SOURCES = bitcoin-wallet.cpp -bitcoin_wallet_SOURCES += init/bitcoin-wallet.cpp -bitcoin_wallet_CPPFLAGS = $(bitcoin_bin_cppflags) -bitcoin_wallet_CXXFLAGS = $(bitcoin_bin_cxxflags) -bitcoin_wallet_LDFLAGS = $(bitcoin_bin_ldflags) -bitcoin_wallet_LDADD = \ +# vincoin-wallet binary # +vincoin_wallet_SOURCES = vincoin-wallet.cpp +vincoin_wallet_SOURCES += init/vincoin-wallet.cpp +vincoin_wallet_CPPFLAGS = $(vincoin_bin_cppflags) +vincoin_wallet_CXXFLAGS = $(vincoin_bin_cxxflags) +vincoin_wallet_LDFLAGS = $(vincoin_bin_ldflags) +vincoin_wallet_LDADD = \ $(LIBBITCOIN_WALLET_TOOL) \ $(LIBBITCOIN_WALLET) \ $(LIBBITCOIN_COMMON) \ @@ -878,21 +878,21 @@ bitcoin_wallet_LDADD = \ $(SQLITE_LIBS) if TARGET_WINDOWS -bitcoin_wallet_SOURCES += bitcoin-wallet-res.rc +vincoin_wallet_SOURCES += vincoin-wallet-res.rc endif # -# bitcoin-util binary # -bitcoin_util_SOURCES = bitcoin-util.cpp -bitcoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -bitcoin_util_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_util_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +# vincoin-util binary # +vincoin_util_SOURCES = vincoin-util.cpp +vincoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +vincoin_util_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +vincoin_util_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) if TARGET_WINDOWS -bitcoin_util_SOURCES += bitcoin-util-res.rc +vincoin_util_SOURCES += vincoin-util-res.rc endif -bitcoin_util_LDADD = \ +vincoin_util_LDADD = \ $(LIBBITCOIN_COMMON) \ $(LIBBITCOIN_UTIL) \ $(LIBUNIVALUE) \ @@ -901,40 +901,40 @@ bitcoin_util_LDADD = \ $(LIBSECP256K1) # -# bitcoin-chainstate binary # -bitcoin_chainstate_SOURCES = bitcoin-chainstate.cpp -bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) -bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +# vincoin-chainstate binary # +vincoin_chainstate_SOURCES = vincoin-chainstate.cpp +vincoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) +vincoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS) $(LIBTOOL_APP_LDFLAGS) -static -bitcoin_chainstate_LDADD = $(LIBBITCOINKERNEL) +vincoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS) $(LIBTOOL_APP_LDFLAGS) -static +vincoin_chainstate_LDADD = $(LIBBITCOINKERNEL) # libtool is unable to calculate this indirect dependency, presumably because it's a subproject. -# libsecp256k1 only needs to be linked in when libbitcoinkernel is static. -bitcoin_chainstate_LDADD += $(LIBSECP256K1) +# libsecp256k1 only needs to be linked in when libvincoinkernel is static. +vincoin_chainstate_LDADD += $(LIBSECP256K1) # -# bitcoinkernel library # +# vincoinkernel library # if BUILD_BITCOIN_KERNEL_LIB lib_LTLIBRARIES += $(LIBBITCOINKERNEL) -libbitcoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS) -libbitcoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) -libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) +libvincoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS) +libvincoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) +libvincoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) -# libbitcoinkernel requires default symbol visibility, explicitly specify that +# libvincoinkernel requires default symbol visibility, explicitly specify that # here so that things still work even when user configures with # --enable-reduce-exports # # Note this is a quick hack that will be removed as we incrementally define what # to export from the library. -libbitcoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default +libvincoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default -# TODO: libbitcoinkernel is a work in progress consensus engine library, as more +# TODO: libvincoinkernel is a work in progress consensus engine library, as more # and more modules are decoupled from the consensus engine, this list will # shrink to only those which are absolutely necessary. -libbitcoinkernel_la_SOURCES = \ - kernel/bitcoinkernel.cpp \ +libvincoinkernel_la_SOURCES = \ + kernel/vincoinkernel.cpp \ arith_uint256.cpp \ chain.cpp \ clientversion.cpp \ @@ -1014,21 +1014,21 @@ libbitcoinkernel_la_SOURCES = \ # Required for obj/build.h to be generated first. # More details: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html -libbitcoinkernel_la-clientversion.l$(OBJEXT): obj/build.h +libvincoinkernel_la-clientversion.l$(OBJEXT): obj/build.h endif # BUILD_BITCOIN_KERNEL_LIB # -# bitcoinconsensus library # +# vincoinconsensus library # if BUILD_BITCOIN_LIBS lib_LTLIBRARIES += $(LIBBITCOINCONSENSUS) -include_HEADERS = script/bitcoinconsensus.h -libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(libbitcoin_consensus_a_SOURCES) +include_HEADERS = script/vincoinconsensus.h +libvincoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libvincoin_crypto_base_la_SOURCES) $(libvincoin_consensus_a_SOURCES) -libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) -libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1) -libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL -DDISABLE_OPTIMIZED_SHA256 -libbitcoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +libvincoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) +libvincoinconsensus_la_LIBADD = $(LIBSECP256K1) +libvincoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL -DDISABLE_OPTIMIZED_SHA256 +libvincoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) endif # @@ -1064,12 +1064,12 @@ CLEANFILES += obj/build.h EXTRA_DIST = $(CTAES_DIST) -config/bitcoin-config.h: config/stamp-h1 +config/vincoin-config.h: config/stamp-h1 @$(MAKE) -C $(top_builddir) $(subdir)/$(@) -config/stamp-h1: $(top_srcdir)/$(subdir)/config/bitcoin-config.h.in $(top_builddir)/config.status +config/stamp-h1: $(top_srcdir)/$(subdir)/config/vincoin-config.h.in $(top_builddir)/config.status $(AM_V_at)$(MAKE) -C $(top_builddir) $(subdir)/$(@) -$(top_srcdir)/$(subdir)/config/bitcoin-config.h.in: $(am__configure_deps) - $(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/bitcoin-config.h.in +$(top_srcdir)/$(subdir)/config/vincoin-config.h.in: $(am__configure_deps) + $(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/vincoin-config.h.in clean-local: -$(MAKE) -C secp256k1 clean @@ -1092,19 +1092,19 @@ if HARDEN $(AM_V_at) $(PYTHON) $(top_srcdir)/contrib/devtools/security-check.py $(bin_PROGRAMS) endif -libbitcoin_ipc_mpgen_input = \ +libvincoin_ipc_mpgen_input = \ ipc/capnp/echo.capnp \ ipc/capnp/init.capnp -EXTRA_DIST += $(libbitcoin_ipc_mpgen_input) +EXTRA_DIST += $(libvincoin_ipc_mpgen_input) %.capnp: # Explicitly list dependencies on generated headers as described in # https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually -ipc/capnp/libbitcoin_ipc_a-protocol.$(OBJEXT): $(libbitcoin_ipc_mpgen_input:=.h) +ipc/capnp/libvincoin_ipc_a-protocol.$(OBJEXT): $(libvincoin_ipc_mpgen_input:=.h) if BUILD_MULTIPROCESS -LIBBITCOIN_IPC=libbitcoin_ipc.a -libbitcoin_ipc_a_SOURCES = \ +LIBBITCOIN_IPC=libvincoin_ipc.a +libvincoin_ipc_a_SOURCES = \ ipc/capnp/common-types.h \ ipc/capnp/context.h \ ipc/capnp/init-types.h \ @@ -1116,20 +1116,20 @@ libbitcoin_ipc_a_SOURCES = \ ipc/process.cpp \ ipc/process.h \ ipc/protocol.h -libbitcoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_ipc_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) +libvincoin_ipc_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_ipc_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) include $(MPGEN_PREFIX)/include/mpgen.mk -libbitcoin_ipc_mpgen_output = \ - $(libbitcoin_ipc_mpgen_input:=.c++) \ - $(libbitcoin_ipc_mpgen_input:=.h) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-client.c++) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-server.c++) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-types.c++) \ - $(libbitcoin_ipc_mpgen_input:=.proxy-types.h) \ - $(libbitcoin_ipc_mpgen_input:=.proxy.h) -nodist_libbitcoin_ipc_a_SOURCES = $(libbitcoin_ipc_mpgen_output) -CLEANFILES += $(libbitcoin_ipc_mpgen_output) +libvincoin_ipc_mpgen_output = \ + $(libvincoin_ipc_mpgen_input:=.c++) \ + $(libvincoin_ipc_mpgen_input:=.h) \ + $(libvincoin_ipc_mpgen_input:=.proxy-client.c++) \ + $(libvincoin_ipc_mpgen_input:=.proxy-server.c++) \ + $(libvincoin_ipc_mpgen_input:=.proxy-types.c++) \ + $(libvincoin_ipc_mpgen_input:=.proxy-types.h) \ + $(libvincoin_ipc_mpgen_input:=.proxy.h) +nodist_libvincoin_ipc_a_SOURCES = $(libvincoin_ipc_mpgen_output) +CLEANFILES += $(libvincoin_ipc_mpgen_output) endif %.raw.h: %.raw diff --git a/src/Makefile.bench.include b/src/Makefile.bench.include index b24405ce19c75..194637f799620 100644 --- a/src/Makefile.bench.include +++ b/src/Makefile.bench.include @@ -1,23 +1,23 @@ -# Copyright (c) 2015-2016 The Bitcoin Core developers +# Copyright (c) 2015-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += bench/bench_bitcoin +bin_PROGRAMS += bench/bench_vincoin BENCH_SRCDIR = bench -BENCH_BINARY = bench/bench_bitcoin$(EXEEXT) +BENCH_BINARY = bench/bench_vincoin$(EXEEXT) RAW_BENCH_FILES = \ bench/data/block413567.raw GENERATED_BENCH_FILES = $(RAW_BENCH_FILES:.raw=.raw.h) -bench_bench_bitcoin_SOURCES = \ +bench_bench_vincoin_SOURCES = \ $(RAW_BENCH_FILES) \ bench/addrman.cpp \ bench/base58.cpp \ bench/bech32.cpp \ bench/bench.cpp \ bench/bench.h \ - bench/bench_bitcoin.cpp \ + bench/bench_vincoin.cpp \ bench/bip324_ecdh.cpp \ bench/block_assemble.cpp \ bench/ccoins_caching.cpp \ @@ -56,12 +56,12 @@ bench_bench_bitcoin_SOURCES = \ bench/verify_script.cpp \ bench/xor.cpp -nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_BENCH_FILES) +nodist_bench_bench_vincoin_SOURCES = $(GENERATED_BENCH_FILES) -bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/ -bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -bench_bench_bitcoin_LDADD = \ +bench_bench_vincoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/ +bench_bench_vincoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +bench_bench_vincoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +bench_bench_vincoin_LDADD = \ $(LIBTEST_UTIL) \ $(LIBBITCOIN_NODE) \ $(LIBBITCOIN_WALLET) \ @@ -79,18 +79,18 @@ bench_bench_bitcoin_LDADD = \ $(NATPMP_LIBS) if ENABLE_ZMQ -bench_bench_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +bench_bench_vincoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif if ENABLE_WALLET -bench_bench_bitcoin_SOURCES += bench/coin_selection.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_balance.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_create.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_loading.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_create_tx.cpp -bench_bench_bitcoin_SOURCES += bench/wallet_ismine.cpp +bench_bench_vincoin_SOURCES += bench/coin_selection.cpp +bench_bench_vincoin_SOURCES += bench/wallet_balance.cpp +bench_bench_vincoin_SOURCES += bench/wallet_create.cpp +bench_bench_vincoin_SOURCES += bench/wallet_loading.cpp +bench_bench_vincoin_SOURCES += bench/wallet_create_tx.cpp +bench_bench_vincoin_SOURCES += bench/wallet_ismine.cpp -bench_bench_bitcoin_LDADD += $(BDB_LIBS) $(SQLITE_LIBS) +bench_bench_vincoin_LDADD += $(BDB_LIBS) $(SQLITE_LIBS) endif CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES) @@ -99,10 +99,10 @@ CLEANFILES += $(CLEAN_BITCOIN_BENCH) bench/data.cpp: bench/data/block413567.raw.h -bitcoin_bench: $(BENCH_BINARY) +vincoin_bench: $(BENCH_BINARY) bench: $(BENCH_BINARY) FORCE $(BENCH_BINARY) -bitcoin_bench_clean : FORCE - rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_bitcoin_OBJECTS) $(BENCH_BINARY) +vincoin_bench_clean : FORCE + rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_vincoin_OBJECTS) $(BENCH_BINARY) diff --git a/src/Makefile.crc32c.include b/src/Makefile.crc32c.include index c4dd84991d277..dd54fa2a3e909 100644 --- a/src/Makefile.crc32c.include +++ b/src/Makefile.crc32c.include @@ -1,4 +1,4 @@ -# Copyright (c) 2019 The Bitcoin Core developers +# Copyright (c) 2019 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/Makefile.leveldb.include b/src/Makefile.leveldb.include index bf14fe206b926..70a92ee2c8372 100644 --- a/src/Makefile.leveldb.include +++ b/src/Makefile.leveldb.include @@ -1,4 +1,4 @@ -# Copyright (c) 2016 The Bitcoin Core developers +# Copyright (c) 2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include index c235c3c4da732..948ddddcc8137 100644 --- a/src/Makefile.qt.include +++ b/src/Makefile.qt.include @@ -1,16 +1,16 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += qt/bitcoin-qt +bin_PROGRAMS += qt/vincoin-qt if BUILD_BITCOIN_GUI - bin_PROGRAMS += bitcoin-gui + bin_PROGRAMS += vincoin-gui endif -EXTRA_LIBRARIES += qt/libbitcoinqt.a +EXTRA_LIBRARIES += qt/libvincoinqt.a -# bitcoin qt core # +# vincoin qt core # include Makefile.qt_locale.include QT_FORMS_UI = \ @@ -40,11 +40,11 @@ QT_MOC_CPP = \ qt/moc_askpassphrasedialog.cpp \ qt/moc_createwalletdialog.cpp \ qt/moc_bantablemodel.cpp \ - qt/moc_bitcoin.cpp \ - qt/moc_bitcoinaddressvalidator.cpp \ - qt/moc_bitcoinamountfield.cpp \ - qt/moc_bitcoingui.cpp \ - qt/moc_bitcoinunits.cpp \ + qt/moc_vincoin.cpp \ + qt/moc_vincoinaddressvalidator.cpp \ + qt/moc_vincoinamountfield.cpp \ + qt/moc_vincoingui.cpp \ + qt/moc_vincoinunits.cpp \ qt/moc_clientmodel.cpp \ qt/moc_coincontroldialog.cpp \ qt/moc_coincontroltreewidget.cpp \ @@ -95,26 +95,26 @@ BITCOIN_MM = \ qt/macos_appnap.mm QT_MOC = \ - qt/bitcoinamountfield.moc \ + qt/vincoinamountfield.moc \ qt/intro.moc \ qt/overviewpage.moc \ qt/rpcconsole.moc -QT_QRC_CPP = qt/qrc_bitcoin.cpp -QT_QRC = qt/bitcoin.qrc -QT_QRC_LOCALE_CPP = qt/qrc_bitcoin_locale.cpp -QT_QRC_LOCALE = qt/bitcoin_locale.qrc +QT_QRC_CPP = qt/qrc_vincoin.cpp +QT_QRC = qt/vincoin.qrc +QT_QRC_LOCALE_CPP = qt/qrc_vincoin_locale.cpp +QT_QRC_LOCALE = qt/vincoin_locale.qrc BITCOIN_QT_H = \ qt/addressbookpage.h \ qt/addresstablemodel.h \ qt/askpassphrasedialog.h \ qt/bantablemodel.h \ - qt/bitcoin.h \ - qt/bitcoinaddressvalidator.h \ - qt/bitcoinamountfield.h \ - qt/bitcoingui.h \ - qt/bitcoinunits.h \ + qt/vincoin.h \ + qt/vincoinaddressvalidator.h \ + qt/vincoinamountfield.h \ + qt/vincoingui.h \ + qt/vincoinunits.h \ qt/clientmodel.h \ qt/coincontroldialog.h \ qt/coincontroltreewidget.h \ @@ -174,9 +174,9 @@ QT_RES_FONTS = \ QT_RES_ICONS = \ qt/res/icons/add.png \ qt/res/icons/address-book.png \ - qt/res/icons/bitcoin.ico \ - qt/res/icons/bitcoin_testnet.ico \ - qt/res/icons/bitcoin.png \ + qt/res/icons/vincoin.ico \ + qt/res/icons/vincoin_testnet.ico \ + qt/res/icons/vincoin.png \ qt/res/icons/chevron.png \ qt/res/icons/clock1.png \ qt/res/icons/clock2.png \ @@ -221,11 +221,11 @@ QT_RES_ICONS = \ BITCOIN_QT_BASE_CPP = \ qt/bantablemodel.cpp \ - qt/bitcoin.cpp \ - qt/bitcoinaddressvalidator.cpp \ - qt/bitcoinamountfield.cpp \ - qt/bitcoingui.cpp \ - qt/bitcoinunits.cpp \ + qt/vincoin.cpp \ + qt/vincoinaddressvalidator.cpp \ + qt/vincoinamountfield.cpp \ + qt/vincoingui.cpp \ + qt/vincoinunits.cpp \ qt/clientmodel.cpp \ qt/csvmodelwriter.cpp \ qt/guiutil.cpp \ @@ -290,22 +290,22 @@ endif # ENABLE_WALLET QT_RES_ANIMATION = $(wildcard $(srcdir)/qt/res/animation/spinner-*.png) -BITCOIN_QT_RC = qt/res/bitcoin-qt-res.rc +BITCOIN_QT_RC = qt/res/vincoin-qt-res.rc BITCOIN_QT_INCLUDES = -DQT_NO_KEYWORDS -DQT_USE_QSTRINGBUILDER -qt_libbitcoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +qt_libvincoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QT_DBUS_INCLUDES) $(QR_CFLAGS) $(BOOST_CPPFLAGS) -qt_libbitcoinqt_a_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) -qt_libbitcoinqt_a_OBJCXXFLAGS = $(AM_OBJCXXFLAGS) $(QT_PIE_FLAGS) +qt_libvincoinqt_a_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +qt_libvincoinqt_a_OBJCXXFLAGS = $(AM_OBJCXXFLAGS) $(QT_PIE_FLAGS) -qt_libbitcoinqt_a_SOURCES = $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(QT_FORMS_UI) \ +qt_libvincoinqt_a_SOURCES = $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(QT_FORMS_UI) \ $(QT_QRC) $(QT_QRC_LOCALE) $(QT_TS) $(QT_RES_FONTS) $(QT_RES_ICONS) $(QT_RES_ANIMATION) if TARGET_DARWIN - qt_libbitcoinqt_a_SOURCES += $(BITCOIN_MM) + qt_libvincoinqt_a_SOURCES += $(BITCOIN_MM) endif -nodist_qt_libbitcoinqt_a_SOURCES = $(QT_MOC_CPP) $(QT_MOC) $(QT_QRC_CPP) $(QT_QRC_LOCALE_CPP) +nodist_qt_libvincoinqt_a_SOURCES = $(QT_MOC_CPP) $(QT_MOC) $(QT_QRC_CPP) $(QT_QRC_LOCALE_CPP) # forms/foo.h -> forms/ui_foo.h QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI:.ui=.h)))) @@ -313,96 +313,96 @@ QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI: # Most files will depend on the forms and moc files as includes. Generate them # before anything else. $(QT_MOC): $(QT_FORMS_H) -$(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) $(bitcoin_gui_OBJECTS) : | $(QT_MOC) +$(qt_libvincoinqt_a_OBJECTS) $(qt_vincoin_qt_OBJECTS) $(vincoin_gui_OBJECTS) : | $(QT_MOC) -# bitcoin-qt and bitcoin-gui binaries # -bitcoin_qt_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +# vincoin-qt and vincoin-gui binaries # +vincoin_qt_cppflags = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QR_CFLAGS) -bitcoin_qt_cxxflags = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +vincoin_qt_cxxflags = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) -bitcoin_qt_sources = qt/main.cpp +vincoin_qt_sources = qt/main.cpp if TARGET_WINDOWS - bitcoin_qt_sources += $(BITCOIN_QT_RC) + vincoin_qt_sources += $(BITCOIN_QT_RC) endif -bitcoin_qt_ldadd = qt/libbitcoinqt.a $(LIBBITCOIN_NODE) +vincoin_qt_ldadd = qt/libvincoinqt.a $(LIBBITCOIN_NODE) if ENABLE_WALLET -bitcoin_qt_ldadd += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) +vincoin_qt_ldadd += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) endif if ENABLE_ZMQ -bitcoin_qt_ldadd += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +vincoin_qt_ldadd += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -bitcoin_qt_ldadd += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ +vincoin_qt_ldadd += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \ $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS) -bitcoin_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -bitcoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX - -qt_bitcoin_qt_CPPFLAGS = $(bitcoin_qt_cppflags) -qt_bitcoin_qt_CXXFLAGS = $(bitcoin_qt_cxxflags) -qt_bitcoin_qt_SOURCES = $(bitcoin_qt_sources) init/bitcoin-qt.cpp -qt_bitcoin_qt_LDADD = $(bitcoin_qt_ldadd) -qt_bitcoin_qt_LDFLAGS = $(bitcoin_qt_ldflags) -qt_bitcoin_qt_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags) - -bitcoin_gui_CPPFLAGS = $(bitcoin_qt_cppflags) -bitcoin_gui_CXXFLAGS = $(bitcoin_qt_cxxflags) -bitcoin_gui_SOURCES = $(bitcoin_qt_sources) init/bitcoin-gui.cpp -bitcoin_gui_LDADD = $(bitcoin_qt_ldadd) $(LIBBITCOIN_IPC) $(LIBBITCOIN_UTIL) $(LIBMULTIPROCESS_LIBS) -bitcoin_gui_LDFLAGS = $(bitcoin_qt_ldflags) -bitcoin_gui_LIBTOOLFLAGS = $(bitcoin_qt_libtoolflags) +vincoin_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +vincoin_qt_libtoolflags = $(AM_LIBTOOLFLAGS) --tag CXX + +qt_vincoin_qt_CPPFLAGS = $(vincoin_qt_cppflags) +qt_vincoin_qt_CXXFLAGS = $(vincoin_qt_cxxflags) +qt_vincoin_qt_SOURCES = $(vincoin_qt_sources) init/vincoin-qt.cpp +qt_vincoin_qt_LDADD = $(vincoin_qt_ldadd) +qt_vincoin_qt_LDFLAGS = $(vincoin_qt_ldflags) +qt_vincoin_qt_LIBTOOLFLAGS = $(vincoin_qt_libtoolflags) + +vincoin_gui_CPPFLAGS = $(vincoin_qt_cppflags) +vincoin_gui_CXXFLAGS = $(vincoin_qt_cxxflags) +vincoin_gui_SOURCES = $(vincoin_qt_sources) init/vincoin-gui.cpp +vincoin_gui_LDADD = $(vincoin_qt_ldadd) $(LIBBITCOIN_IPC) $(LIBBITCOIN_UTIL) $(LIBMULTIPROCESS_LIBS) +vincoin_gui_LDFLAGS = $(vincoin_qt_ldflags) +vincoin_gui_LIBTOOLFLAGS = $(vincoin_qt_libtoolflags) #locale/foo.ts -> locale/foo.qm QT_QM=$(QT_TS:.ts=.qm) SECONDARY: $(QT_QM) -$(srcdir)/qt/bitcoinstrings.cpp: FORCE +$(srcdir)/qt/vincoinstrings.cpp: FORCE @test -n $(XGETTEXT) || echo "xgettext is required for updating translations" $(AM_V_GEN) cd $(srcdir); XGETTEXT=$(XGETTEXT) COPYRIGHT_HOLDERS="$(COPYRIGHT_HOLDERS)" $(PYTHON) ../share/qt/extract_strings_qt.py \ - $(libbitcoin_node_a_SOURCES) $(libbitcoin_wallet_a_SOURCES) $(libbitcoin_common_a_SOURCES) \ - $(libbitcoin_zmq_a_SOURCES) $(libbitcoin_consensus_a_SOURCES) $(libbitcoin_util_a_SOURCES) \ + $(libvincoin_node_a_SOURCES) $(libvincoin_wallet_a_SOURCES) $(libvincoin_common_a_SOURCES) \ + $(libvincoin_zmq_a_SOURCES) $(libvincoin_consensus_a_SOURCES) $(libvincoin_util_a_SOURCES) \ $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) -# The resulted bitcoin_en.xlf source file should follow Transifex requirements. +# The resulted vincoin_en.xlf source file should follow Transifex requirements. # See: https://docs.transifex.com/formats/xliff#how-to-distinguish-between-a-source-file-and-a-translation-file -translate: $(srcdir)/qt/bitcoinstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) +translate: $(srcdir)/qt/vincoinstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) @test -n $(LUPDATE) || echo "lupdate is required for updating translations" - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) -no-obsolete -I $(srcdir) -locations relative $^ -ts $(srcdir)/qt/locale/bitcoin_en.ts + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) -no-obsolete -I $(srcdir) -locations relative $^ -ts $(srcdir)/qt/locale/vincoin_en.ts @test -n $(LCONVERT) || echo "lconvert is required for updating translations" - $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LCONVERT) -drop-translations -o $(srcdir)/qt/locale/bitcoin_en.xlf -i $(srcdir)/qt/locale/bitcoin_en.ts - @$(SED) -i.old -e 's|source-language="en" target-language="en"|source-language="en"|' -e '/<\/target>/d' $(srcdir)/qt/locale/bitcoin_en.xlf - @rm -f $(srcdir)/qt/locale/bitcoin_en.xlf.old + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LCONVERT) -drop-translations -o $(srcdir)/qt/locale/vincoin_en.xlf -i $(srcdir)/qt/locale/vincoin_en.ts + @$(SED) -i.old -e 's|source-language="en" target-language="en"|source-language="en"|' -e '/<\/target>/d' $(srcdir)/qt/locale/vincoin_en.xlf + @rm -f $(srcdir)/qt/locale/vincoin_en.xlf.old $(QT_QRC_LOCALE_CPP): $(QT_QRC_LOCALE) $(QT_QM) @test -f $(RCC) || (echo "rcc $(RCC) not found, but is required for generating qrc cpp files"; exit 1) @cp -f $< $(@D)/temp_$( $@ + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name vincoin_locale --format-version 1 $(@D)/temp_$( $@ @rm $(@D)/temp_$( $@ + $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name vincoin --format-version 1 $< > $@ -CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno qt/temp_bitcoin_locale.qrc +CLEAN_QT = $(nodist_qt_libvincoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno qt/temp_vincoin_locale.qrc CLEANFILES += $(CLEAN_QT) -bitcoin_qt_clean: FORCE - rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) qt/bitcoin-qt$(EXEEXT) $(LIBBITCOINQT) +vincoin_qt_clean: FORCE + rm -f $(CLEAN_QT) $(qt_libvincoinqt_a_OBJECTS) $(qt_vincoin_qt_OBJECTS) qt/vincoin-qt$(EXEEXT) $(LIBBITCOINQT) -bitcoin_qt : qt/bitcoin-qt$(EXEEXT) +vincoin_qt : qt/vincoin-qt$(EXEEXT) APK_LIB_DIR = qt/android/libs/$(ANDROID_ARCH) QT_BASE_VERSION = $(lastword $(shell $(MOC) --version)) QT_BASE_PATH = $(shell find ../depends/sources/ -maxdepth 1 -type f -regex ".*qtbase.*$(QT_BASE_VERSION)\.tar.xz") QT_BASE_TLD = $(shell tar tf $(QT_BASE_PATH) --exclude='*/*') -bitcoin_qt_apk: FORCE +vincoin_qt_apk: FORCE mkdir -p $(APK_LIB_DIR) cp $(dir $(lastword $(CC)))../sysroot/usr/lib/$(host_alias)/libc++_shared.so $(APK_LIB_DIR) tar xf $(QT_BASE_PATH) -C qt/android/src/ $(QT_BASE_TLD)src/android/jar/src --strip-components=5 tar xf $(QT_BASE_PATH) -C qt/android/src/ $(QT_BASE_TLD)src/android/java/src --strip-components=5 - cp qt/bitcoin-qt $(APK_LIB_DIR)/libbitcoin-qt_$(ANDROID_ARCH).so + cp qt/vincoin-qt $(APK_LIB_DIR)/libvincoin-qt_$(ANDROID_ARCH).so cd qt/android && gradle wrapper --gradle-version=6.6.1 cd qt/android && ./gradlew build diff --git a/src/Makefile.qt_locale.include b/src/Makefile.qt_locale.include index 4712b1e11f5ee..f82549d6873e4 100644 --- a/src/Makefile.qt_locale.include +++ b/src/Makefile.qt_locale.include @@ -1,125 +1,125 @@ QT_TS = \ - qt/locale/bitcoin_af.ts \ - qt/locale/bitcoin_am.ts \ - qt/locale/bitcoin_az.ts \ - qt/locale/bitcoin_az@latin.ts \ - qt/locale/bitcoin_be.ts \ - qt/locale/bitcoin_bg.ts \ - qt/locale/bitcoin_bn.ts \ - qt/locale/bitcoin_br.ts \ - qt/locale/bitcoin_bs.ts \ - qt/locale/bitcoin_ca.ts \ - qt/locale/bitcoin_cmn.ts \ - qt/locale/bitcoin_cs.ts \ - qt/locale/bitcoin_cy.ts \ - qt/locale/bitcoin_da.ts \ - qt/locale/bitcoin_de.ts \ - qt/locale/bitcoin_de_AT.ts \ - qt/locale/bitcoin_de_CH.ts \ - qt/locale/bitcoin_el.ts \ - qt/locale/bitcoin_en.ts \ - qt/locale/bitcoin_eo.ts \ - qt/locale/bitcoin_es.ts \ - qt/locale/bitcoin_es_CL.ts \ - qt/locale/bitcoin_es_CO.ts \ - qt/locale/bitcoin_es_DO.ts \ - qt/locale/bitcoin_es_MX.ts \ - qt/locale/bitcoin_es_SV.ts \ - qt/locale/bitcoin_es_VE.ts \ - qt/locale/bitcoin_et.ts \ - qt/locale/bitcoin_eu.ts \ - qt/locale/bitcoin_fa.ts \ - qt/locale/bitcoin_fi.ts \ - qt/locale/bitcoin_fil.ts \ - qt/locale/bitcoin_fo.ts \ - qt/locale/bitcoin_fr.ts \ - qt/locale/bitcoin_fr_CM.ts \ - qt/locale/bitcoin_fr_LU.ts \ - qt/locale/bitcoin_ga.ts \ - qt/locale/bitcoin_ga_IE.ts \ - qt/locale/bitcoin_gd.ts \ - qt/locale/bitcoin_gl.ts \ - qt/locale/bitcoin_gl_ES.ts \ - qt/locale/bitcoin_gu.ts \ - qt/locale/bitcoin_ha.ts \ - qt/locale/bitcoin_hak.ts \ - qt/locale/bitcoin_he.ts \ - qt/locale/bitcoin_hi.ts \ - qt/locale/bitcoin_hr.ts \ - qt/locale/bitcoin_hu.ts \ - qt/locale/bitcoin_id.ts \ - qt/locale/bitcoin_is.ts \ - qt/locale/bitcoin_it.ts \ - qt/locale/bitcoin_ja.ts \ - qt/locale/bitcoin_ka.ts \ - qt/locale/bitcoin_kk.ts \ - qt/locale/bitcoin_kk@latin.ts \ - qt/locale/bitcoin_kl.ts \ - qt/locale/bitcoin_km.ts \ - qt/locale/bitcoin_kn.ts \ - qt/locale/bitcoin_ko.ts \ - qt/locale/bitcoin_ku.ts \ - qt/locale/bitcoin_ku_IQ.ts \ - qt/locale/bitcoin_ky.ts \ - qt/locale/bitcoin_la.ts \ - qt/locale/bitcoin_lb.ts \ - qt/locale/bitcoin_lt.ts \ - qt/locale/bitcoin_lv.ts \ - qt/locale/bitcoin_mg.ts \ - qt/locale/bitcoin_mi.ts \ - qt/locale/bitcoin_mk.ts \ - qt/locale/bitcoin_ml.ts \ - qt/locale/bitcoin_mn.ts \ - qt/locale/bitcoin_mr.ts \ - qt/locale/bitcoin_mr_IN.ts \ - qt/locale/bitcoin_ms.ts \ - qt/locale/bitcoin_mt.ts \ - qt/locale/bitcoin_my.ts \ - qt/locale/bitcoin_nb.ts \ - qt/locale/bitcoin_ne.ts \ - qt/locale/bitcoin_nl.ts \ - qt/locale/bitcoin_no.ts \ - qt/locale/bitcoin_pa.ts \ - qt/locale/bitcoin_pam.ts \ - qt/locale/bitcoin_pl.ts \ - qt/locale/bitcoin_pt.ts \ - qt/locale/bitcoin_pt_BR.ts \ - qt/locale/bitcoin_ro.ts \ - qt/locale/bitcoin_ru.ts \ - qt/locale/bitcoin_ru_RU.ts \ - qt/locale/bitcoin_sc.ts \ - qt/locale/bitcoin_sd.ts \ - qt/locale/bitcoin_si.ts \ - qt/locale/bitcoin_sk.ts \ - qt/locale/bitcoin_sl.ts \ - qt/locale/bitcoin_sn.ts \ - qt/locale/bitcoin_so.ts \ - qt/locale/bitcoin_sq.ts \ - qt/locale/bitcoin_sr.ts \ - qt/locale/bitcoin_sr@ijekavianlatin.ts \ - qt/locale/bitcoin_sr@latin.ts \ - qt/locale/bitcoin_sv.ts \ - qt/locale/bitcoin_sw.ts \ - qt/locale/bitcoin_szl.ts \ - qt/locale/bitcoin_ta.ts \ - qt/locale/bitcoin_te.ts \ - qt/locale/bitcoin_th.ts \ - qt/locale/bitcoin_tk.ts \ - qt/locale/bitcoin_tl.ts \ - qt/locale/bitcoin_tr.ts \ - qt/locale/bitcoin_ug.ts \ - qt/locale/bitcoin_uk.ts \ - qt/locale/bitcoin_ur.ts \ - qt/locale/bitcoin_uz.ts \ - qt/locale/bitcoin_uz@Cyrl.ts \ - qt/locale/bitcoin_uz@Latn.ts \ - qt/locale/bitcoin_vi.ts \ - qt/locale/bitcoin_yo.ts \ - qt/locale/bitcoin_yue.ts \ - qt/locale/bitcoin_zh-Hans.ts \ - qt/locale/bitcoin_zh-Hant.ts \ - qt/locale/bitcoin_zh.ts \ - qt/locale/bitcoin_zh_CN.ts \ - qt/locale/bitcoin_zh_HK.ts \ - qt/locale/bitcoin_zh_TW.ts \ - qt/locale/bitcoin_zu.ts + qt/locale/vincoin_af.ts \ + qt/locale/vincoin_am.ts \ + qt/locale/vincoin_az.ts \ + qt/locale/vincoin_az@latin.ts \ + qt/locale/vincoin_be.ts \ + qt/locale/vincoin_bg.ts \ + qt/locale/vincoin_bn.ts \ + qt/locale/vincoin_br.ts \ + qt/locale/vincoin_bs.ts \ + qt/locale/vincoin_ca.ts \ + qt/locale/vincoin_cmn.ts \ + qt/locale/vincoin_cs.ts \ + qt/locale/vincoin_cy.ts \ + qt/locale/vincoin_da.ts \ + qt/locale/vincoin_de.ts \ + qt/locale/vincoin_de_AT.ts \ + qt/locale/vincoin_de_CH.ts \ + qt/locale/vincoin_el.ts \ + qt/locale/vincoin_en.ts \ + qt/locale/vincoin_eo.ts \ + qt/locale/vincoin_es.ts \ + qt/locale/vincoin_es_CL.ts \ + qt/locale/vincoin_es_CO.ts \ + qt/locale/vincoin_es_DO.ts \ + qt/locale/vincoin_es_MX.ts \ + qt/locale/vincoin_es_SV.ts \ + qt/locale/vincoin_es_VE.ts \ + qt/locale/vincoin_et.ts \ + qt/locale/vincoin_eu.ts \ + qt/locale/vincoin_fa.ts \ + qt/locale/vincoin_fi.ts \ + qt/locale/vincoin_fil.ts \ + qt/locale/vincoin_fo.ts \ + qt/locale/vincoin_fr.ts \ + qt/locale/vincoin_fr_CM.ts \ + qt/locale/vincoin_fr_LU.ts \ + qt/locale/vincoin_ga.ts \ + qt/locale/vincoin_ga_IE.ts \ + qt/locale/vincoin_gd.ts \ + qt/locale/vincoin_gl.ts \ + qt/locale/vincoin_gl_ES.ts \ + qt/locale/vincoin_gu.ts \ + qt/locale/vincoin_ha.ts \ + qt/locale/vincoin_hak.ts \ + qt/locale/vincoin_he.ts \ + qt/locale/vincoin_hi.ts \ + qt/locale/vincoin_hr.ts \ + qt/locale/vincoin_hu.ts \ + qt/locale/vincoin_id.ts \ + qt/locale/vincoin_is.ts \ + qt/locale/vincoin_it.ts \ + qt/locale/vincoin_ja.ts \ + qt/locale/vincoin_ka.ts \ + qt/locale/vincoin_kk.ts \ + qt/locale/vincoin_kk@latin.ts \ + qt/locale/vincoin_kl.ts \ + qt/locale/vincoin_km.ts \ + qt/locale/vincoin_kn.ts \ + qt/locale/vincoin_ko.ts \ + qt/locale/vincoin_ku.ts \ + qt/locale/vincoin_ku_IQ.ts \ + qt/locale/vincoin_ky.ts \ + qt/locale/vincoin_la.ts \ + qt/locale/vincoin_lb.ts \ + qt/locale/vincoin_lt.ts \ + qt/locale/vincoin_lv.ts \ + qt/locale/vincoin_mg.ts \ + qt/locale/vincoin_mi.ts \ + qt/locale/vincoin_mk.ts \ + qt/locale/vincoin_ml.ts \ + qt/locale/vincoin_mn.ts \ + qt/locale/vincoin_mr.ts \ + qt/locale/vincoin_mr_IN.ts \ + qt/locale/vincoin_ms.ts \ + qt/locale/vincoin_mt.ts \ + qt/locale/vincoin_my.ts \ + qt/locale/vincoin_nb.ts \ + qt/locale/vincoin_ne.ts \ + qt/locale/vincoin_nl.ts \ + qt/locale/vincoin_no.ts \ + qt/locale/vincoin_pa.ts \ + qt/locale/vincoin_pam.ts \ + qt/locale/vincoin_pl.ts \ + qt/locale/vincoin_pt.ts \ + qt/locale/vincoin_pt_BR.ts \ + qt/locale/vincoin_ro.ts \ + qt/locale/vincoin_ru.ts \ + qt/locale/vincoin_ru_RU.ts \ + qt/locale/vincoin_sc.ts \ + qt/locale/vincoin_sd.ts \ + qt/locale/vincoin_si.ts \ + qt/locale/vincoin_sk.ts \ + qt/locale/vincoin_sl.ts \ + qt/locale/vincoin_sn.ts \ + qt/locale/vincoin_so.ts \ + qt/locale/vincoin_sq.ts \ + qt/locale/vincoin_sr.ts \ + qt/locale/vincoin_sr@ijekavianlatin.ts \ + qt/locale/vincoin_sr@latin.ts \ + qt/locale/vincoin_sv.ts \ + qt/locale/vincoin_sw.ts \ + qt/locale/vincoin_szl.ts \ + qt/locale/vincoin_ta.ts \ + qt/locale/vincoin_te.ts \ + qt/locale/vincoin_th.ts \ + qt/locale/vincoin_tk.ts \ + qt/locale/vincoin_tl.ts \ + qt/locale/vincoin_tr.ts \ + qt/locale/vincoin_ug.ts \ + qt/locale/vincoin_uk.ts \ + qt/locale/vincoin_ur.ts \ + qt/locale/vincoin_uz.ts \ + qt/locale/vincoin_uz@Cyrl.ts \ + qt/locale/vincoin_uz@Latn.ts \ + qt/locale/vincoin_vi.ts \ + qt/locale/vincoin_yo.ts \ + qt/locale/vincoin_yue.ts \ + qt/locale/vincoin_zh-Hans.ts \ + qt/locale/vincoin_zh-Hant.ts \ + qt/locale/vincoin_zh.ts \ + qt/locale/vincoin_zh_CN.ts \ + qt/locale/vincoin_zh_HK.ts \ + qt/locale/vincoin_zh_TW.ts \ + qt/locale/vincoin_zu.ts diff --git a/src/Makefile.qttest.include b/src/Makefile.qttest.include index 89c659d4b9219..e733348c2944e 100644 --- a/src/Makefile.qttest.include +++ b/src/Makefile.qttest.include @@ -1,9 +1,9 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. -bin_PROGRAMS += qt/test/test_bitcoin-qt -TESTS += qt/test/test_bitcoin-qt +bin_PROGRAMS += qt/test/test_vincoin-qt +TESTS += qt/test/test_vincoin-qt TEST_QT_MOC_CPP = \ qt/test/moc_apptests.cpp \ @@ -26,11 +26,11 @@ TEST_QT_H = \ qt/test/util.h \ qt/test/wallettests.h -qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ +qt_test_test_vincoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \ $(QT_INCLUDES) $(QT_TEST_INCLUDES) $(BOOST_CPPFLAGS) -qt_test_test_bitcoin_qt_SOURCES = \ - init/bitcoin-qt.cpp \ +qt_test_test_vincoin_qt_SOURCES = \ + init/vincoin-qt.cpp \ qt/test/apptests.cpp \ qt/test/optiontests.cpp \ qt/test/rpcnestedtests.cpp \ @@ -39,36 +39,36 @@ qt_test_test_bitcoin_qt_SOURCES = \ qt/test/util.cpp \ $(TEST_QT_H) if ENABLE_WALLET -qt_test_test_bitcoin_qt_SOURCES += \ +qt_test_test_vincoin_qt_SOURCES += \ qt/test/addressbooktests.cpp \ qt/test/wallettests.cpp \ wallet/test/wallet_test_fixture.cpp endif # ENABLE_WALLET -nodist_qt_test_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP) +nodist_qt_test_test_vincoin_qt_SOURCES = $(TEST_QT_MOC_CPP) -qt_test_test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_NODE) $(LIBTEST_UTIL) +qt_test_test_vincoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_NODE) $(LIBTEST_UTIL) if ENABLE_WALLET -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) +qt_test_test_vincoin_qt_LDADD += $(LIBBITCOIN_UTIL) $(LIBBITCOIN_WALLET) endif if ENABLE_ZMQ -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +qt_test_test_vincoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif -qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ +qt_test_test_vincoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \ $(LIBMEMENV) $(QT_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) \ $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \ $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS) -qt_test_test_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -qt_test_test_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) +qt_test_test_vincoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) +qt_test_test_vincoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS) CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno CLEANFILES += $(CLEAN_BITCOIN_QT_TEST) -test_bitcoin_qt : qt/test/test_bitcoin-qt$(EXEEXT) +test_vincoin_qt : qt/test/test_vincoin-qt$(EXEEXT) -test_bitcoin_qt_check : qt/test/test_bitcoin-qt$(EXEEXT) FORCE +test_vincoin_qt_check : qt/test/test_vincoin-qt$(EXEEXT) FORCE $(MAKE) check-TESTS TESTS=$^ -test_bitcoin_qt_clean: FORCE - rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_bitcoin_qt_OBJECTS) +test_vincoin_qt_clean: FORCE + rm -f $(CLEAN_BITCOIN_QT_TEST) $(qt_test_test_vincoin_qt_OBJECTS) diff --git a/src/Makefile.test.include b/src/Makefile.test.include index 9f9bdbbd0cd4b..42b2d9afa74bb 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2016 The Bitcoin Core developers +# Copyright (c) 2013-2016 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -7,11 +7,11 @@ noinst_PROGRAMS += test/fuzz/fuzz endif if ENABLE_TESTS -bin_PROGRAMS += test/test_bitcoin +bin_PROGRAMS += test/test_vincoin endif TEST_SRCDIR = test -TEST_BINARY=test/test_bitcoin$(EXEEXT) +TEST_BINARY=test/test_vincoin$(EXEEXT) FUZZ_BINARY=test/fuzz/fuzz$(EXEEXT) JSON_TEST_FILES = \ @@ -61,7 +61,7 @@ if USE_NATPMP FUZZ_SUITE_LD_COMMON += $(NATPMP_LIBS) endif -# test_bitcoin binary # +# test_vincoin binary # BITCOIN_TESTS =\ test/addrman_tests.cpp \ test/allocator_tests.cpp \ @@ -223,18 +223,18 @@ BITCOIN_TESTS += test/ipc_tests.cpp # Build ipc_test code in a separate library so it can be compiled with custom # LIBMULTIPROCESS_CFLAGS without those flags affecting other tests -LIBBITCOIN_IPC_TEST=libbitcoin_ipc_test.a +LIBBITCOIN_IPC_TEST=libvincoin_ipc_test.a EXTRA_LIBRARIES += $(LIBBITCOIN_IPC_TEST) -libbitcoin_ipc_test_a_SOURCES = \ +libvincoin_ipc_test_a_SOURCES = \ test/ipc_test.cpp \ test/ipc_test.h -libbitcoin_ipc_test_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -libbitcoin_ipc_test_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) +libvincoin_ipc_test_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) +libvincoin_ipc_test_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(LIBMULTIPROCESS_CFLAGS) # Generate various .c++/.h files from the ipc_test.capnp file include $(MPGEN_PREFIX)/include/mpgen.mk EXTRA_DIST += test/ipc_test.capnp -libbitcoin_ipc_test_mpgen_output = \ +libvincoin_ipc_test_mpgen_output = \ test/ipc_test.capnp.c++ \ test/ipc_test.capnp.h \ test/ipc_test.capnp.proxy-client.c++ \ @@ -242,34 +242,34 @@ libbitcoin_ipc_test_mpgen_output = \ test/ipc_test.capnp.proxy-types.c++ \ test/ipc_test.capnp.proxy-types.h \ test/ipc_test.capnp.proxy.h -nodist_libbitcoin_ipc_test_a_SOURCES = $(libbitcoin_ipc_test_mpgen_output) -CLEANFILES += $(libbitcoin_ipc_test_mpgen_output) +nodist_libvincoin_ipc_test_a_SOURCES = $(libvincoin_ipc_test_mpgen_output) +CLEANFILES += $(libvincoin_ipc_test_mpgen_output) endif # Explicitly list dependencies on generated headers as described in # https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually -test/libbitcoin_ipc_test_a-ipc_test.$(OBJEXT): test/ipc_test.capnp.h +test/libvincoin_ipc_test_a-ipc_test.$(OBJEXT): test/ipc_test.capnp.h -test_test_bitcoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) -test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) -test_test_bitcoin_LDADD = $(LIBTEST_UTIL) +test_test_vincoin_SOURCES = $(BITCOIN_TEST_SUITE) $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES) +test_test_vincoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(TESTDEFS) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) +test_test_vincoin_LDADD = $(LIBTEST_UTIL) if ENABLE_WALLET -test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET) -test_test_bitcoin_CPPFLAGS += $(BDB_CPPFLAGS) +test_test_vincoin_LDADD += $(LIBBITCOIN_WALLET) +test_test_vincoin_CPPFLAGS += $(BDB_CPPFLAGS) endif if BUILD_MULTIPROCESS -test_test_bitcoin_LDADD += $(LIBBITCOIN_IPC_TEST) $(LIBMULTIPROCESS_LIBS) +test_test_vincoin_LDADD += $(LIBBITCOIN_IPC_TEST) $(LIBMULTIPROCESS_LIBS) endif -test_test_bitcoin_LDADD += $(LIBBITCOIN_NODE) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ +test_test_vincoin_LDADD += $(LIBBITCOIN_NODE) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \ $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) $(MINISKETCH_LIBS) -test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) +test_test_vincoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -test_test_bitcoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(SQLITE_LIBS) -test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -static +test_test_vincoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(SQLITE_LIBS) +test_test_vincoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS) -static if ENABLE_ZMQ -test_test_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) +test_test_vincoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) FUZZ_SUITE_LD_COMMON += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS) endif @@ -362,7 +362,7 @@ test_fuzz_fuzz_SOURCES = \ test/fuzz/rpc.cpp \ test/fuzz/script.cpp \ test/fuzz/script_assets_test_minimizer.cpp \ - test/fuzz/script_bitcoin_consensus.cpp \ + test/fuzz/script_vincoin_consensus.cpp \ test/fuzz/script_descriptor_cache.cpp \ test/fuzz/script_flags.cpp \ test/fuzz/script_format.cpp \ @@ -395,7 +395,7 @@ test_fuzz_fuzz_SOURCES = \ test/fuzz/versionbits.cpp endif # ENABLE_FUZZ_BINARY -nodist_test_test_bitcoin_SOURCES = $(GENERATED_TEST_FILES) +nodist_test_test_vincoin_SOURCES = $(GENERATED_TEST_FILES) $(BITCOIN_TESTS): $(GENERATED_TEST_FILES) @@ -404,20 +404,20 @@ CLEAN_BITCOIN_TEST = test/*.gcda test/*.gcno test/fuzz/*.gcda test/fuzz/*.gcno t CLEANFILES += $(CLEAN_BITCOIN_TEST) if TARGET_WINDOWS -bitcoin_test: $(TEST_BINARY) +vincoin_test: $(TEST_BINARY) else if ENABLE_BENCH -bitcoin_test: $(TEST_BINARY) $(BENCH_BINARY) +vincoin_test: $(TEST_BINARY) $(BENCH_BINARY) else -bitcoin_test: $(TEST_BINARY) +vincoin_test: $(TEST_BINARY) endif endif -bitcoin_test_check: $(TEST_BINARY) FORCE +vincoin_test_check: $(TEST_BINARY) FORCE $(MAKE) check-TESTS TESTS=$^ -bitcoin_test_clean : FORCE - rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY) +vincoin_test_clean : FORCE + rm -f $(CLEAN_BITCOIN_TEST) $(test_test_vincoin_OBJECTS) $(TEST_BINARY) check-unit: $(BITCOIN_TESTS:.cpp=.cpp.test) @@ -431,7 +431,7 @@ endif if TARGET_WINDOWS else if ENABLE_BENCH - @echo "Running bench/bench_bitcoin (one iteration sanity check, only high priority)..." + @echo "Running bench/bench_vincoin (one iteration sanity check, only high priority)..." $(BENCH_BINARY) -sanity-check -priority-level=high endif endif diff --git a/src/Makefile.test_fuzz.include b/src/Makefile.test_fuzz.include index b4337991e42dd..5071ede851a2a 100644 --- a/src/Makefile.test_fuzz.include +++ b/src/Makefile.test_fuzz.include @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2020 The Bitcoin Core developers +# Copyright (c) 2013-2020 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/Makefile.test_util.include b/src/Makefile.test_util.include index 6a1fd712bd1fc..fa08c5cfb5fe1 100644 --- a/src/Makefile.test_util.include +++ b/src/Makefile.test_util.include @@ -1,4 +1,4 @@ -# Copyright (c) 2013-2019 The Bitcoin Core developers +# Copyright (c) 2013-2019 The Vincoin Core developers # Distributed under the MIT software license, see the accompanying # file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/addrdb.cpp b/src/addrdb.cpp index fd2a363b8adc4..242611199cc5a 100644 --- a/src/addrdb.cpp +++ b/src/addrdb.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include +#include #endif #include diff --git a/src/addrdb.h b/src/addrdb.h index cc3014dce29b3..0faff1fe9543c 100644 --- a/src/addrdb.h +++ b/src/addrdb.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2021 The Bitcoin Core developers +// Copyright (c) 2009-2021 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/addresstype.cpp b/src/addresstype.cpp index f199d1b479446..f2dedad582f96 100644 --- a/src/addresstype.cpp +++ b/src/addresstype.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2023 The Bitcoin Core developers +// Copyright (c) 2023 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or https://www.opensource.org/licenses/mit-license.php. diff --git a/src/addresstype.h b/src/addresstype.h index 0152858bad2a3..c1076d3d141ce 100644 --- a/src/addresstype.h +++ b/src/addresstype.h @@ -1,4 +1,4 @@ -// Copyright (c) 2023 The Bitcoin Core developers +// Copyright (c) 2023 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or https://www.opensource.org/licenses/mit-license.php. @@ -126,7 +126,7 @@ struct WitnessUnknown * * WitnessV0KeyHash: TxoutType::WITNESS_V0_KEYHASH destination (P2WPKH address) * * WitnessV1Taproot: TxoutType::WITNESS_V1_TAPROOT destination (P2TR address) * * WitnessUnknown: TxoutType::WITNESS_UNKNOWN destination (P2W??? address) - * A CTxDestination is the internal data type encoded in a bitcoin address + * A CTxDestination is the internal data type encoded in a vincoin address */ using CTxDestination = std::variant; @@ -146,7 +146,7 @@ bool IsValidDestination(const CTxDestination& dest); bool ExtractDestination(const CScript& scriptPubKey, CTxDestination& addressRet); /** - * Generate a Bitcoin scriptPubKey for the given CTxDestination. Returns a P2PKH + * Generate a Vincoin scriptPubKey for the given CTxDestination. Returns a P2PKH * script for a CKeyID destination, a P2SH script for a CScriptID, and an empty * script for CNoDestination. */ diff --git a/src/addrman.cpp b/src/addrman.cpp index ef8ed92bb5310..8bee3e15eab78 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -1,10 +1,10 @@ // Copyright (c) 2012 Pieter Wuille -// Copyright (c) 2012-2022 The Bitcoin Core developers +// Copyright (c) 2012-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #if defined(HAVE_CONFIG_H) -#include +#include #endif #include @@ -141,12 +141,12 @@ void AddrManImpl::Serialize(Stream& s_) const * * format version byte (@see `Format`) * * lowest compatible format version byte. This is used to help old software decide * whether to parse the file. For example: - * * Bitcoin Core version N knows how to parse up to format=3. If a new format=4 is + * * Vincoin Core version N knows how to parse up to format=3. If a new format=4 is * introduced in version N+1 that is compatible with format=3 and it is known that * version N will be able to parse it, then version N+1 will write * (format=4, lowest_compatible=3) in the first two bytes of the file, and so * version N will still try to parse it. - * * Bitcoin Core version N+2 introduces a new incompatible format=5. It will write + * * Vincoin Core version N+2 introduces a new incompatible format=5. It will write * (format=5, lowest_compatible=5) and so any versions that do not know how to parse * format=5 will not try to read the file. * * nKey diff --git a/src/addrman.h b/src/addrman.h index be2ee8c2cbaf5..1ca852da960b1 100644 --- a/src/addrman.h +++ b/src/addrman.h @@ -1,5 +1,5 @@ // Copyright (c) 2012 Pieter Wuille -// Copyright (c) 2012-2022 The Bitcoin Core developers +// Copyright (c) 2012-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/addrman_impl.h b/src/addrman_impl.h index 867c894d01ded..b9a518efd8424 100644 --- a/src/addrman_impl.h +++ b/src/addrman_impl.h @@ -1,4 +1,4 @@ -// Copyright (c) 2021-2022 The Bitcoin Core developers +// Copyright (c) 2021-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/arith_uint256.cpp b/src/arith_uint256.cpp index 0d5b3d5b0e647..0bea723398228 100644 --- a/src/arith_uint256.cpp +++ b/src/arith_uint256.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/arith_uint256.h b/src/arith_uint256.h index ba36cebbdcc67..18b58b04b86d2 100644 --- a/src/arith_uint256.h +++ b/src/arith_uint256.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -259,7 +259,7 @@ class arith_uint256 : public base_uint<256> { * Thus 0x1234560000 is compact (0x05123456) * and 0xc0de000000 is compact (0x0600c0de) * - * Bitcoin only uses this "compact" format for encoding difficulty + * Vincoin only uses this "compact" format for encoding difficulty * targets, which are unsigned 256bit quantities. Thus, all the * complexities of the sign bit and using base 256 are probably an * implementation accident. diff --git a/src/attributes.h b/src/attributes.h index a4603b0270dfd..4246547c17b26 100644 --- a/src/attributes.h +++ b/src/attributes.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2020 The Bitcoin Core developers +// Copyright (c) 2009-2020 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/banman.cpp b/src/banman.cpp index 9f668d76a311b..6f42ac478849a 100644 --- a/src/banman.cpp +++ b/src/banman.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/banman.h b/src/banman.h index c6df7ec3c3d6b..1df07661e1af0 100644 --- a/src/banman.h +++ b/src/banman.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_BANMAN_H diff --git a/src/base58.cpp b/src/base58.cpp index cf5d62f164f3d..185df58c8e6ae 100644 --- a/src/base58.cpp +++ b/src/base58.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2022 The Bitcoin Core developers +// Copyright (c) 2014-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/base58.h b/src/base58.h index 2f4d0b74b1b32..6422a2ed5b54f 100644 --- a/src/base58.h +++ b/src/base58.h @@ -1,5 +1,5 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2022 The Bitcoin Core developers +// Copyright (c) 2009-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bech32.cpp b/src/bech32.cpp index ba3c419d8b686..a7f3f34a2c906 100644 --- a/src/bech32.cpp +++ b/src/bech32.cpp @@ -1,5 +1,5 @@ // Copyright (c) 2017, 2021 Pieter Wuille -// Copyright (c) 2021-2022 The Bitcoin Core developers +// Copyright (c) 2021-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bech32.h b/src/bech32.h index 5e89e6efdaa94..488e503e26d64 100644 --- a/src/bech32.h +++ b/src/bech32.h @@ -1,5 +1,5 @@ // Copyright (c) 2017, 2021 Pieter Wuille -// Copyright (c) 2021 The Bitcoin Core developers +// Copyright (c) 2021 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/.gitignore b/src/bench/.gitignore index e231fe4cab5cb..8e86f76bed8f0 100644 --- a/src/bench/.gitignore +++ b/src/bench/.gitignore @@ -1 +1 @@ -bench_bitcoin +bench_vincoin diff --git a/src/bench/addrman.cpp b/src/bench/addrman.cpp index f044feebba68a..772766b2fdb8b 100644 --- a/src/bench/addrman.cpp +++ b/src/bench/addrman.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2020-2022 The Bitcoin Core developers +// Copyright (c) 2020-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/base58.cpp b/src/bench/base58.cpp index 78748bc5bde5c..b5aa600140064 100644 --- a/src/bench/base58.cpp +++ b/src/bench/base58.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2022 The Bitcoin Core developers +// Copyright (c) 2016-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bech32.cpp b/src/bench/bech32.cpp index 9922653766fdb..8606105dbebf2 100644 --- a/src/bench/bech32.cpp +++ b/src/bench/bech32.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2018-2022 The Bitcoin Core developers +// Copyright (c) 2018-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bench.cpp b/src/bench/bench.cpp index 84b66bc4b2228..14f21b5da40cd 100644 --- a/src/bench/bench.cpp +++ b/src/bench/bench.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bench.h b/src/bench/bench.h index 6065ddf3fc913..8b361d7758563 100644 --- a/src/bench/bench.h +++ b/src/bench/bench.h @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/bench_vincoin.cpp b/src/bench/bench_vincoin.cpp index 8c421c3fec6e3..a2b7717ff7d3f 100644 --- a/src/bench/bench_vincoin.cpp +++ b/src/bench/bench_vincoin.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -69,12 +69,12 @@ int main(int argc, char** argv) } if (HelpRequested(argsman)) { - std::cout << "Usage: bench_bitcoin [options]\n" + std::cout << "Usage: bench_vincoin [options]\n" "\n" << argsman.GetHelpMessage() << "Description:\n" "\n" - " bench_bitcoin executes microbenchmarks. The quality of the benchmark results\n" + " bench_vincoin executes microbenchmarks. The quality of the benchmark results\n" " highly depend on the stability of the machine. It can sometimes be difficult\n" " to get stable, repeatable results, so here are a few tips:\n" "\n" @@ -88,7 +88,7 @@ int main(int argc, char** argv) " * If results are still not reliable, increase runtime with e.g.\n" " -min-time=5000 to let a benchmark run for at least 5 seconds.\n" "\n" - " * bench_bitcoin uses nanobench [3] for which there is extensive\n" + " * bench_vincoin uses nanobench [3] for which there is extensive\n" " documentation available online.\n" "\n" "Environment Variables:\n" @@ -96,12 +96,12 @@ int main(int argc, char** argv) " To attach a profiler you can run a benchmark in endless mode. This can be\n" " done with the environment variable NANOBENCH_ENDLESS. E.g. like so:\n" "\n" - " NANOBENCH_ENDLESS=MuHash ./bench_bitcoin -filter=MuHash\n" + " NANOBENCH_ENDLESS=MuHash ./bench_vincoin -filter=MuHash\n" "\n" " In rare cases it can be useful to suppress stability warnings. This can be\n" " done with the environment variable NANOBENCH_SUPPRESS_WARNINGS, e.g:\n" "\n" - " NANOBENCH_SUPPRESS_WARNINGS=1 ./bench_bitcoin\n" + " NANOBENCH_SUPPRESS_WARNINGS=1 ./bench_vincoin\n" "\n" "Notes:\n" "\n" diff --git a/src/bench/bip324_ecdh.cpp b/src/bench/bip324_ecdh.cpp index 659da0f08e602..835560a9b91e1 100644 --- a/src/bench/bip324_ecdh.cpp +++ b/src/bench/bip324_ecdh.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Bitcoin Core developers +// Copyright (c) 2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/block_assemble.cpp b/src/bench/block_assemble.cpp index ba8ec16119aa3..01b75c052f112 100644 --- a/src/bench/block_assemble.cpp +++ b/src/bench/block_assemble.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2011-2022 The Bitcoin Core developers +// Copyright (c) 2011-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/ccoins_caching.cpp b/src/bench/ccoins_caching.cpp index 4a3ec67c2b818..e1488be30b736 100644 --- a/src/bench/ccoins_caching.cpp +++ b/src/bench/ccoins_caching.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2022 The Bitcoin Core developers +// Copyright (c) 2016-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -15,7 +15,7 @@ // many times micro-benchmarks of the database showed completely different // characteristics than e.g. reindex timings. But that's not a requirement of // every benchmark." -// (https://github.com/bitcoin/bitcoin/issues/7883#issuecomment-224807484) +// (https://github.com/vincoin/vincoin/issues/7883#issuecomment-224807484) static void CCoinsCaching(benchmark::Bench& bench) { ECC_Start(); diff --git a/src/bench/chacha20.cpp b/src/bench/chacha20.cpp index e0bb07d8be362..2c6c3ba75967f 100644 --- a/src/bench/chacha20.cpp +++ b/src/bench/chacha20.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2019-2022 The Bitcoin Core developers +// Copyright (c) 2019-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/checkblock.cpp b/src/bench/checkblock.cpp index b81878006cdcc..cfb27cab46fa8 100644 --- a/src/bench/checkblock.cpp +++ b/src/bench/checkblock.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2016-2022 The Bitcoin Core developers +// Copyright (c) 2016-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/checkqueue.cpp b/src/bench/checkqueue.cpp index 114dd9d39c86a..adfd6dc1fdbbb 100644 --- a/src/bench/checkqueue.cpp +++ b/src/bench/checkqueue.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2022 The Bitcoin Core developers +// Copyright (c) 2015-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. diff --git a/src/bench/coin_selection.cpp b/src/bench/coin_selection.cpp index 249b76ee85133..6e0bac9d2f492 100644 --- a/src/bench/coin_selection.cpp +++ b/src/bench/coin_selection.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2012-2022 The Bitcoin Core developers +// Copyright (c) 2012-2022 The Vincoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -42,7 +42,7 @@ static void addCoin(const CAmount& nValue, const CWallet& wallet, std::vector +#include #endif #include #include #if defined(HAVE_CONSENSUS_LIB) -#include