summaryrefslogtreecommitdiff
path: root/18/5275d81efac80cdaee1efde336992eeff577e2
blob: 67e08dd156f60699ba6f0638dfa312696c388b26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
Return-Path: <laanwj@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 56371412;
	Sat, 11 Nov 2017 14:35:25 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-wm0-f48.google.com (mail-wm0-f48.google.com [74.125.82.48])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id E6CD2196;
	Sat, 11 Nov 2017 14:35:23 +0000 (UTC)
Received: by mail-wm0-f48.google.com with SMTP id y80so7459954wmd.0;
	Sat, 11 Nov 2017 06:35:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=date:from:to:subject:message-id:mime-version:content-disposition
	:content-transfer-encoding;
	bh=49vPvPVsNqh2cxJNRvZAp/7X8yFNP6XmHou0NhmFO+I=;
	b=WlBJG5KSU/ReaXFiT1OaQ91tGNb15AYCaV3LoforFALGBNe+o9fAG1QCX9BILiYF17
	2efG2ByY21kY9U2u7cVAqzr7YdhxsStbaqCSHHbokLwwwHhF740n4YJKdCajHhNld/6B
	LRvcrPn8YkGks9Vk4lt70RO05Tpwxwx3jmN+ksQSHbf0TCYom16oLPhgzut/m/Dy4uX2
	ntC0uAG81DwWkgfH2xIa83v+yTRjJ1Bn3yFsMZj3hOHuqQqXZ9gNKhJM4n7K8/TGOgrR
	d0S6MNT2saB6fSMDEFIMvDgjU36LwfBNghI10gQjUZuXuGITKKZFJ6dm9Uc6pTuyn96G
	pzMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:date:from:to:subject:message-id:mime-version
	:content-disposition:content-transfer-encoding;
	bh=49vPvPVsNqh2cxJNRvZAp/7X8yFNP6XmHou0NhmFO+I=;
	b=rBNJCCg1gqI598RrdBtnk2F/XUgPewCzrDQOQ57VBpLArctjo1XjEmJnA57BIcYL0q
	HkoX3rB1MtWHYehsoAItUKTBa031pusiKjB/t+/AKF83h9BIwnW1rEUom1Rvk6CXGEsK
	8QXkdGjl1UAixYEib16cx03YzAWkiwACmHD6XdJEpEDjNfDbLNmgaHOw4ej0YtAA4w7M
	X5Pk/azxMEKfyRHhb9U+8I4huB1W+LhhMEB1+iIQg37tqmyM4jVq6f2atvtv7sYjtI/X
	3uCqEvsSuegWo5Ji41MWQQVgWdvM7atjmG0uskUMuzl9nq7MEeh/NodeNFC4XE6lfpby
	P4yg==
X-Gm-Message-State: AJaThX76zhH0FeoP1DwazaYsTkqoTSJt9hurWnd+gRjQhZcoAwxIDPjD
	WEZxbYZksM+MtP7zaf8XQkXBvuHX
X-Google-Smtp-Source: AGs4zMaYQQdEBHZHFWuQsp7eVVCSOkbmvhy9gAgr+SFhvQ7KhqjOGKK4x1G+q8MpIYLf0ECf6r+KJQ==
X-Received: by 10.80.135.226 with SMTP id 31mr5217551edz.210.1510410922069;
	Sat, 11 Nov 2017 06:35:22 -0800 (PST)
