Bitcoin Core version 0.14.0 is now available from:
https://bitcoin.org/bin/bitcoin-core-0.14.0/
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:
https://github.com/bitcoin/bitcoin/issues
To receive security and update notifications, please subscribe to:
https://bitcoincore.org/en/list/announcements/join/
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, 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.
Validation speed and network propagation performance have been greatly improved, leading to much shorter sync and initial block download times.
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
DeprecatedThe 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"] |
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 for help with using ZMQ in general.
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.
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.
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.
Commands sent over the JSON-RPC interface and through the bitcoin-cli
binary
can now use named arguments. This follows the JSON-RPC 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.
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.
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.
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.
The Alert System was disabled and deprecated 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.
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.
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
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.
GET /rest/getutxos/<checkmempool>/<txid>-<n>/<txid>-<n>
/.../<txid>-<n>.<bin|hex|json>
) responses were changed to return status
code HTTP_BAD_REQUEST
(400) instead of HTTP_INTERNAL_SERVER_ERROR
(500)
when requests contain invalid parameters.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:
-blockmintxfee
option. (defaults to 1000 satoshis/kB)The -minrelaytxfee
option continues to exist but is recommended to be left unset.
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).
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.
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.
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
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.
-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.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.
b77bb95
httpserver: drop boost dependency (theuni)f061415
rest.cpp: change HTTP_INTERNAL_SERVER_ERROR
to HTTP_BAD_REQUEST
(djpnewton)91990ee
Make the dummy argument to getaddednodeinfo optional (sipa)bb843ad
bitcoin-cli: More detailed error reporting (laanwj)7f71a3c
Add preciousblock RPC (sipa)97c7f73
Give RPC commands more information about the RPC request (jonasschnelli)5d2c8e5
Augment getblockchaininfo bip9_softforks data (mruddy)0e22855
importmulti: Avoid using boost::variant::operator!=, which is only in newer boost versions (luke-jr)4d8558a
Getrawtransaction should take a bool for verbose (jnewbery)5754e03
Add support for JSON-RPC named arguments (laanwj)2456a83
Deprecate non-txindex getrawtransaction and better warning (sipa)a65ced1
Return height of last block pruned by pruneblockchain RPC (ryanofsky)7cb024e
Add ‘subtractFeeFromAmount’ option to ‘fundrawtransaction’ (dooglus)2ef52d3
Simplified bumpfee
command (mrbandrews)727a798
Bug-fix: listsinceblock: use fork point as reference for blocks in reorg’d chains (kallewoof)7bfb770
Bumpfee: bugfixes for error handling and feerate calculation (sdaftuar)8d6447e
Set correct metadata on bumpfee wallet transactions (ryanofsky)40f7e27
Better handle invalid parameters to signrawtransaction (TheBlueMatt)edc9e63
Require timestamps for importmulti keys (ryanofsky)d8e8b06
Use importmulti timestamp when importing watch only keys (on top of #9682) (ryanofsky)7a93af8
Return error when importmulti called with invalid address (ryanofsky)ad168ef
Add two hour buffer to manual pruning (morcos)9828f9a
Use 2 hour grace period for key timestamps in importmulti rescans (ryanofsky)48d7e0d
Mark the minconf parameter to move as ignored (sipa)861cb0c
Bugfix: RPC/Mining: GBT should return 1 MB sizelimit before segwit activates (luke-jr)9072395
Return errors from importmulti if complete rescans are not successful (ryanofsky)37d83bb
Consensus: Remove ISM (NicolasDorier)618c9dd
Treat high-sigop transactions as larger rather than rejecting them (sipa)14b7b3f
wallet, policy: ParameterInteraction: Don’t allow 0 fee (MarcoFalke)9bdf526
A few mempool removal optimizations (sipa)101c642
Store mempool and prioritization data to disk (sipa)3c03dc2
Remove priority estimation (morcos)fb15610
Remove unused variable UNLIKELY_PCT
from fees.h (fanquake)434e683
Unset fImporting for loading mempool (morcos)b9a87b4
Set DEFAULT_LIMITFREERELAY
= 0 kB/minute (MarcoFalke)3fbf079
Disable fee estimates for 1-block target (morcos)1eef038
Bump transaction version default to 2 (btcdrak)b99a093
Batch construct batches (sipa)5a70572
Prefer coins that have fewer ancestors, sanity check txn before ATMP (instagibbs)1ce7ede
Fix a bug if the min fee is 0 for FeeFilterRounder (morcos)0fc1c31
Add test for -walletrejectlongchains
(morcos)7dac1e5
Safer modify new coins (morcos)a72f76c
Increase mempool expiry time to 2 weeks (morcos)c252685
Share unused mempool memory with coincache (sipa)f646275
Improve fee estimation (morcos)46b249e
Allow shutdown during LoadMempool, dump only when necessary (jonasschnelli)8c87f17
Assert FRESH validity in CCoinsViewCache::BatchWrite (ryanofsky)e2e624d
Manual block file pruning (mrbandrews)0595042
Fix use-after-free in CTxMemPool::removeConflicts() (sdaftuar)dd98f04
Separate different uses of minimum fees (morcos)71148b8
bugfix save feeDelta instead of priorityDelta in DumpMempool (morcos)4a1dc35
Notify on removal (morcos)9b4d267
Exclude RBF replacement txs from fee estimation (morcos)e2a1a1e
Fix some locks (sipa)6898213
Performance Regression Fix: Pre-Allocate txChanged vector (JeremyRubin)744d265
c++11: Use std::unique_ptr for block creation (domob1812)7490ae8
Make CBlock a vector of shared_ptr of CTransactions (sipa)93566e0
Move orphan processing to ActivateBestChain (TheBlueMatt)46904ee
Make CTransaction actually immutable (sipa)a1dcf2e
Remove txConflicted (morcos)e8cfe1e
Inline CTxInWitness inside CTxIn (sipa)2db4cbc
Make CScript (and prevector) c++11 movable (sipa)ce5c1f4
Release cs_main before calling ProcessNewBlock, or processing headers (cmpctblock handling) (sdaftuar)869781c
A few more CTransactionRef optimizations (sipa)9c9af5a
Use recent-rejects, orphans, and recently-replaced txn for compact-block-reconstruction (TheBlueMatt)3972a8e
Read/write mempool.dat as a binary (paveljanik)1030fa7
Turn net structures into dumb storage classes (theuni)026c6ed
Feeler connections to increase online addrs in the tried table (EthanHeilman)53f8f22
Move AdvertiseLocal debug output to net category (Mirobit)84decb5
Check for compatibility with download in FindNextBlocksToDownload (sipa)5b2ea29
Do not add random inbound peers to addrman (gmaxwell)6423116
Begin encapsulation (theuni)881d7ea
only delete CConnman if it’s been created (theuni)f07424a
Fix maxuploadtarget setting (theuni)d2e4655
Do not set an addr time penalty when a peer advertises itself (gmaxwell)9bc6a6b
Consistent checksum handling (laanwj)1230890
Report NodeId in misbehaving debug (rebroad)3cf496d
Don’t hold cs_main when calling ProcessNewBlock from a cmpctblock (TheBlueMatt)e1d1f57
Make connect=0 disable automatic outbound connections (gmaxwell)fcf61b8
Make a few values immutable, and use deterministic randomness for the localnonce (theuni)3665483
Decouple peer-processing-logic from block-connection-logic (#2) (TheBlueMatt)c8c572f
have CConnman handle message sending (theuni)1e50d22
Allow filterclear messages for enabling TX relay only (rebroad)9f554e0
Hash P2P messages as they are received instead of at process-time (TheBlueMatt)dc6b940
Fix handling of invalid compact blocks (sdaftuar)ab914a6
Network activity toggle (luke-jr)62af164
fNetworkActive is not protected by a lock, use an atomic (jonasschnelli)0c577f2
Remove block-request logic from INV message processing (TheBlueMatt)791b58d
Do not fully sort all nodes for addr relay (sipa)76fec09
Decouple CConnman and message serialization (theuni)3bf06e9
Remove fNetworkNode and pnodeLocalHost (gmaxwell)a7f7651
Attempt reconstruction from all compact block announcements (sdaftuar)a55716a
Break addnode out from the outbound connection limits (gmaxwell)2742568
Add unstored orphans with rejected parents to recentRejects (morcos)8b66bf7
Massive speedup. Net locks overhaul (theuni)3908fc4
Relay compact block messages prior to full block connection (TheBlueMatt)8a445c5
Set peers as HB peers upon full block validation (instagibbs)6696b46
Wake message handling thread when we receive a new block (TheBlueMatt)82274c0
Split CNode::cs_vSend: message processing and message sending (TheBlueMatt)3f9f962
Consistently use GetTimeMicros() for inactivity checks (sdaftuar)fd70211
Send final alert message to older peers after connecting (gmaxwell)36966a1
Clean up a few CConnman cs_vNodes/CNode things (TheBlueMatt)4966917
Fix remaining net assertions (theuni)7821db3
Fix super-unlikely race introduced in 236618061a445d2cb11e72 (TheBlueMatt)33f3b21
Remove bitseed.xf2.org form the dns seed list (jonasschnelli)2447c10
Fix socket close race (theuni)a06ede9
Clean up all known races/platform-specific UB at the time PR was opened (TheBlueMatt)b08656e
Disconnect peers which we do not receive VERACKs from within 60 sec (TheBlueMatt)e87ce95
Fix banning and disallow sending messages before receiving verack (theuni)09c4fd1
Fix rounding privacy leak introduced in #9260 (TheBlueMatt)9346f84
Decouple peer-processing-logic from block-connection-logic (#3) (TheBlueMatt)047ded0
Move static global randomizer seeds into CConnman (sipa)d9ae1ce
net: drop boost::thread_group (theuni)d04aeba
Fix block-connection performance regression (TheBlueMatt)d52ce89
Remove no longer needed check for premature v2 txs (morcos)b68685a
Remove unused CDiskBlockPos*
argument from ProcessNewBlock (TheBlueMatt)b83264d
Better SigCache Implementation (JeremyRubin)e126d0c
Replace FindLatestBefore used by importmulti with FindEarliestAtLeast (gmaxwell)812714f
Introduce assumevalid setting to skip validation presumed valid scripts (gmaxwell)7884956
Don’t overwrite validation state with corruption check (morcos)1e92e04
Harden against mistakes handling invalid blocks (sdaftuar)3c02b95
Update nMinimumChainWork and defaultAssumeValid (gmaxwell)19b0f33
Precompute sighashes (sipa)1825a03
Avoid VLA in hash.h (sipa)6caf3ee
ZeroMQ 4.1.5 && ZMQ on Windows (fanquake)b40e19c
Remove check for openssl/ec.h
(laanwj)de07fdc
Include instructions to extract Mac OS X SDK on Linux using 7zip and SleuthKit (luke-jr)7b98895
Easy to use gitian building script (achow101)f256843
build,doc: Update for 0.13.0+ and OpenBSD 5.9 (laanwj)2663e51
depends: Remove Qt46 package (fanquake)8ea4440
Remove unused Qt 4.6 patch (droark)7e9ab95
Install manpages via make install, also add some autogenerated manpages (nomnombtc)ca69ef4
contrib: delete qt_translations.py
(MarcoFalke)64dc645
share: remove qt/protobuf.pri (MarcoFalke)3166dff
depends: expat 2.2.0, ccache 3.3.1, fontconfig 2.12.1 (fanquake)b694b0d
travis: cross-mac: explicitly enable gui (MarcoFalke)dc64141
depends: Fix Qt compilation with Xcode 8 (fanquake)489a6ab
depends: Add libevent compatibility patch for windows (laanwj)c841816
depends: Boost 1.61.0 (fanquake)f560d95
Do not include env_win.cc
on non-Windows systems (paveljanik)e077e00
Reorder Windows gitian build order to match Linux (Michagogo)078900d
new var DIST_CONTRIB
adds useful things for packagers from contrib (nomnombtc)21e6c6b
depends: Set OSX_MIN_VERSION
to 10.8 (fanquake)018a4eb
Bugfix: Correctly replace generated headers and fail cleanly (luke-jr)a8b2a82
Add compile and link options echo to configure (jonasschnelli)03d85f6
Include cuckoocache header in Makefile (MarcoFalke)bebe369
Fix linker error when configured with –enable-lcov (droark)53442af
Fix ‘make deploy’ for OSX (jonasschnelli)7014506
Let autoconf detect presence of EVP_MD_CTX_new
(luke-jr)bbf193f
Fix qt distdir builds (theuni)ca615e6
depends: libevent 2.1.7rc (fanquake)f9117f2
depends: Dependency updates for 0.14.0 (fanquake)01c4576
depends: Qt 5.7.1 (fanquake)5ac6687
depends: Fix QT build on OSX (fanquake)720b579
depends: Fix cross build for qt5.7 (theuni)6a55515
Add options to override BDB cflags/libs (laanwj)4e1567a
Enable (and check for) 64-bit ASLR on Windows (laanwj)476cc47
Selectively suppress deprecation warnings (jonasschnelli)6d61a2b
release: bump gitian descriptors for a new 0.14 package cache (theuni)749fe95
build: add –enable-werror and warn on vla’s (theuni)99fd85c
build: force a c++ standard to be specified (theuni)c503863
Remove URLs from About dialog translations (fanquake)36404ae
Fix random segfault when closing “Choose data directory” dialog (laanwj)2468292
Show wallet HD state in statusbar (jonasschnelli)62a5a8a
Remove Priority from coincontrol dialog (MarcoFalke)0606f95
Show network/chain errors in the GUI (jonasschnelli)c19f8a4
Show XTHIN in GUI (rebroad)4335d5a
RPC-Console: support nested commands and simple value queries (jonasschnelli)6052d50
Show transaction size in transaction details window (Cocosoft)fec6af7
WalletModel: Expose disablewallet (MarcoFalke)24f72e9
Add out-of-sync modal info layer (jonasschnelli)b2fec4e
Fix ban from qt console (theuni)bf8e68a
sync-overlay: Don’t block during reindex (MarcoFalke)088d1f4
sync-overlay: Don’t show progress twice (MarcoFalke)47ace42
Add “Copy URI” to payment request context menu (luke-jr)f628d9a
Display minimum ping in debug window (rebroad)3e942a7
Qt refactors to better abstract wallet access (luke-jr)7b1bfa3
Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip() (jonasschnelli)d2143dc
Overhaul smart-fee slider, adjust default confirmation target (jonasschnelli)273bde3
Return useful error message on ATMP failure (MarcoFalke)4e57824
Reduce ambiguity of warning message (rebroad)e984730
Multiple Selection for peer and ban tables (achow101)924745d
Make network disabled icon 50% opaque (MarcoFalke)ac489b2
Mention the new network toggle functionality in the tooltip (paveljanik)4d955fc
Show progress overlay when clicking spinner icon (laanwj)e15660c
Show ModalOverlay by pressing the progress bar, allow hiding (jonasschnelli)fde7d99
Fix missed change to WalletTx structure (morcos)2044e37
Bugfix: Qt/RPCConsole: Put column enum in the right places (luke-jr)9851a84
layoutAboutToChange signal is called layoutAboutToBeChanged (laanwj)47e6a19
Console: add security warning (jonasschnelli)db45ad8
Console: allow empty arguments (jonasschnelli)6dc4c43
Qt RPC console: history sensitive-data filter, and saving input line when browsing history (luke-jr)649cf5f
Do not translate tilde character (MarcoFalke)123ea73
Select more files for translation (MarcoFalke)fd7d8c7
CoinControl: Allow non-wallet owned change addresses (jonasschnelli)b250686
Improve progress display during headers-sync and peer-finding (jonasschnelli)5086452
Use nPowTargetSpacing constant (MarcoFalke)d9e4d1d
Fix transaction details output-index to reflect vout index (jonasschnelli)36f9d3a
Qt/Intro: Various fixes (luke-jr)ec66d06
devtools: Handle Qt formatting characters edge-case in update-translations.py (laanwj)a441db0
Bugfix: Qt/Options: Restore persistent “restart required” notice (luke-jr)7d75a5a
Fix segfault crash when shutdown the GUI in disablewallet mode (jonasschnelli)b9c1cd8
Remove CWalletDB*
parameter from CWallet::AddToWallet (pstratem)c7e05b3
Make CWallet::fFileBacked private (pstratem)f916700
Move CWallet::setKeyPool to private section of CWallet (pstratem)0168019
Remove unused code/conditions in ReadAtCursor (jonasschnelli)37ac678
Add option to opt into full-RBF when sending funds (rebase, original by petertodd) (laanwj)a5b20ed
init, wallet: ParameterInteraction() iff wallet enabled (MarcoFalke)02ac669
init: Get rid of some ENABLE_WALLET
(MarcoFalke)a1f8d3e
Wallet: Remove last external reference to CWalletDB (pstratem)886e8c9
init: Get rid of fDisableWallet (MarcoFalke)ab0b411
Add high transaction fee warnings (MarcoFalke)940748b
Move key derivation logic from GenerateNewKey to DeriveNewChildKey (pstratem)e10af96
Set fLimitFree = true (MarcoFalke)c587577
Fix init segfault where InitLoadWallet() calls ATMP before genesis (TheBlueMatt)f2d7056
Add importmulti RPC call (pedrobranco)0dcb888
Return useful error message on ATMP failure (instagibbs)f8723d2
Locked memory manager (laanwj)a4fd8df
Move CWalletDB::ReorderTransactions to CWallet (pstratem)6a1343f
Refactor wallet/init interaction (Reaccept wtx, flush thread) (jonasschnelli)ed0cc50
Change default confirm target from 2 to 6 (laanwj)d1871da
Declare wallet.h functions inline (sipa)f54e460
Make strWalletFile const (jonasschnelli)5ea5e04
Remove unnecessary calls to CheckFinalTx (jonasschnelli)c01f16a
SendMoney: use already-calculated balance (instagibbs)a336d13
Flush wallet after abandontransaction (morcos)38e4887
Addition of ImmatureCreditCached to MarkDirty() (spencerlievens)510c0d9
SetMerkleBranch: remove unused code, remove cs_main lock requirement (jonasschnelli)2a524b8
Wallet refactoring leading up to multiwallet (luke-jr)a7d55c9
Do not perform ECDSA signing in the fee calculation inner loop (gmaxwell)12e3112
Smarter coordination of change and fee in CreateTransaction (morcos)fb75cd0
fundrawtransaction: Keep change-output keys by default, make it optional (jonasschnelli)923dc44
Add missing mempool lock for CalculateMemPoolAncestors (TheBlueMatt)02464da
Make nWalletDBUpdated atomic to avoid a potential race (pstratem)f8af89a
Prevent “overrides a member function but is not marked ‘override’” warnings (laanwj)e43a585
Add missing cs_wallet lock that triggers new lock held assertion (ryanofsky)3097ea4
Disable free transactions when relay is disabled (MarcoFalke)d2c9e4d
Wallet incremental fee (morcos)40c754c
Remove importmulti always-true check (ryanofsky)6e5e5ab
Tests: Use portable #! in python scripts (/usr/bin/env) (ChoHag)740cff5
Use single cache dir for chains (MarcoFalke)21857d2
Replace rpc_wallet_tests.cpp
with python RPC unit tests (pstratem)ddc3080
Minimal fix to slow prevector tests as stopgap measure (JeremyRubin)666eaf0
Address Travis spurious failures (theuni)e31a43c
pull-tester: Only print output when failed (MarcoFalke)14e8f99
tests: Add exception error message for JSONRPCException (laanwj)ef0801b
test: Add option to run bitcoin-util-test.py manually (jnewbery)e66cc1d
Add some verbose logging to bitcoin-util-test.py (jnewbery)0329511
Send segwit-encoded blocktxn messages in p2p-compactblocks (TheBlueMatt)74dc388
Add microbenchmarks to profile more code paths (ryanofsky)6a8be7b
test: Add format-dependent comparison to bctest (laanwj)774db92
Add logging to bitcoin-util-test.py (jnewbery)c9bdf9a
Merge doc/unit-tests.md
into src/test/README.md
(laanwj)ed64bce
Clean up bctest.py and bitcoin-util-test.py (jnewbery)b8f43e3
test: Fix test_random includes (MarcoFalke)faec09b
Testing: Include fRelay in mininode version messages (jnewbery)e536499
Rework sync_*
and preciousblock.py (MarcoFalke)71bc39e
Remove duplicatable duplicate-input check from CheckTransaction (TheBlueMatt)b422913
sync_blocks cleanup (ryanofsky)4333b1c
proxy_test: Calculate hardcoded port numbers (MarcoFalke)e662d28
Make test constant consistent with consensus.h (btcdrak)0de7fd3
Change sync_blocks to pick smarter maxheight (on top of #9196) (ryanofsky)97ec6e5
tx_valid: re-order inputs to how they are encoded (dcousens)e56cf67
bench: Add support for measuring CPU cycles (laanwj)5412c08
unification of Bloom filter representation (s-matthew-english)d7ba4a2
Dump debug logs on travis failures (sdaftuar)9e4bb31
Get rid of duplicate code (MarcoFalke)919db03
Use cached utxo set to fix performance regression (MarcoFalke)ea33f19
Some minor testing cleanups (morcos)8601784
Remove mapOrphanTransactionsByPrev from DoS_tests (sipa)76fcd9d
Wallet needs to stay unlocked for whole test (morcos)5bc209c
Resurrect pstratem’s “Simple fuzzing framework” (laanwj)c6fd923
Add test for rescan feature of wallet key import RPCs (ryanofsky)b416095
Make fuzzer actually test CTxOutCompressor (sipa)0698639
test: Add CCoinsViewCache Access/Modify/Write tests (ryanofsky)0f921e6
Re-enable a blank v1 Tx JSON test (droark)dbc8a8c
Removed unused variable in test, fixing warning (ryanofsky)dce853e
test: Include tx data in EXTRA_DIST
(MarcoFalke)02e5308
test: Include tx data in EXTRA_DIST
(MarcoFalke)054d664
Basic CCheckQueue Benchmarks (JeremyRubin)0b96abc
test: Avoid potential NULL pointer dereference in addrman_tests.cpp
(practicalswift)f895023
Increase a sync_blocks timeout in pruning.py (sdaftuar)a7ea2f8
Actually test assertions in pruning.py (MarcoFalke)e99f0d7
Skip RAII event tests if libevent is built without event_set_mem_functions
(luke-jr)fc67cd2
Init ECC context for test_bitcoin_fuzzy
(gmaxwell)d304fef
bench: Fix initialization order in registration (laanwj)b860915
Fix RPC failure testing (jnewbery)43e8150
Align struct COrphan definition (sipa)599c69a
Fix pruning test broken by 2 hour manual prune window (ryanofsky)260c71c
qa: Check return code when stopping nodes (MarcoFalke)50953c2
tests: Fix dangling pwalletMain pointer in wallet tests (laanwj)eddaa6b
[qa] Make import-rescan.py watchonly check reliable (ryanofsky)806b9e7
Clarify witness branches in transaction.h serialization (dcousens)0306978
Documentation: Building on Windows with WSL (pooleja)c98f6b3
Correct waitforblockheight example help text (fanquake)041331e
Added missing colons in when running help command (anditto)870cd2b
Add documentation for CWalletTx::fFromMe member (ryanofsky)0b73807
Various RPC help outputs updated (Mirobit)07421cf
Clarify getbalance help string to explain interaction with bumpfee (ryanofsky)e30d928
Clarify listunspent amount description (instagibbs)d65a13b
Updated listsinceblock rpc documentation (accraze)ce43630
rpc: Fix transaction size comments and RPC help text (jnewbery)bbd9740
Doc: Add issue template (AmirAbrams)85d4e21
Add default port numbers to REST doc (djpnewton)89de153
build: Mention curl (MarcoFalke)9da7366
Mandatory copyright agreement (achow101)7b05af6
Add privacy recommendation when running hidden service (laanwj)caa2f10
Update the Windows build notes (droark)f928050
Rework docs (MarcoFalke)61d191f
Improve GitHub issue template (fanquake)279bbad
Add missing autogen to example builds (AmirAbrams)d270c30
Add build instructions for FreeBSD (laanwj)c71a654
Update Doxygen configuration file (fanquake)fa1f944
Move comments above bash command in build-unix (AmirAbrams)c4522e7
Improve windows build instructions using Linux subsystem (laanwj)932d02a
contrib: Add README for pgp keys (MarcoFalke)2fae5b9
release-process: Mention GitHub release and archived release notes (MarcoFalke)bae178f
Remove old manpages from contrib/debian in favour of doc/man (fanquake)4105cb6
Trim down the XP notice and say more about what we support (gmaxwell)9851498
Developer docs about existing subtrees (gmaxwell)c2ea1e6
Make rpcauth help message clearer, add example in example .conf (instagibbs)bc9e3ab
contributing: Mention not to open several pulls (luke-jr)7b784cc
Mention Gitian building script in doc (Laudaa) (laanwj)03dd707
Add copyright/patent issues to possible NACK reasons (petertodd)23e03f8
Mention that PPA doesn’t support Debian (anduck)bfc7aad
Mention reporting security issues responsibly (paveljanik)08e0690
Update sendfrom RPC help to correct coin selection misconception (ryanofsky)289204f
Change bitcoin address in RPC help message (marijnfs)7a2d402
util: Update tinyformat (laanwj)5cac8b1
util: CopyrightHolders: Check for untranslated substitution (MarcoFalke)44691f3
contrib: Rework verifybinaries (MarcoFalke)e8ed6eb
contrib: python: Don’t use shell=True (MarcoFalke)fb24d7e
bitcoind: Daemonize using daemon(3) (laanwj)67728a3
Clarify listenonion
(unsystemizer)bae81b8
tools for analyzing, updating and adding copyright headers in source files (isle2983)8c6218a
libconsensus: Add input validation of flags (laanwj)46027e8
Avoid ugly exception in log on unknown inv type (laanwj)2108911
Allow bitcoin-tx to parse partial transactions (jnewbery)74ced54
Clarify CreateTransaction error messages (instagibbs)31bcc66
bitcoin-cli: Make error message less confusing (laanwj)72bf1b3
Update comments in ctaes (sipa)c4b7d4f
Do not evaluate hidden LogPrint arguments (sipa)593a00c
RFC: Improve style for if indentation (sipa)d5d4ad8
Add all standard TXO types to bitcoin-tx (jnewbery)23281a4
Release notes for estimation changes (morcos)f62bc10
Make peer=%d log prints consistent (TheBlueMatt)41cb05c
Add IPv6 support to qos.sh (jamesmacwhite)e9e7993
Docs: Update CONTRIBUTING.md (jnewbery)53ab12d
Remove unused clang format dev script (MarcoFalke)77bd8c4
Increase minimum debug.log size to 10MB after shrink (morcos)7b22e50
Lockedpool fixes (kazcw)7008e28
contrib: Delete spendfrom (MarcoFalke)f2a6e82
Use deprecated MAP_ANON
if MAP_ANONYMOUS
is not defined (paveljanik)1107653
Fix bloom filter init to isEmpty = true (robmcl4)613bda4
LevelDB 1.19 (sipa)5488514
Fix some benign races (TheBlueMatt)5fa7b07
base58: Improve DecodeBase58 performance (wjx)e81df49
Various serialization simplifcations and optimizations (sipa)a143b88
Split up AppInit2 into multiple phases, daemonize after datadir lock errors (laanwj)c79e52a
Fix some benign races in timestamp logging (TheBlueMatt)7f72568
Fix races for strMiscWarning and fLargeWork*Found
, make QT runawayException use GetWarnings (gmaxwell)7aa7004
Clean up mapArgs and mapMultiArgs Usage (TheBlueMatt)cfe41d7
RAII of libevent stuff using unique ptrs with deleters (kallewoof)fac0f30
Disentangle progress estimation from checkpoints and update it (sipa)6012967
Fix various things -fsanitize complains about (sipa)dd163f5
Lock debugging: Always enforce strict lock ordering (try or not) (TheBlueMatt)7c93952
Check verify-commits on pushes to master (TheBlueMatt)a351162
Access WorkQueue::running only within the cs lock (TheBlueMatt)8dee822
Handle unusual maxsigcachesize gracefully (jnewbery)e22c067
Fix Issue #9775 (Check returned value of fopen) (kirit93)69832aa
Terminate immediately when allocation fails (theuni)Thanks to everyone who directly contributed to this release:
As well as everyone that helped translating on Transifex.