Bitcoin Core version 0.15.0 is now available from:
https://bitcoin.org/bin/bitcoin-core-0.15.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/
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.
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.
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.
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.
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.
Version 0.15 contains a number of significant performance improvements, which make Initial Block Download, startup, transaction and block validation much faster:
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.
-dbcache
) is now actually used as cache. This reduces the flushing
frequency by a factor 2 or more.--enable-experimental-asm
when building.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).
estimatefee
RPC is now deprecated in favor of using only estimatesmartfee
(which is the implementation used by the GUI)estimatesmartfee
RPC interface has been changed (See PR 10707):
nblocks
argument has been renamed to conf_target
(to be consistent with other RPC methods).estimate_mode
argument has been added. This argument takes one of the following strings: CONSERVATIVE
, ECONOMICAL
or UNSET
(which defaults to CONSERVATIVE
).errors
member, which returns errors encountered during processing.estimaterawfee
RPC is added to provide raw fee data. External clients can query and use this data in their own fee estimation logic.Bitcoin Core now supports loading multiple, separate wallets (See PR 8694, PR 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:
bitcoin-cli
. All RPC calls and bitcoin-cli
commands continue to work as before.<RPC IP address>:<RPC port>
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.<RPC IP address>:<RPC port>/wallet/<wallet name>
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
.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.
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).
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). This has the following implications:
-limitfreerelay
and -relaypriority
options which controlled relay of free transactions have therefore been removed.-sendfreetransactions
option has been removed, since almost all miners do not include transactions which do not attach a transaction fee.-blockprioritysize
option has been removed.estimatepriority
and estimatesmartpriority
RPCs have been removed.getmempoolancestors
, getmempooldescendants
, getmempoolentry
and getrawmempool
RPCs no longer return startingpriority
and currentpriority
.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.-printpriority
option has been updated to only output the fee rate and hash of transactions included in a block by the mining code.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). 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.
Version 0.15 introduces several new RPC methods:
abortrescan
stops current wallet rescan, e.g. when triggered by an importprivkey
call (See PR 10208).combinerawtransaction
accepts a JSON array of raw transactions and combines them into a single raw transaction (See PR 10571).estimaterawfee
returns raw fee data so that customized logic can be implemented to analyze the data and calculate estimates. See 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).listwallets
lists wallets which are currently loaded. See the Multi-wallet section
of these release notes for full details (See Multi-wallet support).uptime
returns the total runtime of the bitcoind
server since its last start (See PR 10400).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 for full details.
The new database model no longer stores information about transaction versions of unspent outputs (See Performance improvements). This means that:
gettxout
RPC no longer has a version
field in the response.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.getutxos
REST path no longer reports the txvers
field in JSON format,
and always reports 0 for transaction versions in the binary formatThe estimatefee
RPC is deprecated. Clients should switch to using the estimatesmartfee
RPC, which returns better fee estimates. See 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).
signrawtransaction
can no longer be used to combine multiple transactions into a single transaction. Instead, use the new combinerawtransaction
RPC (See PR 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).
estimatepriority
and estimatesmartpriority
have been removed. See Removal of Coin Age Priority.
The listunspent
RPC now takes a query_options
argument (see PR 8952), which is a JSON object
containing one or more of the following members:
minimumAmount
- a number specifying the minimum value of each UTXOmaximumAmount
- a number specifying the maximum value of each UTXOmaximumCount
- a number specifying the minimum number of UTXOsminimumSumAmount
- a number specifying the minimum sum value of all UTXOsThe getmempoolancestors
, getmempooldescendants
, getmempoolentry
and getrawmempool
RPCs no longer return startingpriority
and currentpriority
. See 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).
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).
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).
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.
The resendwallettransactions
RPC throws an error if the -walletbroadcast
option is set to false (See PR 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)
(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):
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.61a640e
ZMQ example using python3 and asyncio (mcelrath)0496e15
remove 'label' filter for rpc command help (instagibbs)02bd6e9
Fix error codes from various RPCs (jnewbery)598ef9c
Fix RPC failure testing (continuation of #9707) (jnewbery)d34995a
Add mallocinfo mode to getmemoryinfo
RPC (laanwj)3568b30
[Qt][RPC] Autocomplete commands for 'help' command in debug console (achow101)e6156a0
[zmq] Call va_end() on va_start()ed args (kallewoof)7438cea
Trivial: move rpcserialversion into RPC option group (jlopp)350b224
[rpc] Add logging rpc (jnewbery)393160c
[wallet] Rescan abortability (kallewoof)a987def
[net] Allow disconnectnode RPC to be called with node id (jnewbery)0e8499c
doc: Add RPC interface guidelines (laanwj)d4732f3
Add getchaintxstats RPC (sipa)f4b15e2
[doc] Add hint about getmempoolentry to getrawmempool help (kallewoof)96c850c
[RPC] Transaction details in getblock (achow101)9390845
Add query options to listunspent RPC call (pedrobranco)08ac35a
Fix docs (there's no rpc command setpaytxfee) (RHavar)e317c0d
Add witness data output to TxInError messages (instagibbs)4677151
RPC: getblockchaininfo returns BIP signaling statistics (pinheadmz)ef2d062
Fix bumpfee rpc "errors" return value (ryanofsky)39039b1
[RPC] getmempoolinfo mempoolminfee is a BTC/KB feerate (instagibbs)296928e
rpc: Add listen address to incoming connections in getpeerinfo
(laanwj)08d0390
Fix importmulti failure to return rescan errors (ryanofsky)9fec4da
Add friendly output to dumpwallet (aideca)16f6c98
Replace bytes_serialized with bogosize (sipa)980deaf
RPC/Mining: Restore API compatibility for prioritisetransaction (luke-jr)46311e7
Opt-into-RBF for RPC & bitcoin-tx (luke-jr)9c248e3
Decodehextx scripts sanity check (achow101)fa1f106
Note that the prioritizetransaction dummy value is deprecated, and has no meaning (TheBlueMatt)c94b89e
gettxoutproof() should return consistent result (jnewbery)00350bd
[trivial] Rename unused RPC arguments 'dummy' (jnewbery)b62b4c8
fixed listunspent rpc convert parameter (tnakagawa)bef02fb
Improve wallet rescan API (ryanofsky)1680ee0
[RPC] Add an uptime command that displays the amount of time (in seconds) bitcoind has been running (rvelhote)d81bec7
rpc: Move the generate
RPC call to rpcwallet (laanwj)30bc0f6
REST/RPC example update (Mirobit)9edda0c
[rpc] fix verbose argument for getblock in bitcoin-cli (jnewbery)104f5f2
More economical fee estimates for RBF and RPC options to control (morcos)b27b004
Change API to estimaterawfee (morcos)afd2fca
getbalance example covers at least 6 confirms (instagibbs)75b5643
Better API for estimatesmartfee RPC (morcos)9e8d6a3
Do not allow users to get keys from keypool without reserving them (TheBlueMatt)d445a2c
[RPC] Add a deprecation warning to getinfo's output (achow101)adf170d
[RPC]Move transaction combining from signrawtransaction to new RPC (achow101)041dad9
[RPC] Various rpc argument fixes (instagibbs)6ef3c7e
[rpc] listsinceblock should include lost transactions when parameter is a reorg'd block (kallewoof)8537187
Prevent user from specifying conflicting parameters to fundrawtx (TheBlueMatt)0b11a07
Fix misleading "Method not found" multiwallet errors (ryanofsky)f66c596
[RPC] Fix addwitnessaddress by replacing ismine with producesignature (achow101)627c3c0
Fix amounts formatting in decoderawtransaction
(laanwj)4268426
[wallet] return correct error code from resendwallettransaction (jnewbery)96a63a3
[RPC] trivial: gettxout no longer shows version of tx (FelixWeis)6c2b008
Fix combinerawtransaction RPC help result section (jonasnick)07164bb
[RPC] Only return hex field once in getrawtransaction (achow101)5af6572
Be consistent in calling transactions "replaceable" for Opt-In RBF (TheBlueMatt)a8c5751
Removed redundant parameter from mempool.PrioritiseTransaction (gubatron)1efc99c
Remove harmless read of unusued priority estimates (morcos)b7547fa
Remove block file location upgrade code (benma)30ff3a2
Remove coin age priority and free transactions - implementation (morcos)47510ad
Remove min reasonable fee (morcos)c73af54
Switch CCoinsMap from boost to std unordered_map (sipa)2a183de
Control mempool persistence using a command line parameter (jnewbery)318ea50
Better fee estimates (morcos)bee3529
Bugfix: PrioritiseTransaction updates the mempool tx counter (sdaftuar)1088b02
Switch chainstate db and cache to per-txout model (sipa)c2ab38b
Always log debug information for fee calculation in CreateTransaction (morcos)efbcf2b
Use REJECT_DUPLICATE for already known and conflicted txn (sipa)b3eb0d6
Few Minor per-utxo assert-semantics re-adds and tweak (TheBlueMatt)8c841a3
doc: Remove outdated minrelaytxfee comment (MarcoFalke)234ffc6
Change semantics of HaveCoinInCache to match HaveCoin (morcos)7878353
Simplify return values of GetCoin/HaveCoin(InCache) (sipa)a381f6a
Remove no longer used mempool.exists(outpoint) (morcos)d4e551a
Use non-atomic flushing with block replay (sipa)30c2130
Clarify CCoinsViewMemPool documentation (TheBlueMatt)90a002e
Address nits from per-utxo change (morcos)6859ad2
Improve wallet fee logic and fix GUI bugs (morcos)754aa02
Force on-the-fly compaction during pertxout upgrade (sipa)d896d5c
Add undocumented -forcecompactdb to force LevelDB compactions (sipa)e4bbd3d
Improved efficiency in COutPoint constructors (mm-s)8d6d43e
Add -stopatheight for benchmarking (sipa)7639d38
netbase: Do not print an error on connection timeouts through proxy (laanwj)5b583ef
Add seed.btc.petertodd.org to mainnet DNS seeds (petertodd)22f609f
Trivial: Debug log ambiguity fix for peer addrs (keystrike)90cb2a2
Enable host lookups for -proxy and -onion parameters (jmcorgan)7b585cf
Clarify assumptions made about when BlockCheck is called (TheBlueMatt)e19586a
[p2p] Send the correct error code in reject messages (jnewbery)eab00d9
Use cached [compact] blocks to respond to getdata messages (TheBlueMatt)a077a90
Check interruptNet during dnsseed lookups (TheBlueMatt)faf2dea
[net] listbanned RPC and QT should show correct banned subnets (jnewbery)314ebdf
[qa] Fixes segwit block relay test after inv-direct-fetch was disabled (sdaftuar)3f57c55
removed unused code in INV message (Greg-Griffith)ae78609
[net] Added SetSocketNoDelay() utility function (tjps)28c6e8d
Net: Improvements to Tor control port parser (str4d)5c63d66
Broadcast address every day, not 9 hours (sipa)400fdd0
Denote functions CNode::GetRecvVersion() and CNode::GetRefCount() as const (pavlosantoniou)67700b3
[P2P] Timeout for headers sync (sdaftuar)8d9f45e
Return early in IsBanned (gmaxwell)de8db47
Net: Fix resource leak in ReadBinaryFile(...) (practicalswift)b33ca14
[net] Avoid possibility of NULL pointer dereference in MarkBlockAsInFlight(...) (practicalswift)2772dc9
net: avoid extra dns query per seed (theuni)9dd6a2b
Avoid unnecessary work in SetNetworkActive (promag)df3a6f4
p2p: Hardcoded seeds update pre-0.15 branch (laanwj)02f4c4a
[net] Fix use of uninitialized value in getnetworkinfo(const JSONRPCRequest&) (practicalswift)c8b62c7
Disconnect network service bits 6 and 8 until Aug 1, 2018 (TheBlueMatt)0e5cff6
Make sure to clean up mapBlockSource if we've already seen the block (theuni)67023e9
CValidationInterface Cleanups (TheBlueMatt)2584925
Remove CValidationInterface::UpdatedTransaction (TheBlueMatt)a6548a4
pass Consensus::Params& to functions in validation.cpp and make them static (mariodian)431a548
Simplify DisconnectBlock arguments/return value (sipa)f94b7d5
Introduce static DoWarning (simplify UpdateTip) (jtimon)2e7d8f8
Fix stopatheight (achow101)2935b46
Cache full script execution results in addition to signatures (TheBlueMatt)21ed30a
Give CValidationInterface Support for calling notifications on the CScheduler Thread (TheBlueMatt)66270a4
Make check to distinguish between orphan txs and old txs more efficient (morcos)7c2400c
nCheckDepth chain height fix (romanornr)16240f4
Add SSE4 optimized SHA256 (sipa)04d395e
Avoid using sizes on non-fixed-width types to derive protocol constants (gmaxwell)2a50b11
Update defaultAssumeValid according to release-process.md (gmaxwell)2361208
Update chain transaction statistics (sipa)6bdf4b3
Avoid masking of difficulty adjustment errors by checkpoints (sipa)cb598cf
Allow non-power-of-2 signature cache sizes (sipa)acd9957
Improve DisconnectTip performance (sdaftuar)f90603a
Remove confusing MAX_BLOCK_BASE_SIZE (gmaxwell)bd92424
Fix some chainstate-init-order bugs (TheBlueMatt)b7296bc
Don't return stale data from CCoinsViewCache::Cursor() (ryanofsky)2507fd5
Fix upgrade cancel warnings (TheBlueMatt)cbdb473
Abstract out the command line options for block assembly (sipa)5f0556d
Remove fallbacks for boost_filesystem < v3 (laanwj)50a2265
gitian: bump descriptors for master (theuni)7ca2f54
Minor update to qrencode package builder (mitchellcash)2cc0df1
release: Windows signing script (theuni)8b789d8
build: Probe MSG_DONTWAIT in the same way as MSG_NOSIGNAL (laanwj)32d1b34
build: Fix typo s/HAVE_DONTWAIT/HAVE_MSG_DONTWAIT (laanwj)90dd9e6
Fix build errors if spaces in path or parent directory (pinheadmz)81da4c7
build: Disable Wshadow warning (laanwj)64962ae
Ignore Doxyfile generated from Doxyfile.in template (paveljanik)0416ea9
Make Boost use std::atomic internally (sipa)27faa6c
build: regenerate bitcoin-config.h as necessary (theuni)8979f45
[scripts] Minor improvements to macdeployqtplus
script (chrisgavin)a26280b
0.15.0 Depends Updates (fanquake)79aeff6
Update contrib/debian to latest Ubuntu PPA upload (TheBlueMatt)d25449f
Bugfix: Only use git for build info if the repository is actually the right one (luke-jr)e654d61
build: silence gcc7's implicit fallthrough warning (theuni)ad1a13e
Avoid printing generic and duplicated "checking for QT" during ./configure (drizzt)8465b68
[depends] expat 2.2.1 (fanquake)db825d2
build: verify that the assembler can handle crc32 functions (theuni)b4d03be
Building Environment: Set ARFLAGS to cr (ReneNyffenegger)91edda8
Explicitly search for bdb5.3 (pstratem)81560b0
random: only use getentropy on openbsd (theuni)1caafa6
Run Qt wallet tests on travis (ryanofsky)e222618
depends: fix fontconfig with newer glibc (theuni)88b1e4b
build: fix missing sse42 in depends builds (theuni)129b03f
gitian: quick hack to fix version string in releases (theuni)919aaf6
Fix compile errors with Qt 5.3.2 and Boost 1.55.0 (ryanofsky)7032021
Fix build warning from #error text (jnewbery)318392c
Check if sys/random.h is required for getentropy (jameshilliard)1a9fd5c
Qt/Intro: Add explanation of IBD process (luke-jr)b00ba62
qt: clean up initialize/shutdown signals (benma)ce01e62
[Qt] Show more significant warning if we fall back to the default fee (jonasschnelli)b9f930b
Add basic Qt wallet test (ryanofsky)a387d3a
Change 'Clear' button string to 'Reset' (da2x)9c7b7cf
[Qt] Add checkbox in the GUI to opt-in to RBF when creating a transaction (ryanofsky)2b477e6
Make qt wallet test compatible with qt4 (ryanofsky)1fa4ae6
Add a button to open the config file in a text editor (ericshawlinux)51833a1
Fix for issues with startup and multiple monitors on windows (AllanDoensen)de01da7
Changed "Send" button default status from true to false (KibbledJiveElkZoo)e96486c
Stop treating coinbase outputs differently in GUI: show them at 1conf (TheBlueMatt)987a6c0
[Qt] Reduce a significant cs_main lock freeze (jonasschnelli)f6f3b58
[qt] Don't call method on null WalletModel object (ryanofsky)a3e756b
[Qt] Don't add arguments of sensitive command to console window (jonasschnelli)95546c8
[GUI] Add OSX keystroke to RPCConsole info (spencerlievens)962cd3f
[Qt] simple fee bumper with user verification (jonasschnelli)e477516
[wallet] remove minimum total fee option (instagibbs)4314544
Add Qt tests for wallet spends & bumpfee (ryanofsky)c1c9a95
Fix broken q4 test build (ryanofsky)64beb13
Overhaul Qt fee bumper (jonasschnelli)7c72fb9
Pass in smart fee slider value to coin control dialog (morcos)4c72cc3
[qt] Avoid potential null pointer dereference in TransactionView::exportClicked() (practicalswift)8fdd23a
[Qt] replace fee slider with a Dropdown, extend conf. targets (jonasschnelli)412b466
[Qt] Use wallet 0 in rpc console if running with multiple wallets (jonasschnelli)a9dd111
qt: Increase BLOCK_CHAIN_SIZE constants (laanwj)e292140
Slightly overhaul NSI pixmaps (jonasschnelli)0c3542e
Allow to cancel the txdb upgrade via splashscreen keypress 'q' (jonasschnelli)f7ec7cf
Add test for CWalletTx::GetImmatureCredit() returning stale values (ryanofsky)56ab672
[wallet] Remove redundant initialization (practicalswift)fa625b0
Document CWalletTx::mapValue entries and remove erase of nonexistent "version" entry (ryanofsky)72fb515
Disallow copy constructor CReserveKeys (instagibbs)3178b2c
Factor out CWallet::nTimeSmart computation into a method (ryanofsky)afcd7c0
Add safe flag to listunspent result (NicolasDorier)c49355c
Initialize nRelockTime (pstratem)3d857f3
Save watch only key timestamps when reimporting keys (ryanofsky)f34cdcb
Use internal HD chain for change outputs (hd split) (jonasschnelli)e183ea2
Wallet: reduce excess logic InMempool() (kewde)c9ff4f8
Remove SYNC_TRANSACTION_NOT_IN_BLOCK magic number (jnewbery)64c45aa
wallet: Use boost to more portably ensure -wallet specifies only a filename (luke-jr)c91ca0a
Improve ScanForWalletTransactions return value (ryanofsky)fa1ac28
Wallet database handling abstractions/simplifications (laanwj)c29a0d4
[wallet] [moveonly] Check non-null pindex before potentially referencing (kallewoof)a550f6e
Cleanup: reduce to one GetMinimumFee call signature (morcos)e2b99b1
[Wallet] unset change position when there is no change (instagibbs)d3dce0e
Avoid reading the old hd master key during wallet encryption (TheBlueMatt)18c9deb
rpc/wallet: Workaround older UniValue which returns a std::string temporary for get_str (luke-jr)94e5227
[wallet] Securely erase potentially sensitive keys/values (tjps)ea1fd43
[test] Add test for getmemoryinfo (jimmysong)ce8176d
[qt] Move some WalletModel functions into CWallet (ryanofsky)7cc2c67
Fix bumpfee test after #10449 (ryanofsky)098b01d
Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (ryanofsky)0747d33
Simplify feebumper minimum fee code slightly (ryanofsky)2805d60
[wallet] Remove unused variables (practicalswift)177433a
Basic multiwallet support (luke-jr)7a74f88
Supress struct/class mismatch warnings introduced in #10284 (paveljanik)209eef6
Don't create change at dust limit (morcos)ed88e31
Use method name via func macro (darksh1ne)e8b9523
Add change output if necessary to reduce excess fee (morcos)1c011ff
Properly forbid -salvagewallet and -zapwallettxes for multi wallet (morcos)5cfdda2
Track keypool entries as internal vs external in memory (TheBlueMatt)bf0a08b
[wallet] fix zapwallettxes interaction with persistent mempool (jnewbery)0b01935
Batch flushing operations to the walletdb during top up and increase keypool size (gmaxwell)7b6e8bc
No longer ever reuse keypool indexes (TheBlueMatt)bde4f93
Multiwallet: simplest endpoint support (jonasschnelli)9022aa3
Redefine Dust and add a discard_rate (morcos)bf3b742
Rename -usewallet to -rpcwallet (morcos)420238d
[wallet] [tests] Add listwallets RPC, include wallet name in getwalletinfo
and add multiwallet test (jnewbery)70888a3
Reject invalid wallets (promag)af56397
Clarify help message for -discardfee (morcos)2e857bb
Eliminate fee overpaying edge case when subtracting fee from recipients (morcos)fa64636
Fix resendwallettransactions assert failure if -walletbroadcast=0 (TheBlueMatt)653a46d
Basic keypool topup (jnewbery)9fe1f6b
Add length check for CExtKey deserialization (jonasschnelli, guidovranken)4ef8374
[wallet] Keypool topup cleanups (jnewbery)e51bb71
Fix rounding bug in calculation of minimum change (morcos)779f2f9
Use CScheduler for wallet flushing, remove ThreadFlushWalletDB (TheBlueMatt)4e3efd4
ApproximateBestSubset should take inputs by reference, not value (RHavar)8efd1c8
Remove unused module from rpc-tests (34ro)7ff4a53
Improve rpc-tests.py (jnewbery)7146d96
Add --exclude option to rpc-tests.py (jnewbery)d6064a8
Fix docstrings in qa tests (jnewbery)a13a417
qa: Set correct path for binaries in rpc tests (MarcoFalke)6206252
Extra test vector for BIP32 (sipa)88c2ae3
[Trivial] Adding label for amount inside of tx_valid/tx_invalid.json (Christewart)36afd4d
travis: Verify commits only for one target (MarcoFalke)58861ad
test: Fail if InitBlockIndex fails (laanwj)67c5cc1
Avoid -Wshadow warnings in wallet_tests (ryanofsky)48c3429
[qa] assert_start_raises_init_error (NicolasDorier)9d5fcbf
Fix BIP68 activation test (jnewbery)d32581c
bench: Assert that division by zero is unreachable (practicalswift)c78adbf
Fix segwit getblocktemplate test (jnewbery)d5ce14e
tests: Delete unused function _rpchost_to_args (laanwj)19be26a
[test] Avoid reading a potentially uninitialized variable in tx_invalid-test (transaction_tests.cpp) (practicalswift)ac23a7c
Improve logging in bctest.py if there is a formatting mismatch (jnewbery)8910b47
[qa] Add logging to test_framework.py (jnewbery)21833f9
Fix extended rpc tests broken by #9768 (jnewbery)857d1e1
QA: getblocktemplate_longpoll.py should always use >0 fee tx (sdaftuar)3cc13ea
Improve readability of segwit.py, smartfees.py (sdaftuar)2c781fb
CCheckQueue Unit Tests (JeremyRubin)9225de2
[trivial] Use log.info() instead of print() in remaining functional test cases (jnewbery)3192e52
Reorganise qa directory (jnewbery)02d64bd
combine_logs.py - aggregates log files from multiple bitcoinds during functional tests (jnewbery)dfef6b6
[tests] Remove unused variables and imports (practicalswift)a230b05
Make bumpfee tests less fragile (ryanofsky)ca20923
[test] Allow functional test cases to be skipped (jnewbery)a0b1e57
[test] Run extended tests once daily in Travis (jnewbery)1118493
[QA] Fix typo in fundrawtransaction test (NicolasDorier)c044f03
[QA] Renaming rawTx into rawtx (NicolasDorier)b1a4f27
Actually run assumevalid.py (jnewbery)c412fd8
Suppress noisy output from qa tests in Travis (jnewbery)79af9fb
Check that all test scripts in test/functional are being run (jnewbery)5b029aa
[qa] combine_logs: Use ordered list for logfiles (MarcoFalke)f2734c2
Remove unused variable. Remove accidental trailing semicolons in Python code (practicalswift)8ac8041
Remove SingleNodeConnCB (jnewbery)edc62c9
[tests] sync_with_ping should assert that ping hasn't timed out (jnewbery)427d2fd
Speed Up CuckooCache tests (JeremyRubin)12af74b
Remove sources of unreliablility in extended functional tests (jnewbery)ebfd653
[qa] Add setnetworkactive smoke test (MarcoFalke)080d7c7
[trivial] remove unused line in Travis config (jnewbery)df1ca9e
[tests] color test results and sort alphabetically (jnewbery)88799ea
[test] Suppress test logging spam (jnewbery)ed09dd3
Run bitcoin_test-qt under minimal QPA platform (ryanofsky)a27dbc5
[bench] Avoid function call arguments which are pointers to uninitialized values (practicalswift)b44adf9
tests: Fix test_runner return value in case of skipped test (laanwj)d86bb07
[tests] Functional test warnings (jnewbery)9111df9
Tests: Order Python Tests Differently (jimmysong)f3db4c6
Tests: Add test for getdifficulty (jimmysong)2723bcd
[test] Add test for getaddednodeinfo (jimmysong)c530c15
[tests] remove maxblocksinflight.py (functionality covered by other test) (jnewbery)1b25b6d
Move zmq test skipping logic into individual test case (jnewbery)54e2d87
[Tests] Prevent warning: variable 'x' is uninitialized (paveljanik)e0a7e19
[test] Add aborttrescan tests (kallewoof)8254a8a
[test] Add Unit Test for GetListenPort (jimmysong)47535d7
[test] Unit test amount.h/amount.cpp (jimmysong)80c3a73
[test] Add test for gettxout to wallet.py (jimmysong)492d22f
[test] Add tests for getconnectioncount, getnettotals and ping (jimmysong)8f3e384
[tests] Remove func test code duplication (jnewbery)dc8fc0c
[tests] Remove is_network_split from functional test framework (jnewbery)3c5e6c9
[test] Add test for listaddressgroupings (jimmysong)75171f0
Remove unused import. Remove accidental trailing semicolons (practicalswift)83073de
[tests] allow zmq test to be run in out-of-tree builds (jnewbery)e927483
[tests] Fix abandonconflict.py intermittency (jnewbery)170bc2c
[tests] fix wait_for_inv() (jnewbery)fff72de
[tests] Add node methods to test framework (jnewbery)23d78c4
test: Add elapsed time to RPC tracing (laanwj)6a796b2
[tests] Improve mempool_persist test (jnewbery)776ba23
[tests] Update Unit Test for addrman.h/addrman.cpp (jimmysong)7ee5236
[tests] increase timeouts in sendheaders test (jnewbery)f6241b3
qa: disablewallet: Check that wallet is really disabled (MarcoFalke)4b766fc
[tests] Clean up addrman_tests.cpp (jimmysong)87abe20
[test] Add test for getnetworkhashps (jimmysong)8bd16ee
[tests] fix disconnect_ban intermittency (jnewbery)5411997
qa: Warn when specified test is not found (MarcoFalke)0542978
tests: Correct testcase in script_tests.json for large number OP_EQUAL (laanwj)6b99daf
tests: fix spurious addrman test failure (theuni)8e57256
[tests] improve tmpdir structure (jnewbery)217b416
[tests] Speed up fuzzing by ~200x when using afl-fuzz (practicalswift)b4b057a
Add test for empty chain and reorg consistency for gettxoutsetinfo (gmaxwell)1aefc94
[tests] skipped tests should clean up after themselves (jnewbery)329fc1d
[tests] functional tests should call BitcoinTestFramework start/stop node methods (jnewbery)e103b3f
Bugfix: missing == 0 after randrange (sipa)c871f32
[test] Add test for getchaintxstats (jimmysong)bea5b00
Remove xvfb configuration from travis (ryanofsky)30853e1
[qa] fundrawtx: Fix shutdown race (MarcoFalke)300f8e7
tests: Add FindEarliestAtLeast test for edge cases (ryanofsky)75e898c
Share config between util and functional tests (jnewbery)e801084
Use FastRandomContext for all tests (sipa)6c2d81f
[tests] Remove printf(...) (practicalswift)71ab6e5
[tests] Use FastRandomContext instead of boost::random::{mt19937,uniform_int_distribution} (practicalswift)6702617
[Tests] Wallet encryption functional tests (achow101)643fa0b
[tests] various improvements to zmq_test.py (jnewbery)d083bd9
[tests] Use cookie auth instead of rpcuser and rpcpassword (achow101)c68a9a6
qa: Add stopatheight test (MarcoFalke)4bc853b
[qa] util: Check return code after closing bitcoind proc (MarcoFalke)e0a7801
Initialize randomness in benchmarks (achow101)7c87a9c
The young person's guide to the test_framework (jnewbery)acb1153
[qa] blockchain: Pass on closed connection during generate call (MarcoFalke)416af3e
[qa] Bugfix: allow overriding extra_args in ComparisonTestFramework (sdaftuar)65cc7aa
Move stop/start functions from utils.py into BitcoinTestFramework (jnewbery)dd07f47
[tests] nits in dbcrash.py (jnewbery)be82498
[test] don't run dbcrash.py on Travis (jnewbery)d3b5870
[tests] fix replace_by_fee.py (jnewbery)1d4805c
Fix multi_rpc test for hosts that dont default to utf8 (TheBlueMatt)e4f226a
[tests] mining functional tests (including regression test for submitblock) (jnewbery)1fc783f
test: Move variable state
down where it is used (paveljanik)fee0d80
Fix mem access violation merkleblock (Christewart)0c173a1
[QA] Avoid running multiwallet.py twice (jonasschnelli)9d5e8f9
test: Make sure wallet.backup is created in temp path (laanwj)f29d5db
[test] Qt: Use _putenv_s instead of setenv on Windows builds (brianmcmichael)5c8eb79
[tests] Fix incorrect memory_cleanse(…) call in crypto_tests.cpp (practicalswift)fa8a063
[tests] Test disconnecting unsupported service bits logic (jnewbery)929fd72
[qa] Rewrite BIP65/BIP66 functional tests (sdaftuar)ecd2135
[bench] Restore format state of cout after printing with std::fixed/setprecision (practicalswift)e5d26e4
qa: Fix inv race in example_test (MarcoFalke)2c811e0
Tests: address placement should be deterministic by default (ReneNyffenegger)ac016e1
test: Add resendwallettransactions functional tests (promag)aeb3175
[qa] Fix block message processing error in sendheaders.py (sdaftuar)0b9fb68
[tests] fixup - make all Travis test runs quiet, non just cron job runs (jnewbery)6ce7337
[tests] test_runner - check unicode (jnewbery)35da2ae
[tests] remove import-abort-rescan.py (jnewbery)bf74d37
[tests] Add option to attach a python debugger if functional test fails (jnewbery)8c2098a
[coverage] Remove subtrees and benchmarks from coverage report (achow101)be8ba2c
Add a tree sha512 hash to merge commits (sipa)d19d45a
util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD (laanwj)ba80a68
Docs: add details to -rpcclienttimeout doc (ian-kelling)53c300f
Docs: correct and elaborate -rpcbind doc (ian-kelling)01b7cda
[contrib] gh-merge: Move second sha512 check to the end (MarcoFalke)4df8213
Verify Tree-SHA512s in merge commits, enforce sigs are not SHA1 (TheBlueMatt)00c13ea
Fix verify-commits on travis and always check top commit's tree (TheBlueMatt)6996e06
Add historical release notes for 0.14.0 (laanwj)fa99663
Fix verify-commits on OSX, update for new bad Tree-SHA512, point travis to different keyservers (TheBlueMatt)8040ae6
util: Properly handle errors during log message formatting (laanwj)cce056d
devtools: Make github-merge compute SHA512 from git, instead of worktree (laanwj)8bcf934
[doc] clarify blockchain size and pruning (askmike)0c17afc
Add updating of chainTxData to release process (sipa)530fcbd
add missing spaces so that markdown recognizes headline (flack)db1ae54
Docs: remove 'noconnect' option (jlopp)8e4f7e7
Update bitcoin.conf with example for pruning (coinables)1a5aaab
Change LogAcceptCategory to use uint32_t rather than sets of strings (gmaxwell)fbf36ca
Fix init README format to render correctly on github (jlopp)a2cd0b0
No need to use OpenSSL malloc/free (tjps)471ed00
Allow debug logs to be excluded from specified component (jnewbery)fadf078
linearize script: Option to use RPC cookie (achow101)a3a2160
[trivial] Log calls to getblocktemplate (jnewbery)928695b
build: Deduplicate version numbers (laanwj)a86255b
[doc] Contributor fixes & new "finding reviewers" section (kallewoof)1428f30
Fix some empty vector references (sipa)95f5e44
Remove Clang workaround for Boost 1.46 (fanquake)cb007e4
Trivial: fix fee estimate write error log message (CryptAxe)bd9ec0e
contrib: github-merge improvements (laanwj)1d75597
[doc] Minor corrections to osx dependencies (fanquake)750c5a5
devtools/net: add a verifier for scriptable changes. Use it to make CNode::id private (theuni)bc64b5a
Use hardware timestamps in RNG seeding (sipa)7f2b9e0
Shadowing warnings are not enabled by default, update doc accordingly (paveljanik)b6ee855
[doc] Removing comments about dirty entries on txmempool (madeo)d0c37ee
[logging] log system time and mock time (jnewbery)b45a52a
doc: Add logging to FinalizeNode() (sdaftuar)526e839
Output line to debug.log when IsInitialBlockDownload latches to false (morcos)15254e9
Add perf counter data to GetStrongRandBytes state in scheduler (TheBlueMatt)55b72f3
Update style guide (sipa)10e8c0a
devtools: Retry after signing fails in github-merge (laanwj)f259263
Make bitcoind invalid argument error message specific (laanwj)6a38b79
contrib: Update location of seeds.txt (laanwj)b6b150b
Fixing typo in rpcdump.cpp help message (keystrike)27b9931
contrib/init/bitcoind.openrcconf: Don't disable wallet by default (luke-jr)00d3692
Update to latest libsecp256k1 master (sipa)cec9e1e
Fix timestamp in fee estimate debug message (morcos)5d034ee
[docs] Use the "domain name setup" image (previously unused) in the gitian docs (practicalswift)a514ac3
Clarify prevector::erase and avoid swap-to-clear (sipa)22ec768
Header include guideline (sipa)fbf5d3b
Improve commit-check-script.sh (sipa)1ad3d4e
scripted-diff: Remove BOOST_FOREACH, Q_FOREACH and PAIRTYPE (jtimon)b63be2c
Use rdrand as entropy source on supported platforms (sipa)228c319
Turn TryCreateDirectory() into TryCreateDirectories() (benma)d76e84a
Make clang-format use C++11 features (e.g. A> instead of A >) (practicalswift)
c38f540
doc: Add 0.14.2 release notes (MarcoFalke)b750b33
contrib/verifybinaries: allow filtering by platform (knocte)01c4b14
Rewrite addrdb with less duplication using CHashVerifier (sipa)232508f
Add an explanation of quickly hashing onto a non-power of two range (gmaxwell)eee398f
Add a comment explaining the use of MAX_BLOCK_BASE_SIZE (gmaxwell)7397af9
fix typo in help text for removeprunedfunds (AkioNak)6dbcc74
scripted-diff: Remove #include (jtimon)
379aed0
document script-based return fields for validateaddress (instagibbs)cef4b5c
Verify binaries from bitcoincore.org and bitcoin.org (TheBlueMatt)ca4c545
Add PR description to merge commit in github-merge.py (sipa)c5904e8
[utils] Allow bitcoin-cli's -rpcconnect option to be used with square brackets (jnewbery)3895e25
Fix incorrect Doxygen tag (@ince → @since). Doxygen parameter name matching (practicalswift)df0793f
add gdb attach process to test README (instagibbs)1124328
Punctuation/grammer fixes in rpcwallet.cpp (stevendlander)78f307b
Properly document target_confirmations in listsinceblock (RHavar)5c003cb
developer-notes: add reference to snake_case and PascalCase (benma)4b5a7ce
Docs: Capitalize bullet points in CONTRIBUTING guide (eklitzke)98aa3f6
Add instructions for parallel gitian builds (coblee)1c4b9b3
0.15 release-notes nits: fix redundancy, remove accidental parenthesis & fix range style (practicalswift)8f0121c
Update contributor names in release-notes.md (Derek701)cbdd338
disable jni in builds (instagibbs)2b59cfb
doc: Update build-openbsd for 6.1 (laanwj)0a6af47
[doc] build-windows: Mention that only trusty works (MarcoFalke)e8ad101
Changing -txindex requires -reindex, not -reindex-chainstate (TheBlueMatt)342b9bc
FastRandomContext improvements and switch to ChaCha20 (sipa)67ed40e
Prevector Quick Destruct (JeremyRubin)ef37f20
Use cpuid intrinsics instead of asm code (sipa)a328904
[LevelDB] Plug leveldb logs to bitcoin logs (NicolasDorier)c5e9e42
Prevent integer overflow in ReadVarInt (gmaxwell)351d0ad
scheduler: fix sub-second precision with boost < 1.50 (theuni)fade788
logging: Fix off-by-one for shrinkdebugfile default (MarcoFalke)c45da32
Fix potential NPD introduced in b297426c (TheBlueMatt)daf3e7d
Maintain state across GetStrongRandBytes calls (sipa)a4fe077
Update to LevelDB 1.20 (sipa)cafe24f
random: fix crash on some 64bit platforms (theuni)2a09a38
Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift)8bc6d1f
Fix resource leak on error in GetDevURandom (corebob)89bb036
init: Factor out AppInitLockDataDirectory and fix startup core dump issue (laanwj)b995a37
Add missing lock in CScheduler::AreThreadsServicingQueue() (TheBlueMatt)659c096
Update to latest Bitcoin patches for LevelDB (sipa)c1c671f
Fix more init bugs (TheBlueMatt)Thanks to everyone who directly contributed to this release:
As well as everyone that helped translating on Transifex.