|
| 1 | +Bitcoin Core version 0.12.1 is now available from: |
| 2 | + |
| 3 | + <https://bitcoin.org/bin/bitcoin-core-0.12.1/> |
| 4 | + |
| 5 | +This is a new minor version release, including the BIP9, BIP68 and BIP112 |
| 6 | +softfork, various bugfixes and updated translations. |
| 7 | + |
| 8 | +Please report bugs using the issue tracker at github: |
| 9 | + |
| 10 | + <https://github.com/bitcoin/bitcoin/issues> |
| 11 | + |
| 12 | +Upgrading and downgrading |
| 13 | +========================= |
| 14 | + |
| 15 | +How to Upgrade |
| 16 | +-------------- |
| 17 | + |
| 18 | +If you are running an older version, shut it down. Wait until it has completely |
| 19 | +shut down (which might take a few minutes for older versions), then run the |
| 20 | +installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or |
| 21 | +bitcoind/bitcoin-qt (on Linux). |
| 22 | + |
| 23 | +Downgrade warning |
| 24 | +----------------- |
| 25 | + |
| 26 | +### Downgrade to a version < 0.12.0 |
| 27 | + |
| 28 | +Because release 0.12.0 and later will obfuscate the chainstate on every |
| 29 | +fresh sync or reindex, the chainstate is not backwards-compatible with |
| 30 | +pre-0.12 versions of Bitcoin Core or other software. |
| 31 | + |
| 32 | +If you want to downgrade after you have done a reindex with 0.12.0 or later, |
| 33 | +you will need to reindex when you first start Bitcoin Core version 0.11 or |
| 34 | +earlier. |
| 35 | + |
| 36 | +Notable changes |
| 37 | +=============== |
| 38 | + |
| 39 | +First version bits BIP9 softfork deployment |
| 40 | +------------------------------------------- |
| 41 | + |
| 42 | +This release includes a soft fork deployment to enforce [BIP68][], |
| 43 | +[BIP112][] and [BIP113][] using the [BIP9][] deployment mechanism. |
| 44 | + |
| 45 | +The deployment sets the block version number to 0x20000001 between |
| 46 | +midnight 1st May 2016 and midnight 1st May 2017 to signal readiness for |
| 47 | +deployment. The version number consists of 0x20000000 to indicate version |
| 48 | +bits together with setting bit 0 to indicate support for this combined |
| 49 | +deployment, shown as "csv" in the `getblockchaininfo` RPC call. |
| 50 | + |
| 51 | +For more information about the soft forking change, please see |
| 52 | +<https://github.com/bitcoin/bitcoin/pull/7648> |
| 53 | + |
| 54 | +This specific backport pull-request can be viewed at |
| 55 | +<https://github.com/bitcoin/bitcoin/pull/7543> |
| 56 | + |
| 57 | +[BIP9]: https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki |
| 58 | +[BIP68]: https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki |
| 59 | +[BIP112]: https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki |
| 60 | +[BIP113]: https://github.com/bitcoin/bips/blob/master/bip-0113.mediawiki |
| 61 | + |
| 62 | +BIP68 soft fork to enforce sequence locks for relative locktime |
| 63 | +--------------------------------------------------------------- |
| 64 | + |
| 65 | +[BIP68][] introduces relative lock-time consensus-enforced semantics of |
| 66 | +the sequence number field to enable a signed transaction input to remain |
| 67 | +invalid for a defined period of time after confirmation of its corresponding |
| 68 | +outpoint. |
| 69 | + |
| 70 | +For more information about the implementation, see |
| 71 | +<https://github.com/bitcoin/bitcoin/pull/7184> |
| 72 | + |
| 73 | +BIP112 soft fork to enforce OP_CHECKSEQUENCEVERIFY |
| 74 | +-------------------------------------------------- |
| 75 | + |
| 76 | +[BIP112][] redefines the existing OP_NOP3 as OP_CHECKSEQUENCEVERIFY (CSV) |
| 77 | +for a new opcode in the Bitcoin scripting system that in combination with |
| 78 | +[BIP68][] allows execution pathways of a script to be restricted based |
| 79 | +on the age of the output being spent. |
| 80 | + |
| 81 | +For more information about the implementation, see |
| 82 | +<https://github.com/bitcoin/bitcoin/pull/7524> |
| 83 | + |
| 84 | +BIP113 locktime enforcement soft fork |
| 85 | +------------------------------------- |
| 86 | + |
| 87 | +Bitcoin Core 0.11.2 previously introduced mempool-only locktime |
| 88 | +enforcement using GetMedianTimePast(). This release seeks to |
| 89 | +consensus enforce the rule. |
| 90 | + |
| 91 | +Bitcoin transactions currently may specify a locktime indicating when |
| 92 | +they may be added to a valid block. Current consensus rules require |
| 93 | +that blocks have a block header time greater than the locktime specified |
| 94 | +in any transaction in that block. |
| 95 | + |
| 96 | +Miners get to choose what time they use for their header time, with the |
| 97 | +consensus rule being that no node will accept a block whose time is more |
| 98 | +than two hours in the future. This creates a incentive for miners to |
| 99 | +set their header times to future values in order to include locktimed |
| 100 | +transactions which weren't supposed to be included for up to two more |
| 101 | +hours. |
| 102 | + |
| 103 | +The consensus rules also specify that valid blocks may have a header |
| 104 | +time greater than that of the median of the 11 previous blocks. This |
| 105 | +GetMedianTimePast() time has a key feature we generally associate with |
| 106 | +time: it can't go backwards. |
| 107 | + |
| 108 | +[BIP113][] specifies a soft fork enforced in this release that |
| 109 | +weakens this perverse incentive for individual miners to use a future |
| 110 | +time by requiring that valid blocks have a computed GetMedianTimePast() |
| 111 | +greater than the locktime specified in any transaction in that block. |
| 112 | + |
| 113 | +Mempool inclusion rules currently require transactions to be valid for |
| 114 | +immediate inclusion in a block in order to be accepted into the mempool. |
| 115 | +This release begins applying the BIP113 rule to received transactions, |
| 116 | +so transaction whose time is greater than the GetMedianTimePast() will |
| 117 | +no longer be accepted into the mempool. |
| 118 | + |
| 119 | +**Implication for miners:** you will begin rejecting transactions that |
| 120 | +would not be valid under BIP113, which will prevent you from producing |
| 121 | +invalid blocks when BIP113 is enforced on the network. Any |
| 122 | +transactions which are valid under the current rules but not yet valid |
| 123 | +under the BIP113 rules will either be mined by other miners or delayed |
| 124 | +until they are valid under BIP113. Note, however, that time-based |
| 125 | +locktime transactions are more or less unseen on the network currently. |
| 126 | + |
| 127 | +**Implication for users:** GetMedianTimePast() always trails behind the |
| 128 | +current time, so a transaction locktime set to the present time will be |
| 129 | +rejected by nodes running this release until the median time moves |
| 130 | +forward. To compensate, subtract one hour (3,600 seconds) from your |
| 131 | +locktimes to allow those transactions to be included in mempools at |
| 132 | +approximately the expected time. |
| 133 | + |
| 134 | +For more information about the implementation, see |
| 135 | +<https://github.com/bitcoin/bitcoin/pull/6566> |
| 136 | + |
| 137 | +Miscellaneous |
| 138 | +------------- |
| 139 | + |
| 140 | +The p2p alert system is off by default. To turn on, use `-alert` with |
| 141 | +startup configuration. |
| 142 | + |
| 143 | +0.12.1 Change log |
| 144 | +================= |
| 145 | + |
| 146 | +Detailed release notes follow. This overview includes changes that affect |
| 147 | +behavior, not code moves, refactors and string updates. For convenience in locating |
| 148 | +the code changes and accompanying discussion, both the pull request and |
| 149 | +git merge commit are mentioned. |
| 150 | + |
| 151 | +### RPC and other APIs |
| 152 | +- #7739 `7ffc2bd` Add abandoned status to listtransactions (jonasschnelli) |
| 153 | + |
| 154 | +### Block and transaction handling |
| 155 | +- #7543 `834aaef` Backport BIP9, BIP68 and BIP112 with softfork (btcdrak) |
| 156 | + |
| 157 | +### P2P protocol and network code |
| 158 | +- #7804 `90f1d24` Track block download times per individual block (sipa) |
| 159 | +- #7832 `4c3a00d` Reduce block timeout to 10 minutes (laanwj) |
| 160 | + |
| 161 | +### Validation |
| 162 | +- #7821 `4226aac` init: allow shutdown during 'Activating best chain...' (laanwj) |
| 163 | +- #7835 `46898e7` Version 2 transactions remain non-standard until CSV activates (sdaftuar) |
| 164 | + |
| 165 | +### Build system |
| 166 | +- #7487 `00d57b4` Workaround Travis-side CI issues (luke-jr) |
| 167 | +- #7606 `a10da9a` No need to set -L and --location for curl (MarcoFalke) |
| 168 | +- #7614 `ca8f160` Add curl to packages (now needed for depends) (luke-jr) |
| 169 | +- #7776 `a784675` Remove unnecessary executables from gitian release (laanwj) |
| 170 | + |
| 171 | +### Wallet |
| 172 | +- #7715 `19866c1` Fix calculation of balances and available coins. (morcos) |
| 173 | + |
| 174 | +### Miscellaneous |
| 175 | +- #7617 `f04f4fd` Fix markdown syntax and line terminate LogPrint (MarcoFalke) |
| 176 | +- #7747 `4d035bc` added depends cross compile info (accraze) |
| 177 | +- #7741 `a0cea89` Mark p2p alert system as deprecated (btcdrak) |
| 178 | +- #7780 `c5f94f6` Disable bad-chain alert (btcdrak) |
| 179 | + |
| 180 | +Credits |
| 181 | +======= |
| 182 | + |
| 183 | +Thanks to everyone who directly contributed to this release: |
| 184 | + |
| 185 | +- accraze |
| 186 | +- Alex Morcos |
| 187 | +- BtcDrak |
| 188 | +- Jonas Schnelli |
| 189 | +- Luke Dashjr |
| 190 | +- MarcoFalke |
| 191 | +- Mark Friedenbach |
| 192 | +- NicolasDorier |
| 193 | +- Pieter Wuille |
| 194 | +- Suhas Daftuar |
| 195 | +- Wladimir J. van der Laan |
| 196 | + |
| 197 | +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). |
| 198 | + |
0 commit comments