Received: from amethyst.visucore.com ([92.110.144.95])
	by smtp.gmail.com with ESMTPSA id k5sm8788095edc.61.2017.11.11.06.35.21
	(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Sat, 11 Nov 2017 06:35:21 -0800 (PST)
Date: Sat, 11 Nov 2017 15:35:19 +0100
From: "Wladimir J. van der Laan" <laanwj@gmail.com>
To: Bitcoin development mailing list <bitcoin-dev@lists.linuxfoundation.org>, 
	Bitcoin Core development mailing list
	<bitcoin-core-dev@lists.linuxfoundation.org>
Message-ID: <20171111143519.GA21428@amethyst.visucore.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
	DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE autolearn=disabled
	version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Subject: [bitcoin-dev] Bitcoin Core 0.15.1 released
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Nov 2017 14:35:25 -0000

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Bitcoin Core version *0.15.1* is now available from:

  <https://bitcoincore.org/bin/bitcoin-core-0.15.1/>

or

  <https://bitcoin.org/bin/bitcoin-core-0.15.1/>

Or through bittorrent:

  magnet:?xt=urn:btih:e83dfdfca54def4e29f5355e8c3f9a7aa45ecbaf&dn=bitcoin-core-0.15.1&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fexplodie.org%3A6969

This is a new minor version release, including 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/>

How to Upgrade
==============

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 or higher, 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 or upgrade to version 0.15 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.

Downgrading warning
- -------------------

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.

Compatibility
==============

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.


Notable changes
===============

Network fork safety enhancements
- --------------------------------

A number of changes to the way Bitcoin Core deals with peer connections and invalid blocks
have been made, as a safety precaution against blockchain forks and misbehaving peers.

- - Unrequested blocks with less work than the minimum-chain-work are now no longer processed even
if they have more work than the tip (a potential issue during IBD where the tip may have low-work).
This prevents peers wasting the resources of a node. 

- - Peers which provide a chain with less work than the minimum-chain-work during IBD will now be disconnected.

- - For a given outbound peer, we now check whether their best known block has at least as much work as our tip. If it
doesn't, and if we still haven't heard about a block with sufficient work after a 20 minute timeout, then we send
a single getheaders message, and wait 2 more minutes. If after two minutes their best known block has insufficient
work, we disconnect that peer. We protect 4 of our outbound peers from being disconnected by this logic to prevent
excessive network topology changes as a result of this algorithm, while still ensuring that we have a reasonable
number of nodes not known to be on bogus chains.

- - Outbound (non-manual) peers that serve us block headers that are already known to be invalid (other than compact
block announcements, because BIP 152 explicitly permits nodes to relay compact blocks before fully validating them)
will now be disconnected.

- - 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
to an additional outbound peer. A periodic check ensures that if this extra peer connection is in use, we will disconnect
the peer that least recently announced a new block.

- - The set of all known invalid-themselves blocks (i.e. blocks which we attempted to connect but which were found to be
invalid) are now tracked and used to check if new headers build on an invalid chain. This ensures that everything that
descends from an invalid block is marked as such.


Miner block size limiting deprecated
- ------------------------------------

Though blockmaxweight has been preferred for limiting the size of blocks returned by
getblocktemplate since 0.13.0, blockmaxsize remained as an option for those who wished
to limit their block size directly. Using this option resulted in a few UI issues as
well as non-optimal fee selection and ever-so-slightly worse performance, and has thus
now been deprecated. Further, the blockmaxsize option is now used only to calculate an
implied blockmaxweight, instead of limiting block size directly. Any miners who wish
to limit their blocks by size, instead of by weight, will have to do so manually by
removing transactions from their block template directly.


GUI settings backed up on reset
- -------------------------------

The GUI settings will now be written to `guisettings.ini.bak` in the data directory before wiping them when
the `-resetguisettings` argument is used. This can be used to retroactively troubleshoot issues due to the
GUI settings.


Duplicate wallets disallowed
- ----------------------------

Previously, it was possible to open the same wallet twice by manually copying the wallet file, causing
issues when both were opened simultaneously. It is no longer possible to open copies of the same wallet.


Debug `-minimumchainwork` argument added
- ----------------------------------------

A hidden debug argument `-minimumchainwork` has been added to allow a custom minimum work value to be used
when validating a chain.


Low-level RPC changes
- ----------------------

- - The "currentblocksize" value in getmininginfo has been removed.

- - `dumpwallet` no longer allows overwriting files. This is a security measure
  as well as prevents dangerous user mistakes.

- - `backupwallet` will now fail when attempting to backup to source file, rather than
  destroying the wallet.

- - `listsinceblock` will now throw an error if an unknown `blockhash` argument
  value is passed, instead of returning a list of all wallet transactions since
  the genesis block. The behaviour is unchanged when an empty string is provided.

0.15.1 Change log
=================

### Mining
- - #11100 `7871a7d` Fix confusing blockmax{size,weight} options, dont default to throwing away money (TheBlueMatt)

### RPC and other APIs
- - #10859 `2a5d099` gettxout: Slightly improve doc and tests (jtimon)
- - #11267 `b1a6c94` update cli for estimate\*fee argument rename (laanwj)
- - #11483 `20cdc2b` Fix importmulti bug when importing an already imported key (pedrobranco)
- - #9937 `a43be5b` Prevent `dumpwallet` from overwriting files (laanwj)
- - #11465 `405e069` Update named args documentation for importprivkey (dusty-wil)
- - #11131 `b278a43` Write authcookie atomically (laanwj)
- - #11565 `7d4546f` Make listsinceblock refuse unknown block hash (ryanofsky)
- - #11593 `8195cb0` Work-around an upstream libevent bug (theuni)

### P2P protocol and network code
- - #11397 `27e861a` Improve and document SOCKS code (laanwj)
- - #11252 `0fe2a9a` When clearing addrman clear mapInfo and mapAddr (instagibbs)
- - #11527 `a2bd86a` Remove my testnet DNS seed (schildbach)
- - #10756 `0a5477c` net processing: swap out signals for an interface class (theuni)
- - #11531 `55b7abf` Check that new headers are not a descendant of an invalid block (more effeciently) (TheBlueMatt)
- - #11560 `49bf090` Connect to a new outbound peer if our tip is stale (sdaftuar)
- - #11568 `fc966bb` Disconnect outbound peers on invalid chains (sdaftuar)
- - #11578 `ec8dedf` Add missing lock in ProcessHeadersMessage(...) (practicalswift)
- - #11456 `6f27965` Replace relevant services logic with a function suite (TheBlueMatt)
- - #11490 `bf191a7` Disconnect from outbound peers with bad headers chains (sdaftuar)

### Validation
- - #10357 `da4908c` Allow setting nMinimumChainWork on command line (sdaftuar)
- - #11458 `2df65ee` Don't process unrequested, low-work blocks (sdaftuar)

### Build system
- - #11440 `b6c0209` Fix validationinterface build on super old boost/clang (TheBlueMatt)
- - #11530 `265bb21` Add share/rpcuser to dist. source code archive (MarcoFalke)

### GUI
- - #11334 `19d63e8` Remove custom fee radio group and remove nCustomFeeRadio setting (achow101)
- - #11198 `7310f1f` Fix display of package name on 'open config file' tooltip (esotericnonsense)
- - #11015 `6642558` Add delay before filtering transactions (lclc)
- - #11338 `6a62c74` Backup former GUI settings on `-resetguisettings` (laanwj)
- - #11335 `8d13b42` Replace save|restoreWindowGeometry with Qt functions (MeshCollider)
- - #11237 `2e31b1d` Fixing division by zero in time remaining (MeshCollider)
- - #11247 `47c02a8` Use IsMine to validate custom change address (MarcoFalke)

### Wallet
- - #11017 `9e8aae3` Close DB on error (kallewoof)
- - #11225 `6b4d9f2` Update stored witness in AddToWallet (sdaftuar)
- - #11126 `2cb720a` Acquire cs_main lock before cs_wallet during wallet initialization (ryanofsky)
- - #11476 `9c8006d` Avoid opening copied wallet databases simultaneously (ryanofsky)
- - #11492 `de7053f` Fix leak in CDB constructor (promag)
- - #11376 `fd79ed6` Ensure backupwallet fails when attempting to backup to source file (tomasvdw)
- - #11326 `d570aa4` Fix crash on shutdown with invalid wallet (MeshCollider)

### Tests and QA
- - #11399 `a825d4a` Fix bip68-sequence rpc test (jl2012)
- - #11150 `847c75e` Add getmininginfo test (mess110)
- - #11407 `806c78f` add functional test for mempoolreplacement command line arg (instagibbs)
- - #11433 `e169349` Restore bitcoin-util-test py2 compatibility (MarcoFalke)
- - #11308 `2e1ac70` zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke)
- - #10798 `716066d` test bitcoin-cli (jnewbery)
- - #11443 `019c492` Allow "make cov" out-of-tree; Fix rpc mapping check (MarcoFalke)
- - #11445 `51bad91` 0.15.1 Backports (MarcoFalke)
- - #11319 `2f0b30a` Fix error introduced into p2p-segwit.py, and prevent future similar errors (sdaftuar)
- - #10552 `e4605d9` Tests for zmqpubrawtx and zmqpubrawblock (achow101)
- - #11067 `eeb24a3` TestNode: Add wait_until_stopped helper method (MarcoFalke)
- - #11068 `5398f20` Move wait_until to util (MarcoFalke)
- - #11125 `812c870` Add bitcoin-cli -stdin and -stdinrpcpass functional tests (promag)
- - #11077 `1d80d1e` fix timeout issues from TestNode (jnewbery)
- - #11078 `f1ced0d` Make p2p-leaktests.py more robust (jnewbery)
- - #11210 `f3f7891` Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider)
- - #11234 `f0b6795` Remove redundant testutil.cpp|h files (MeshCollider)
- - #11215 `cef0319` fixups from set_test_params() (jnewbery)
- - #11345 `f9cf7b5` Check connectivity before sending in assumevalid.py (jnewbery)
- - #11091 `c276c1e` Increase initial RPC timeout to 60 seconds (laanwj)
- - #10711 `fc2aa09` Introduce TestNode (jnewbery)
- - #11230 `d8dd8e7` Fixup dbcrash interaction with add_nodes() (jnewbery)
- - #11241 `4424176` Improve signmessages functional test (mess110)
- - #11116 `2c4ff35` Unit tests for script/standard and IsMine functions (jimpo)
- - #11422 `a36f332` Verify DBWrapper iterators are taking snapshots (TheBlueMatt)
- - #11121 `bb5e7cb` TestNode tidyups (jnewbery)
- - #11521 `ca0f3f7` travis: move back to the minimal image (theuni)
- - #11538 `adbc9d1` Fix race condition failures in replace-by-fee.py, sendheaders.py (sdaftuar)
- - #11472 `4108879` Make tmpdir option an absolute path, misc cleanup (MarcoFalke)
- - #10853 `5b728c8` Fix RPC failure testing (again) (jnewbery)
- - #11310 `b6468d3` Test listwallets RPC (mess110)

### Miscellaneous
- - #11377 `75997c3` Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (TheBlueMatt)
- - #11437 `dea3b87` [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake)
- - #11318 `8b61aee` Put back inadvertently removed copyright notices (gmaxwell)
- - #11442 `cf18f42` [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake)
- - #10957 `50bd3f6` Avoid returning a BIP9Stats object with uninitialized values (practicalswift)
- - #11539 `01223a0` [verify-commits] Allow revoked keys to expire (TheBlueMatt)


Credits
=======

Thanks to everyone who directly contributed to this release:

- - Andreas Schildbach
- - Andrew Chow
- - Chris Moore
- - Cory Fields
- - Cristian Mircea Messel
- - Daniel Edgecumbe
- - Donal OConnor
- - Dusty Williams
- - fanquake
- - Gregory Sanders
- - Jim Posen
- - John Newbery
- - Johnson Lau
- - João Barbosa
- - Jorge Timón
- - Karl-Johan Alm
- - Lucas Betschart
- - MarcoFalke
- - Matt Corallo
- - Paul Berg
- - Pedro Branco
- - Pieter Wuille
- - practicalswift
- - Russell Yanofsky
- - Samuel Dobson
- - Suhas Daftuar
- - Tomas van der Wansem
- - Wladimir J. van der Laan

As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCgAGBQJaBwnSAAoJEB5K7WKYbNJdAhIIAL6y/9IM1cdvt6Wob9yDMawv
it2iL5pS0HIWbcqXTfnf+52JMw9SNmTX356U8B9q9l6V8EiFKMN8y1wu/A921kKb
n1BREmVKD0JtawK368LiFt9x0eYV3q0MTww9dOCPp5HoIEt8TTLGFIOwzAvscxNi
IQMZRE5ejtm9Yjs0VHeKBrAXNA9zt8BKzmuwGi/JHoWda8nUnAhnaL/asAaYQ1zB
IpqZHJo4k7GxxXUFIm1hiQkqT7uDZ5iehT706Su3qY7ATtaByPq8aHsPDEZFfUJO
PoW7nqzCzkyTofIIE7+ejviBruL7EYFZiq+oUzOt4byGJvgaRyBXo8rn+druvEI=
=8PAn
-----END PGP SIGNATURE-----