Bitcoin Core version 0.10.0 is not available for security reasons:
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:
Bitcoin.org is a community funded project, donations are appreciated and used to improve the website.
Donate to Bitcoin.org
Use this QR code or address below
16 February 2015
Bitcoin Core version 0.10.0 is not available for security reasons:
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:
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).
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.
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’.getchaintips lists all known branches of the block chain,
including those we only have headers for.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.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
1.2.3.4 or fe80::0012:3456:789a:bcde)1.2.3.0/24 or fe80::0000/64)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).
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:
-txindex): http://localhost:8332/rest/tx/HASH.EXTIn 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.
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).
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
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.
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 or alternative node implementations.
This library is called libbitcoinconsensus.so (or, .dll for Windows).
Its interface is defined in the C header 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 flagsbitcoinconsensus_version returns the API version, currently at an experimental 0The functionality is planned to be extended to e.g. UTXO management in upcoming releases, but the interface for existing methods should remain stable.
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.
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.
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.
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.
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 localhostb641c9c Fix addnode “onetry”: Connect with OpenNetworkConnection171ca77 estimatefee / estimatepriority RPC methodsb750cf1 Remove cli functionality from bitcoindf6984e8 Add “chain” to getmininginfo, improve help in getblockchaininfo99ddc6c Add nLocalServices info to RPC getinfocf0c47b Remove getwork() RPC call2a72d45 prioritisetransaction <txid> <priority delta> <priority tx fee>e44fea5 Add an option -datacarrier to allow users to disable relaying/mining data carrier transactions2ec5a3d Prevent easy RPC memory exhaustion attackd4640d7 Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation83f3543 Added argument to listaccounts to include watchonly addresses952877e Showing ‘involvesWatchonly’ property for transactions returned by ‘listtransactions’ and ‘listsinceblock’. It is only appended when the transaction involves a watchonly addressd7d5d23 Added argument to listtransactions and listsinceblock to include watchonly addressesf87ba3d added includeWatchonly argument to ‘gettransaction’ because it affects balance calculation0fa2f88 added includedWatchonly argument to listreceivedbyaddress/…account6c37f7f getrawchangeaddress: fail when keypool exhausted and wallet lockedff6a7af getblocktemplate: longpolling supportc4a321f Add peerid to getpeerinfo to allow correlation with the logs1b4568c Add vout to ListTransactions outputb33bd7a Implement “getchaintips” RPC command to monitor blockchain forks733177e Remove size limit in RPC client, keep it in server6b5b7cb Categorize rpc help overview6f2c26a Closely track mempool byte total. Add “getmempoolinfo” RPCaa82795 Add detailed network info to getnetworkinfo RPC01094bd Don’t reveal whether password is <20 or >20 characters in RPC57153d4 rpc: Compute number of confirmations of a block from block heightff36cbe getnetworkinfo: export local node’s client sub-version stringd14d7de SanitizeString: allow ‘(‘ and ‘)’31d6390 Fixed setaccount accepting foreign addressb5ec5fe update getnetworkinfo help with subversionad6e601 RPC additions after headers-first33dfbf5 rpc: Fix leveldb iterator leak, and flush before gettxoutsetinfo2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize optionf877aaa submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlocke69a587 submitblock: Support for returning specific rejection reasonsaf82884 Add “warmup mode” for RPC servere2655e0 Add unauthenticated HTTP REST interface to public blockchain data683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server44b4c0d signrawtransaction: validate private key9765a50 Implement BIP 23 Block Proposalf9de17e Add warning comment to getinfoCommand-line options:
ee21912 Use netmasks instead of wildcards for IP address matchingdeb3572 Add -rpcbind option to allow binding RPC port on a specific interface96b733e Add -version option to get just the version1569353 Add -stopafterblockimport option77cbd46 Let -zapwallettxes recover transaction meta data1c750db remove -tor compatibility code (only allow -onion)4aaa017 rework help messages for fee-related options4278b1d Clarify error message when invalid -rpcallowip6b407e4 -datadir is now allowed in config filesbdd5b58 Add option -sysperms to disable 077 umask (create new files with system default umask)cbe39a3 Add “bitcoin-tx” command line utility and supporting modulesdbca89b Trigger -alertnotify if network is upgrading without youad96e7c Make -reindex cope with out-of-order blocks16d5194 Skip reindexed blocks individuallyec01243 –tracerpc option for regression testsf654f00 Change -genproclimit default to 13c77714 Make -proxy set all network types, avoiding a connect leak57be955 Remove -printblock, -printblocktree, and -printblockindexad3d208 remove -maxorphanblocks config parameter since it is no longer functionalBlock and transaction handling:
7a0e84d ProcessGetData(): abort if a block file is missing from disk8c93bf4 LoadBlockIndexDB(): Require block db reindex if any blk*.dat files are missing77339e5 Get rid of the static chainMostWork (optimization)4e0eed8 Allow ActivateBestChain to release its lock on cs_main18e7216 Push cs_mains down in ProcessBlockfa126ef Avoid undefined behavior using CFlatData in CScript serialization7f3b4e9 Relax IsStandard rules for pay-to-script-hash transactionsc9a0918 Add a skiplist to the CBlockIndex structurebc42503 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 cache5734d4d Only remove actualy failed blocks from setBlockIndexValidd70bc52 Rework block processing benchmark code714a3e6 Only keep setBlockIndexValid entries that are possible improvementsea100c7 Reduce maximum coinscache size during verification (reduce memory usage)4fad8e6 Reject transactions with excessive numbers of sigopsb0875eb 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 synchronizationafc32c5 Fix rebuild-chainstate feature and improve its performancee11b2ce Fix large reorgsed6d1a2 Keep information about all block files in memorya48f2d6 Abstract context-dependent block checking from acceptance7e615f5 Fixed mempool sync after sending a transaction51ce901 Improve chainstate/blockindex disk writing policya206950 Introduce separate flushing modes9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true868d041 Remove coinbase-dependant transactions during reorg723d12c Remove txn which are invalidated by coinbase maturity during reorg0cb8763 Check against MANDATORY flags prior to accepting to mempool8446262 Reject headers that build on an invalid parent008138c Bugfix: only track UTXO modification after lookupP2P protocol and network code:
f80cffa Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY failsc30329a Add testnet DNS seed of Alex Kotenko45a4baf Add testnet DNS seed of Andreas Schildbachf1920e8 Ping automatically every 2 minutes (unconditionally)806fd19 Allocate receive buffers in on the fly6ecf3ed Display unknown commands receivedaa81564 Track peers’ available blockscaf6150 Use async name resolving to improve net thread responsiveness9f4da19 Use pong receive time rather than processing time0127a9b remove SOCKS4 support from core and GUI, use SOCKS540f5cb8 Send rejects and apply DoS scoring for errors in direct block validationdc942e6 Introduce whitelisted peersc994d2e prevent SOCKET leak in BindListenPort()a60120e Add built-in seeds for .onion60dc8e4 Allow -onlynet=onion to be used3a56de7 addrman: Do not propagate obviously poor addresses onto the network6050ab6 netbase: Make SOCKS5 negotiation interruptible604ee2a Remove tx from AlreadyAskedFor list once we receive it, not when we process itefad808 Avoid reject message feedback loops71697f9 Separate protocol versioning from clientversion20a5f61 Don’t relay alerts to peers before version negotiationb4ee0bd Introduce preferred download peers845c86d Do not use third party services for IP detection12a49ca Limit the number of new addressses to accumulate35e408f Regard connection failures as attempt for addrmana3a7317 Introduce 10 minute block download timeout3022e7d Require sufficent priority for relay of free transactions58fda4d Update seed IPs, based on bitcoin.sipa.be crawler data18021d0 Remove bitnodes.io from dnsseeds.Validation:
6fd7ef2 Also switch the (unused) verification code to low-s instead of even-s584a358 Do merkle root and txid duplicates check simultaneously217a5c9 When transaction outputs exceed inputs, show the offending amounts so as to aid debuggingf74fc9b Print input index when signature validation fails, to aid debugging6fd59ee script.h: set_vch() should shift a >32 bit valued752ba8 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 logging219a147 script: check ScriptError values in script tests0391423 Discourage NOPs reserved for soft-fork upgrades98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode307f7d4 Report script evaluation failures in log and reject messagesace39db consensus: guard against openssl’s new strict DER checks12b7c44 Improve robustness of DER recoding code76ce5c8 fail immediately on an empty signatureBuild system:
f25e3ad Fix build in OS X 10.965e8ba4 build: Switch to non-recursive make460b32d build: fix broken boost chrono check on some platforms9ce0774 build: Fix windows configure when using –with-qt-libdirea96475 build: Add mention of –disable-wallet to bdb48 error messages1dec09b depends: add shared dependency builderc101c76 build: Add –with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fixe432a5f build: add option for reducing exports (v2)6134b43 Fixing condition ‘sabotaging’ MSVC buildaf0bd5e osx: fix signing to make Gatekeeper happy (again)a7d1f03 build: fix dynamic boost check when –with-boost= is usedd5fd094 build: fix qt test build when libprotobuf is in a non-standard path2cf5f16 Add libbitcoinconsensus library914868a build: add a deterministic dmg signer2d375fe depends: bump openssl to 1.0.1kb7a4ecc Build: Only check for boost when building code that requires itWallet:
b33d1f5 Use fee/priority estimates in wallet CreateTransaction4b7b1bb Sanity checks for estimatesc898846 Add support for watch-only addressesd5087d1 Use script matching rather than destination matching for watch-onlyd88af56 Fee fixesa35b55b Dont run full check every time we decrypt wallet3a7c348 Fix make_change to not create half-satoshisf606bb9 fix a possible memory leak in CWalletDB::Recover870da77 fix possible memory leaks in CWallet::EncryptWalletccca27a Watch-only fixes9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshisa53fd41 Deterministic signing15ad0b5 Apply AreSane() checks to the fees from the network11855c1 Enforce minRelayTxFee on wallet created tx and add a maxtxfee optionGUI:
c21c74b osx: Fix missing dock menu with qt5b90711c Fix Transaction details shows wrong To:516053c Make links in ‘About Bitcoin Core’ clickablebdc83e8 Ensure payment request network matches client network65f78a1 Add GUI view of peer information06a91d9 VerifyDB progress reportingfe6bff2 Add BerkeleyDB version info to RPCConsoleb917555 PeerTableModel: Fix potential deadlock. #4296dff0e3b Improve rpc console history behavior95a9383 Remove CENT-fee-rule from coin control completely56b07d2 Allow setting listen via GUId95ba75 Log messages with type>QtDebugMsg as non-debug8969828 New status bar Unit Display Control and related changes674c070 seed OpenSSL PNRG with Windows event data509f926 Payment request parsing on startup now only changes network if a valid network name is specifiedacd432b Prevent balloon-spam after rescan7007402 Implement SI-style (thin space) thoudands separator91cce17 Use fixed-point arithmetic in amount spinboxbdba2dd Remove an obscure option no-one cares aboutbd0aa10 Replace the temporary file hack currently used to change Bitcoin-Qt’s dock icon (OS X) with a buffer-based solution94e1b9e Re-work overviewpage UI8bfdc9a Better looking trayiconb197bf3 disable tray interactions when client model set to 01c5f0af Add column Watch-only to transactions list21f139b Fix tablet crash. closes #4854e84843c Broken addresses on command line no longer trigger testneta49f11d Change splash screen to normal window1f9be98 Disable App Nap on OSX 10.9+27c3e91 Add proxy to options overridden if necessary4bd1185 Allow “emergency” shutdown during startupd52f072 Don’t show wallet options in the preferences menu when running with -disablewallet6093aa1 Qt: QProgressBar CPU-Issue workaround0ed9675 [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 feec1c9d5b Add Smartfee to GUIe0a25c5 Make askpassphrase dialog behave more sanely94b362d On close of splashscreen interrupt verifyDBb790d13 English translation update8543b0d Correct tooltip on address book pageTests:
b41e594 Fix script test handling of empty scriptsd3a33fc Test CHECKMULTISIG with m == 0 and n == 029c1749 Let tx (in)valid tests use any SCRIPT_VERIFY flag6380180 Add rejection of non-null CHECKMULTISIG dummy values21bf3d2 Add tests for BoostAsioToCNetAddrb5ad5e7 Add Python test for -rpcbind and -rpcallowip9ec0306 Add CODESEPARATOR/FindAndDelete() tests75ebced Added many rpc wallet tests0193fb8 Allow multiple regression tests to run at once92a6220 Hook up sanity checks3820e01 Extend and move all crypto tests to crypto_tests.cpp3f9a019 added list/get received by address/ account testsa90689f Remove timing-based signature cache unit test236982c Add skiplist unit testsf4b00be Add CChain::GetLocator() unit testb45a6e8 Add test for getblocktemplate longpollingcdf305e Set -discover=0 in regtest frameworked02282 additional test for OP_SIZE in script_valid.json0072d98 script tests: BOOLAND, BOOLOR decode to integer833ff16 script tests: values that overflow to 0 are true4cac5db script tests: value with trailing 0x00 is true89101c6 script test: test case for 5-byte boolsd2d9dc0 script tests: add tests for CHECKMULTISIG limitsd789386 Add “it works” test for bitcoin-txdf4d61e Add bitcoin-tx testsaa41ac2 Test IsPushOnly() with invalid push6022b5d Make script_{valid,invalid}.json validation flags configurable8138cbe Add automatic script test generation, and actual checksig testsed27e53 Add coins_tests with a large randomized CCoinViewCache test9df9cf5 Make SCRIPT_VERIFY_STRICTENC compatible with BIP62dcb9846 Extend getchaintips RPC test554147a Ensure MINIMALDATA invalid tests can only fail one waydfeec18 Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule2b62e17 Clearly separate PUSHDATA and numeric argument MINIMALDATA tests16d78bd Add valid invert of invalid every numeric opcode testsf635269 tests: enable alertnotify test for Windows7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment5122ea7 tests: fix forknotify.py on windowsfa7f8cd tests: remove old pull-tester scripts7667850 tests: replace the old (unused since Travis) tests with new rpc test scriptsf4e0aef Do signature-s negation inside the tests1837987 Optimize -regtest setgenerate block generation2db4c8a Fix node ranges in the test frameworka8b2ce5 regression test only setmocktime RPC calldaf03e7 RPC tests: create initial chain with specific timestamps8656dbb Port/fix txnmall.sh regression testca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation7357893 Prioritize and display -testsafemode status in UIf321d6b Add key generation/verification to ECC sanity check132ea9b miner_tests: Disable checkpoints so they don’t fail the subsidy-change testbc6cb41 QA RPC tests: Add tests block block proposalsf67a9ce Use deterministically generated script tests11d7a7d [RPC] add rpc-test for http keep-alive (persistent connections)34318d7 RPC-test based on invalidateblock for mempool coinbase spends76ec867 Use actually valid transactions for script testsc8589bf Add actual signature testse2677d7 Fix smartfees test for change to relay policy263b65e tests: run sanity checks in tests tooMiscellaneous:
122549f Fix incorrect checkpoint data for testnet35bd02cf Log used config file to debug.log on startup68ba85f Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated commentse5ee8f0 Remove -beta suffix38405ac Add comment regarding experimental-use service bitsbe873f6 Issue warning if collecting RandSeed data failed8ae973c Allocate more space if necessary in RandSeedAddPerfMon675bcd5 Correct comment for 15-of-15 p2sh script sizefda3fed libsecp256k1 integration2e36866 Show nodeid instead of addresses in log (for anonymity) unless otherwise requestedcd01a5e Enable paranoid corruption checks in LevelDB >= 1.169365937 Add comment about never updating nTimeOffset past 199 samples403c1bf contrib: remove getwork-based pyminer (as getwork API call has been removed)0c3e101 contrib: Added systemd .service file in order to help distributions integrate bitcoind0a0878d doc: Add new DNSseed policy2887bff Update coding style and add .clang-format5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scopeb4a72a7 contrib/linearize: split output files based on new-timestamp-year or max-file-sizee982b57 Use explicit fflush() instead of setvbuf()234bfbf contrib: Add init scripts and docs for Upstart and OpenRC01c2807 Add warning about the merkle-tree algorithm duplicate txid flawd6712db Also create pid file in non-daemon mode772ab0e contrib: use batched JSON-RPC in linarize-hashes (optimization)7ab4358 Update bash-completion for v0.106e6a36c contrib: show pull # in prompt for github-merge script5b9f842 Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293)4e7c219 Catch UTXO set read errors and shutdown867c600 Catch LevelDB errors during flush06ca065 Fix CScriptID(const CScript& in) in empty script caseThanks to everyone who contributed to this release:
As well as everyone that helped translating on Transifex.