14 KiB
Bitcoin Core version 0.13.1 is now available from:
https://bitcoin.org/bin/bitcoin-core-0.13.1/
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/
Compatibility
Microsoft ended support for Windows XP on April 8th, 2014, an OS initially released in 2001. This means that not even critical security updates will be released anymore. Without security updates, using a bitcoin wallet on a XP machine is irresponsible at least.
In addition to that, with 0.12.x there have been varied reports of Bitcoin Core randomly crashing on Windows XP. It is not clear what the source of these crashes is, but it is likely that upstream libraries such as Qt are no longer being tested on XP.
We do not have time nor resources to provide support for an OS that is end-of-life. From 0.13.0 on, Windows XP is no longer supported. Users are suggested to upgrade to a newer version of Windows, or install an alternative OS that is supported.
No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk, but do not expect it to work: do not report issues about Windows XP to the issue tracker.
Notable changes
Segregated witness soft fork
Segregated witness (segwit) is a soft fork that, if activated, will allow transaction-producing software to separate (segregate) transaction signatures (witnesses) from the rest of the data in a transaction, and to allow miners to place those witnesses outside of the traditional block structure. This provides two immediate benefits:
-
Elimination of malleability: Segregating the witness allows both existing software and upgraded software that receives transactions to calculate the transaction identifier (txid) of segwit-using transactions without referencing the witness. This solves all known cases of unwanted third-party transaction malleability, which is a problem that makes programming Bitcoin wallet software more difficult and which seriously complicates the design of smart contracts for Bitcoin.
-
Capacity increase: Moving witness data outside of the traditional block structure (but still inside a new-style block structure) means new-style blocks can hold more data than older-style blocks, allowing a modest increase to the amount of transaction data that can fit in a block.
Segwit also simplifies the ability to add new features to Bitcoin and improves the efficiency of full nodes, which will help provide long-term benefits to Bitcoin users.
Activation for the segwit soft fork is being managed using BIP9 versionbits. Segwit's version bit is bit 1, and nodes will begin tracking which blocks signal support for segwit on 15 November 2016 (UTC). If 95% of blocks within a 2,016-block retarget period (about two weeks) signal support for segwit, the soft fork will be locked in. After another 2,016 blocks, segwit will activate.
For more information about segwit, please see the segwit FAQ, the segwit wallet developers guide or BIPs 141, 143, 144, and 145. If you're a miner or mining pool operator, please see the versionbits FAQ for information about signaling support for a soft fork.
Null dummy soft fork
Combined with the segwit soft fork is a soft fork that turns a
long-existing network relay policy into a consensus rule. The
OP_CHECKMULTISIG
and OP_CHECKMULTISIGVERIFY
opcodes consume an extra
stack element ("dummy element") after signature validation. The dummy
element is not inspected in any manner, and could be replaced by any
value without invalidating the script.
Because any value can be used for this dummy element, it's possible for a third-party to insert data into other people's transactions, changing the transaction's txid (called transaction malleability) and possibly causing other problems.
Since Bitcoin Core 0.10.0, nodes have defaulted to only relaying and mining transactions whose dummy element was a null value (0x00, also called OP_0). The null dummy soft fork turns this relay rule into a consensus rule both for non-segwit transactions and segwit transactions, so that this method of mutating transactions is permanently eliminated from the network.
Signaling for the null dummy soft fork is done by signaling support for segwit, and the null dummy soft fork will activate at the same time as segwit.
For more information, please see BIP147.
Low-level RPC changes
importprunedfunds
only accepts two required arguments. Some versions accept an optional third arg, which was always ignored. Make sure to never pass more than two arguments.
0.13.1 Change log
Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.
Consensus
- #8636
9dfa0c8
Implement NULLDUMMY softfork (BIP147) (jl2012) - #8848
7a34a46
Add NULLDUMMY verify flag in bitcoinconsensus.h (jl2012) - #8937
8b66659
Define start and end time for segwit deployment (sipa)
RPC and other APIs
- #8581
526d2b0
Drop misleading option in importprunedfunds (MarcoFalke) - #8699
a5ec248
Remove createwitnessaddress RPC command (jl2012) - #8780
794b007
Deprecate getinfo (MarcoFalke) - #8832
83ad563
Throw JSONRPCError when utxo set can not be read (MarcoFalke) - #8884
b987348
getblockchaininfo help: pruneheight is the lowest, not highest, block (luke-jr)
Block and transaction handling
- #8611
a9429ca
Reduce default number of blocks to check at startup (sipa) - #8634
3e80ab7
Add policy: null signature for failed CHECK(MULTI)SIG (jl2012) - #8525
1672225
Do not store witness txn in rejection cache (sipa) - #8499
9777fe1
Add several policy limits and disable uncompressed keys for segwit scripts (jl2012) - #8526
0027672
Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH (jl2012) - #8524
b8c79a0
Precompute sighashes (sipa) - #8651
b8c79a0
Predeclare PrecomputedTransactionData as struct (sipa)
P2P protocol and network code
- #8740
42ea51a
No longer send local address in addrMe (laanwj) - #8427
69d1cd2
Ignorenotfound
P2P messages (laanwj) - #8573
4f84082
Set jonasschnellis dns-seeder filter flag (jonasschnelli) - #8712
23feab1
Remove maxuploadtargets recommended minimum (jonasschnelli) - #8862
7ae6242
Fix a few cases where messages were sent after requested disconnect (theuni) - #8393
fe1975a
Support for compact blocks together with segwit (sipa) - #8282
2611ad7
Feeler connections to increase online addrs in the tried table (EthanHeilman) - #8612
2215c22
Check for compatibility with download in FindNextBlocksToDownload (sipa) - #8606
bbf379b
Fix some locks (sipa) - #8594
ab295bb
Do not add random inbound peers to addrman (gmaxwell) - #8940
5b4192b
Add x9 service bit support to dnsseed.bluematt.me, seed.bitcoinstats.com (TheBlueMatt, cdecker)
Build system
- #8293
fa5b249
Allow building libbitcoinconsensus without any univalue (luke-jr) - #8492
8b0bdd3
Allow building bench_bitcoin by itself (luke-jr) - #8563
147003c
Add configure check for -latomic (ajtowns) - #8626
ea51b0f
Berkeley DB v6 compatibility fix (netsafe) - #8520
75f2065
Remove check foropenssl/ec.h
(laanwj)
GUI
- #8481
d9f0d4e
Fix minimize and close bugs (adlawren) - #8487
a37cec5
Persist the datadir after option reset (achow101) - #8697
41fd852
Fix op order to append first alert (rodasmith) - #8678
8e03382
Fix UI bug that could result in paying unexpected fee (jonasschnelli) - #8911
7634d8e
Translate all files, even if wallet disabled (laanwj) - #8540
1db3352
Fix random segfault when closing "Choose data directory" dialog (laanwj) - #7579
f1c0d78
Show network/chain errors in the GUI (jonasschnelli)
Wallet
- #8443
464dedd
Trivial cleanup of HD wallet changes (jonasschnelli) - #8539
cb07f19
CDB: fix debug output (crowning-) - #8664
091cdeb
Fix segwit-related wallet bug (sdaftuar) - #8693
c6a6291
Add witness address to address book (instagibbs) - #8765
6288659
Remove "unused" ThreadFlushWalletDB from removeprunedfunds (jonasschnelli)
Tests and QA
- #8713
ae8c7df
create_cache: Delete temp dir when done (MarcoFalke) - #8716
e34374e
Check legacy wallet as well (MarcoFalke) - #8750
d6ebe13
Refactor RPCTestHandler to prevent TimeoutExpired (MarcoFalke) - #8652
63462c2
remove root test directory for RPC tests (yurizhykin) - #8724
da94272
walletbackup: Sync blocks inside the loop (MarcoFalke) - #8400
bea02dc
enable rpcbind_test (yurizhykin) - #8417
f70be14
Add walletdump RPC test (including HD- & encryption-tests) (jonasschnelli) - #8419
a7aa3cc
Enable size accounting in mining unit tests (sdaftuar) - #8442
8bb1efd
Rework hd wallet dump test (MarcoFalke) - #8528
3606b6b
Update p2p-segwit.py to reflect correct behavior (instagibbs) - #8531
a27cdd8
abandonconflict: Use assert_equal (MarcoFalke) - #8667
6b07362
Fix SIGHASH_SINGLE bug in test_framework SignatureHash (jl2012) - #8673
03b0196
Fix obvious assignment/equality error in test (JeremyRubin) - #8739
cef633c
Fix broken sendcmpct test in p2p-compactblocks.py (sdaftuar) - #8418
ff893aa
Add tests for compact blocks (sdaftuar) - #8803
375437c
Ping regularly in p2p-segwit.py to keep connection alive (jl2012) - #8827
9bbe66e
Split up slow RPC calls to avoid pruning test timeouts (sdaftuar) - #8829
2a8bca4
Add bitcoin-tx JSON tests (jnewbery) - #8834
1dd1783
blockstore: Switch to dumb dbm (MarcoFalke) - #8835
d87227d
nulldummy.py: Don't run unused code (MarcoFalke) - #8836
eb18cc1
bitcoin-util-test.py should fail if the output file is empty (jnewbery) - #8839
31ab2f8
Avoid ConnectionResetErrors during RPC tests (laanwj) - #8840
cbc3fe5
Explicitly set encoding to utf8 when opening text files (laanwj) - #8841
3e4abb5
Fix nulldummy test (jl2012) - #8854
624a007
Fix race condition in p2p-compactblocks test (sdaftuar) - #8857
1f60d45
mininode: Only allow named args in wait_until (MarcoFalke) - #8860
0bee740
util: Move wait_bitcoinds() into stop_nodes() (MarcoFalke) - #8882
b73f065
Fix race conditions in p2p-compactblocks.py and sendheaders.py (sdaftuar) - #8904
cc6f551
Fix compact block shortids for a test case (dagurval)
Documentation
- #8754
0e2c6bd
Target protobuf 2.6 in OS X build notes. (fanquake) - #8461
b17a3f9
Document return value of networkhashps for getmininginfo RPC endpoint (jlopp) - #8512
156e305
Corrected JSON typo on setban of net.cpp (sevastos) - #8683
8a7d7ff
Fix incorrect file name bitcoin.qrc (bitcoinsSG) - #8891
5e0dd9e
Update bips.md for Segregated Witness (fanquake) - #8545
863ae74
Update git-subtree-check.sh README (MarcoFalke) - #8607
486650a
Fix doxygen off-by-one comments, fix typos (MarcoFalke) - #8560
c493f43
Fix two VarInt examples in serialize.h (cbarcenas) - #8737
084cae9
UndoReadFromDisk works on undo files (rev), not on block files (paveljanik) - #8625
0a35573
Clarify statement about parallel jobs in rpc-tests.py (isle2983) - #8624
0e6d753
build: Mention curl (MarcoFalke) - #8604
b09e13c
build,doc: Update for 0.13.0+ and OpenBSD 5.9 (laanwj) - #8939
06d15fb
Update implemented bips for 0.13.1 (sipa)
Miscellaneous
- #8742
d31ac72
Specify Protobuf version 2 in paymentrequest.proto (fanquake) - #8414,#8558,#8676,#8700,#8701,#8702 Add missing copyright headers (isle2983, kazcw)
- #8899
4ed2627
Fix wake from sleep issue with Boost 1.59.0 (fanquake) - #8817
bcf3806
update bitcoin-tx to output witness data (jnewbery) - #8513
4e5fc31
Fix a type error that would not compile on OSX. (JeremyRubin) - #8392
30eac2d
Fix several node initialization issues (sipa) - #8548
305d8ac
Use__func__
to get function name for output printing (MarcoFalke) - #8291
a987431
[util] CopyrightHolders: Check for untranslated substitution (MarcoFalke)
Credits
Thanks to everyone who directly contributed to this release:
- adlawren
- Alexey Vesnin
- Anders Øyvind Urke-Sætre
- Andrew Chow
- Anthony Towns
- BtcDrak
- Chris Stewart
- Christian Barcenas
- Christian Decker
- Cory Fields
- crowning-
- Dagur Valberg Johannsson
- Ethan Heilman
- fanquake
- Gaurav Rana
- Gregory Maxwell
- instagibbs
- isle2983
- Jameson Lopp
- Jeremy Rubin
- jnewbery
- Johnson Lau
- Jonas Schnelli
- jonnynewbs
- Justin Camarena
- Kaz Wesley
- leijurv
- Luke Dashjr
- MarcoFalke
- Marty Jones
- Matt Corallo
- Michael Ford
- Pavel Janík
- Pieter Wuille
- rodasmith
- Sev
- Suhas Daftuar
- whythat
- Wladimir J. van der Laan
As well as everyone that helped translating on Transifex.