|
| 1 | +Bitcoin Core version *0.15.1* is now available from: |
| 2 | + |
| 3 | + <https://bitcoincore.org/bin/bitcoin-core-0.15.1/> |
| 4 | + |
| 5 | +or |
| 6 | + |
| 7 | + <https://bitcoin.org/bin/bitcoin-core-0.15.1/> |
| 8 | + |
| 9 | +This is a new minor version release, including various bugfixes and |
| 10 | +performance improvements, as well as updated translations. |
| 11 | + |
| 12 | +Please report bugs using the issue tracker at GitHub: |
| 13 | + |
| 14 | + <https://github.com/bitcoin/bitcoin/issues> |
| 15 | + |
| 16 | +To receive security and update notifications, please subscribe to: |
| 17 | + |
| 18 | + <https://bitcoincore.org/en/list/announcements/join/> |
| 19 | + |
| 20 | +How to Upgrade |
| 21 | +============== |
| 22 | + |
| 23 | +If you are running an older version, shut it down. Wait until it has completely |
| 24 | +shut down (which might take a few minutes for older versions), then run the |
| 25 | +installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac) |
| 26 | +or `bitcoind`/`bitcoin-qt` (on Linux). |
| 27 | + |
| 28 | +The first time you run version 0.15.0 or higher, your chainstate database will |
| 29 | +be converted to a new format, which will take anywhere from a few minutes to |
| 30 | +half an hour, depending on the speed of your machine. |
| 31 | + |
| 32 | +The file format of `fee_estimates.dat` changed in version 0.15.0. Hence, a |
| 33 | +downgrade from version 0.15 or upgrade to version 0.15 will cause all fee |
| 34 | +estimates to be discarded. |
| 35 | + |
| 36 | +Note that the block database format also changed in version 0.8.0 and there is no |
| 37 | +automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading |
| 38 | +directly from 0.7.x and earlier without redownloading the blockchain is not supported. |
| 39 | +However, as usual, old wallet versions are still supported. |
| 40 | + |
| 41 | +Downgrading warning |
| 42 | +------------------- |
| 43 | + |
| 44 | +The chainstate database for this release is not compatible with previous |
| 45 | +releases, so if you run 0.15 and then decide to switch back to any |
| 46 | +older version, you will need to run the old release with the `-reindex-chainstate` |
| 47 | +option to rebuild the chainstate data structures in the old format. |
| 48 | + |
| 49 | +If your node has pruning enabled, this will entail re-downloading and |
| 50 | +processing the entire blockchain. |
| 51 | + |
| 52 | +Compatibility |
| 53 | +============== |
| 54 | + |
| 55 | +Bitcoin Core is extensively tested on multiple operating systems using |
| 56 | +the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported. |
| 57 | + |
| 58 | +Bitcoin Core should also work on most other Unix-like systems but is not |
| 59 | +frequently tested on them. |
| 60 | + |
| 61 | + |
| 62 | +Notable changes |
| 63 | +=============== |
| 64 | + |
| 65 | +Network fork safety enhancements |
| 66 | +-------------------------------- |
| 67 | + |
| 68 | +A number of changes to the way Bitcoin Core deals with peer connections and invalid blocks |
| 69 | +have been made, as a safety precaution against blockchain forks and misbehaving peers. |
| 70 | + |
| 71 | +- Unrequested blocks with less work than the minimum-chain-work are now no longer processed even |
| 72 | +if they have more work than the tip (a potential issue during IBD where the tip may have low-work). |
| 73 | +This prevents peers wasting the resources of a node. |
| 74 | + |
| 75 | +- Peers which provide a chain with less work than the minimum-chain-work during IBD will now be disconnected. |
| 76 | + |
| 77 | +- For a given outbound peer, we now check whether their best known block has at least as much work as our tip. If it |
| 78 | +doesn't, and if we still haven't heard about a block with sufficient work after a 20 minute timeout, then we send |
| 79 | +a single getheaders message, and wait 2 more minutes. If after two minutes their best known block has insufficient |
| 80 | +work, we disconnect that peer. We protect 4 of our outbound peers from being disconnected by this logic to prevent |
| 81 | +excessive network topology changes as a result of this algorithm, while still ensuring that we have a reasonable |
| 82 | +number of nodes not known to be on bogus chains. |
| 83 | + |
| 84 | +- Outbound (non-manual) peers that serve us block headers that are already known to be invalid (other than compact |
| 85 | +block announcements, because BIP 152 explicitly permits nodes to relay compact blocks before fully validating them) |
| 86 | +will now be disconnected. |
| 87 | + |
| 88 | +- If the chain tip has not been advanced for over 30 minutes, we now assume the tip may be stale and will try to connect |
| 89 | +to an additional outbound peer. A periodic check ensures that if this extra peer connection is in use, we will disconnect |
| 90 | +the peer that least recently announced a new block. |
| 91 | + |
| 92 | +- The set of all known invalid-themselves blocks (i.e. blocks which we attempted to connect but which were found to be |
| 93 | +invalid) are now tracked and used to check if new headers build on an invalid chain. This ensures that everything that |
| 94 | +descends from an invalid block is marked as such. |
| 95 | + |
| 96 | + |
| 97 | +Miner block size limiting deprecated |
| 98 | +------------------------------------ |
| 99 | + |
| 100 | +Though blockmaxweight has been preferred for limiting the size of blocks returned by |
| 101 | +getblocktemplate since 0.13.0, blockmaxsize remained as an option for those who wished |
| 102 | +to limit their block size directly. Using this option resulted in a few UI issues as |
| 103 | +well as non-optimal fee selection and ever-so-slightly worse performance, and has thus |
| 104 | +now been deprecated. Further, the blockmaxsize option is now used only to calculate an |
| 105 | +implied blockmaxweight, instead of limiting block size directly. Any miners who wish |
| 106 | +to limit their blocks by size, instead of by weight, will have to do so manually by |
| 107 | +removing transactions from their block template directly. |
| 108 | + |
| 109 | + |
| 110 | +GUI settings backed up on reset |
| 111 | +------------------------------- |
| 112 | + |
| 113 | +The GUI settings will now be written to `guisettings.ini.bak` in the data directory before wiping them when |
| 114 | +the `-resetguisettings` argument is used. This can be used to retroactively troubleshoot issues due to the |
| 115 | +GUI settings. |
| 116 | + |
| 117 | + |
| 118 | +Duplicate wallets disallowed |
| 119 | +---------------------------- |
| 120 | + |
| 121 | +Previously, it was possible to open the same wallet twice by manually copying the wallet file, causing |
| 122 | +issues when both were opened simultaneously. It is no longer possible to open copies of the same wallet. |
| 123 | + |
| 124 | + |
| 125 | +Debug `-minimumchainwork` argument added |
| 126 | +---------------------------------------- |
| 127 | + |
| 128 | +A hidden debug argument `-minimumchainwork` has been added to allow a custom minimum work value to be used |
| 129 | +when validating a chain. |
| 130 | + |
| 131 | + |
| 132 | +Low-level RPC changes |
| 133 | +---------------------- |
| 134 | + |
| 135 | +- The "currentblocksize" value in getmininginfo has been removed. |
| 136 | + |
| 137 | +- `dumpwallet` no longer allows overwriting files. This is a security measure |
| 138 | + as well as prevents dangerous user mistakes. |
| 139 | + |
| 140 | +- `backupwallet` will now fail when attempting to backup to source file, rather than |
| 141 | + destroying the wallet. |
| 142 | + |
| 143 | +- `listsinceblock` will now throw an error if an unknown `blockhash` argument |
| 144 | + value is passed, instead of returning a list of all wallet transactions since |
| 145 | + the genesis block. The behaviour is unchanged when an empty string is provided. |
| 146 | + |
| 147 | +0.15.1 Change log |
| 148 | +================= |
| 149 | + |
| 150 | +### Mining |
| 151 | +- #11100 `7871a7d` Fix confusing blockmax{size,weight} options, dont default to throwing away money (TheBlueMatt) |
| 152 | + |
| 153 | +### RPC and other APIs |
| 154 | +- #10859 `2a5d099` gettxout: Slightly improve doc and tests (jtimon) |
| 155 | +- #11267 `b1a6c94` update cli for estimate\*fee argument rename (laanwj) |
| 156 | +- #11483 `20cdc2b` Fix importmulti bug when importing an already imported key (pedrobranco) |
| 157 | +- #9937 `a43be5b` Prevent `dumpwallet` from overwriting files (laanwj) |
| 158 | +- #11465 `405e069` Update named args documentation for importprivkey (dusty-wil) |
| 159 | +- #11131 `b278a43` Write authcookie atomically (laanwj) |
| 160 | +- #11565 `7d4546f` Make listsinceblock refuse unknown block hash (ryanofsky) |
| 161 | +- #11593 `8195cb0` Work-around an upstream libevent bug (theuni) |
| 162 | + |
| 163 | +### P2P protocol and network code |
| 164 | +- #11397 `27e861a` Improve and document SOCKS code (laanwj) |
| 165 | +- #11252 `0fe2a9a` When clearing addrman clear mapInfo and mapAddr (instagibbs) |
| 166 | +- #11527 `a2bd86a` Remove my testnet DNS seed (schildbach) |
| 167 | +- #10756 `0a5477c` net processing: swap out signals for an interface class (theuni) |
| 168 | +- #11531 `55b7abf` Check that new headers are not a descendant of an invalid block (more effeciently) (TheBlueMatt) |
| 169 | +- #11560 `49bf090` Connect to a new outbound peer if our tip is stale (sdaftuar) |
| 170 | +- #11568 `fc966bb` Disconnect outbound peers on invalid chains (sdaftuar) |
| 171 | +- #11578 `ec8dedf` Add missing lock in ProcessHeadersMessage(...) (practicalswift) |
| 172 | +- #11456 `6f27965` Replace relevant services logic with a function suite (TheBlueMatt) |
| 173 | +- #11490 `bf191a7` Disconnect from outbound peers with bad headers chains (sdaftuar) |
| 174 | + |
| 175 | +### Validation |
| 176 | +- #10357 `da4908c` Allow setting nMinimumChainWork on command line (sdaftuar) |
| 177 | +- #11458 `2df65ee` Don't process unrequested, low-work blocks (sdaftuar) |
| 178 | + |
| 179 | +### Build system |
| 180 | +- #11440 `b6c0209` Fix validationinterface build on super old boost/clang (TheBlueMatt) |
| 181 | +- #11530 `265bb21` Add share/rpcuser to dist. source code archive (MarcoFalke) |
| 182 | + |
| 183 | +### GUI |
| 184 | +- #11334 `19d63e8` Remove custom fee radio group and remove nCustomFeeRadio setting (achow101) |
| 185 | +- #11198 `7310f1f` Fix display of package name on 'open config file' tooltip (esotericnonsense) |
| 186 | +- #11015 `6642558` Add delay before filtering transactions (lclc) |
| 187 | +- #11338 `6a62c74` Backup former GUI settings on `-resetguisettings` (laanwj) |
| 188 | +- #11335 `8d13b42` Replace save|restoreWindowGeometry with Qt functions (MeshCollider) |
| 189 | +- #11237 `2e31b1d` Fixing division by zero in time remaining (MeshCollider) |
| 190 | +- #11247 `47c02a8` Use IsMine to validate custom change address (MarcoFalke) |
| 191 | + |
| 192 | +### Wallet |
| 193 | +- #11017 `9e8aae3` Close DB on error (kallewoof) |
| 194 | +- #11225 `6b4d9f2` Update stored witness in AddToWallet (sdaftuar) |
| 195 | +- #11126 `2cb720a` Acquire cs_main lock before cs_wallet during wallet initialization (ryanofsky) |
| 196 | +- #11476 `9c8006d` Avoid opening copied wallet databases simultaneously (ryanofsky) |
| 197 | +- #11492 `de7053f` Fix leak in CDB constructor (promag) |
| 198 | +- #11376 `fd79ed6` Ensure backupwallet fails when attempting to backup to source file (tomasvdw) |
| 199 | +- #11326 `d570aa4` Fix crash on shutdown with invalid wallet (MeshCollider) |
| 200 | + |
| 201 | +### Tests and QA |
| 202 | +- #11399 `a825d4a` Fix bip68-sequence rpc test (jl2012) |
| 203 | +- #11150 `847c75e` Add getmininginfo test (mess110) |
| 204 | +- #11407 `806c78f` add functional test for mempoolreplacement command line arg (instagibbs) |
| 205 | +- #11433 `e169349` Restore bitcoin-util-test py2 compatibility (MarcoFalke) |
| 206 | +- #11308 `2e1ac70` zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke) |
| 207 | +- #10798 `716066d` test bitcoin-cli (jnewbery) |
| 208 | +- #11443 `019c492` Allow "make cov" out-of-tree; Fix rpc mapping check (MarcoFalke) |
| 209 | +- #11445 `51bad91` 0.15.1 Backports (MarcoFalke) |
| 210 | +- #11319 `2f0b30a` Fix error introduced into p2p-segwit.py, and prevent future similar errors (sdaftuar) |
| 211 | +- #10552 `e4605d9` Tests for zmqpubrawtx and zmqpubrawblock (achow101) |
| 212 | +- #11067 `eeb24a3` TestNode: Add wait_until_stopped helper method (MarcoFalke) |
| 213 | +- #11068 `5398f20` Move wait_until to util (MarcoFalke) |
| 214 | +- #11125 `812c870` Add bitcoin-cli -stdin and -stdinrpcpass functional tests (promag) |
| 215 | +- #11077 `1d80d1e` fix timeout issues from TestNode (jnewbery) |
| 216 | +- #11078 `f1ced0d` Make p2p-leaktests.py more robust (jnewbery) |
| 217 | +- #11210 `f3f7891` Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider) |
| 218 | +- #11234 `f0b6795` Remove redundant testutil.cpp|h files (MeshCollider) |
| 219 | +- #11215 `cef0319` fixups from set_test_params() (jnewbery) |
| 220 | +- #11345 `f9cf7b5` Check connectivity before sending in assumevalid.py (jnewbery) |
| 221 | +- #11091 `c276c1e` Increase initial RPC timeout to 60 seconds (laanwj) |
| 222 | +- #10711 `fc2aa09` Introduce TestNode (jnewbery) |
| 223 | +- #11230 `d8dd8e7` Fixup dbcrash interaction with add_nodes() (jnewbery) |
| 224 | +- #11241 `4424176` Improve signmessages functional test (mess110) |
| 225 | +- #11116 `2c4ff35` Unit tests for script/standard and IsMine functions (jimpo) |
| 226 | +- #11422 `a36f332` Verify DBWrapper iterators are taking snapshots (TheBlueMatt) |
| 227 | +- #11121 `bb5e7cb` TestNode tidyups (jnewbery) |
| 228 | +- #11521 `ca0f3f7` travis: move back to the minimal image (theuni) |
| 229 | +- #11538 `adbc9d1` Fix race condition failures in replace-by-fee.py, sendheaders.py (sdaftuar) |
| 230 | +- #11472 `4108879` Make tmpdir option an absolute path, misc cleanup (MarcoFalke) |
| 231 | +- #10853 `5b728c8` Fix RPC failure testing (again) (jnewbery) |
| 232 | +- #11310 `b6468d3` Test listwallets RPC (mess110) |
| 233 | + |
| 234 | +### Miscellaneous |
| 235 | +- #11377 `75997c3` Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (TheBlueMatt) |
| 236 | +- #11437 `dea3b87` [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake) |
| 237 | +- #11318 `8b61aee` Put back inadvertently removed copyright notices (gmaxwell) |
| 238 | +- #11442 `cf18f42` [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake) |
| 239 | +- #10957 `50bd3f6` Avoid returning a BIP9Stats object with uninitialized values (practicalswift) |
| 240 | +- #11539 `01223a0` [verify-commits] Allow revoked keys to expire (TheBlueMatt) |
| 241 | + |
| 242 | + |
| 243 | +Credits |
| 244 | +======= |
| 245 | + |
| 246 | +Thanks to everyone who directly contributed to this release: |
| 247 | + |
| 248 | +- Andreas Schildbach |
| 249 | +- Andrew Chow |
| 250 | +- Chris Moore |
| 251 | +- Cory Fields |
| 252 | +- Cristian Mircea Messel |
| 253 | +- Daniel Edgecumbe |
| 254 | +- Donal OConnor |
| 255 | +- Dusty Williams |
| 256 | +- fanquake |
| 257 | +- Gregory Sanders |
| 258 | +- Jim Posen |
| 259 | +- John Newbery |
| 260 | +- Johnson Lau |
| 261 | +- João Barbosa |
| 262 | +- Jorge Timón |
| 263 | +- Karl-Johan Alm |
| 264 | +- Lucas Betschart |
| 265 | +- MarcoFalke |
| 266 | +- Matt Corallo |
| 267 | +- Paul Berg |
| 268 | +- Pedro Branco |
| 269 | +- Pieter Wuille |
| 270 | +- practicalswift |
| 271 | +- Russell Yanofsky |
| 272 | +- Samuel Dobson |
| 273 | +- Suhas Daftuar |
| 274 | +- Tomas van der Wansem |
| 275 | +- Wladimir J. van der Laan |
| 276 | + |
| 277 | +As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/). |
0 commit comments