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
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
|
Return-Path: <luke@dashjr.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 2C132AE0
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 15 Sep 2017 18:05:23 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from zinan.dashjr.org (zinan.dashjr.org [192.3.11.21])
by smtp1.linuxfoundation.org (Postfix) with ESMTP id 80284431
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 15 Sep 2017 18:05:19 +0000 (UTC)
Received: from ishibashi.localnet (unknown
[IPv6:2001:470:5:265:a45d:823b:2d27:961c])
(Authenticated sender: luke-jr)
by zinan.dashjr.org (Postfix) with ESMTPSA id 42A7338A0D42
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 15 Sep 2017 18:05:05 +0000 (UTC)
X-Hashcash: 1:25:170915:bitcoin-dev@lists.linuxfoundation.org::13bTZeeQ1qudOxSw:aGMWB
From: Luke Dashjr <luke@dashjr.org>
To: Bitcoin development mailing list <bitcoin-dev@lists.linuxfoundation.org>
Date: Fri, 15 Sep 2017 18:04:58 +0000
User-Agent: KMail/1.13.7 (Linux/4.12.5-gentoo; KDE/4.14.34; x86_64; ; )
X-PGP-Key-Fingerprint: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F
X-PGP-Key-ID: BD02942421F4889F
X-PGP-Keyserver: hkp://pgp.mit.edu
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="nextPart1689491.1TiKLb9zaX";
protocol="application/pgp-signature"; micalg=pgp-sha256
Content-Transfer-Encoding: 7bit
Message-Id: <201709151805.03616.luke@dashjr.org>
X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,
RP_MATCHES_RCVD autolearn=disabled version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
X-Mailman-Approved-At: Fri, 15 Sep 2017 20:04:48 +0000
Subject: [bitcoin-dev] Bitcoin Knots 0.15.0.knots20170914 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: Fri, 15 Sep 2017 18:05:23 -0000
--nextPart1689491.1TiKLb9zaX
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Bitcoin Knots version *0.15.0.knots20170914* is now available from:
<https://bitcoinknots.org/files/0.15.x/0.15.0.knots20170914/>
This is a new major version release, including new features, various bugfix=
es
and performance improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
<https://github.com/bitcoinknots/bitcoin/issues>
How to Upgrade
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
If you are running an older version, shut it down. Wait until it has comple=
tely
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 `bitcoind`/`bitcoin-qt` (on Linux).
The first time you run version 0.15.0, your chainstate database will be con=
verted 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.0 or upgrade to version 0.15.0 will cause all f=
ee
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
=2D------------------
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-chai=
nstate`
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
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Bitcoin Knots is supported on multiple operating systems using the Linux ke=
rnel,
macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
Bitcoin Knots should also work on most other Unix-like systems but is not
frequently tested on them.
Notable changes
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Performance Improvements
=2D-----------------------
Version 0.15 contains a number of significant performance improvements, whi=
ch make
Initial Block Download, startup, transaction and block validation much fast=
er:
=2D The chainstate database (which is used for tracking UTXOs) has been cha=
nged
from a per-transaction model to a per-output model (See [PR 10195](https:=
//github.com/bitcoin/bitcoin/pull/10195)). Advantages of this=20
model
are that it:
- avoids the CPU overhead of deserializing and serializing the unused o=
utputs;
- has more predictable memory usage;
- uses simpler code;
- is adaptable to various future cache flushing strategies.
As a result, validating the blockchain during Initial Block Download (IBD=
) and reindex
is ~30-40% faster, uses 10-20% less memory, and flushes to disk far less =
frequently.
The only downside is that the on-disk database is 15% larger. During the =
conversion from the previous format
a few extra gigabytes may be used.
=2D Earlier versions experienced a spike in memory usage while flushing UTX=
O updates to disk.
As a result, only half of the available memory was actually used as cache=
, and the other half was
reserved to accommodate flushing. This is no longer the case (See [PR 101=
48](https://github.com/bitcoin/bitcoin/pull/10148)), and the=20
entirety of
the available cache (see `-dbcache`) is now actually used as cache. This =
reduces the flushing
frequency by a factor 2 or more.
=2D In previous versions, signature validation for transactions has been ca=
ched when the
transaction is accepted to the mempool. Version 0.15 extends this to cach=
e the entire script
validity (See [PR 10192](https://github.com/bitcoin/bitcoin/pull/10192)).=
This means that if a transaction in a block has already been=20
accepted to the
mempool, the scriptSig does not need to be re-evaluated. Empirical tests =
show that
this results in new block validation being 40-50% faster.
=2D LevelDB has been upgraded to version 1.20 (See [PR 10544](https://githu=
b.com/bitcoin/bitcoin/pull/10544)). This version contains hardware=20
acceleration for CRC
on architectures supporting SSE 4.2. As a result, synchronization and blo=
ck validation are now faster.
=2D SHA256 hashing has been optimized for architectures supporting SSE 4 (S=
ee [PR 10821](https://github.com/bitcoin/bitcoin/pull/10821)).=20
SHA256 is around
50% faster on supported hardware, which results in around 5% faster IBD a=
nd block
validation. In version 0.15, SHA256 hardware optimization is disabled in =
release builds by
default, but can be enabled by using `--enable-experimental-asm` when bui=
lding.
=2D Refill of the keypool no longer flushes the wallet between each key whi=
ch resulted in a ~20x speedup in creating a new wallet. Part of=20
this speedup was used to increase the default keypool to 1000 keys to make =
recovery more robust. (See [PR 10831]
(https://github.com/bitcoin/bitcoin/pull/10831)).
=46ee Estimation Improvements
=2D--------------------------
=46ee estimation has been significantly improved in version 0.15, with more=
accurate fee estimates used by the wallet and a wider range of=20
options for advanced users of the `estimatesmartfee` and `estimaterawfee` R=
PCs (See [PR 10199]
(https://github.com/bitcoin/bitcoin/pull/10199)).
### Changes to internal logic and wallet behavior
=2D Internally, estimates are now tracked on 3 different time horizons. Thi=
s allows for longer targets and means estimates adjust more=20
quickly to changes in conditions.
=2D Estimates can now be *conservative* or *economical*. *Conservative* est=
imates use longer time horizons to produce an estimate which is=20
less susceptible to rapid changes in fee conditions. *Economical* estimates=
use shorter time horizons and will be more affected by short-
term changes in fee conditions. Economical estimates may be considerably lo=
wer during periods of low transaction activity (for example over=20
weekends), but may result in transactions being unconfirmed if prevailing f=
ees increase rapidly.
=2D By default, the wallet will use conservative fee estimates to increase =
the reliability of transactions being confirmed within the desired=20
target. For transactions that are marked as replaceable, the wallet will us=
e an economical estimate by default, since the fee can be=20
'bumped' if the fee conditions change rapidly (See [PR 10589](https://githu=
b.com/bitcoin/bitcoin/pull/10589)).
=2D Estimates can now be made for confirmation targets up to 1008 blocks (o=
ne week).
=2D More data on historical fee rates is stored, leading to more precise fe=
e estimates.
=2D Transactions which leave the mempool due to eviction or other non-confi=
rmed reasons are now taken into account by the fee estimation=20
logic, leading to more accurate fee estimates.
=2D The fee estimation logic will make sure enough data has been gathered t=
o return a meaningful estimate. If there is insufficient data, a=20
fallback default fee is used.
### Changes to fee estimate RPCs
=2D The `estimatefee` RPC is now deprecated in favor of using only `estimat=
esmartfee` (which is the implementation used by the GUI)
=2D The `estimatesmartfee` RPC interface has been changed (See [PR 10707](h=
ttps://github.com/bitcoin/bitcoin/pull/10707)):
- The `nblocks` argument has been renamed to `conf_target` (to be consi=
stent with other RPC methods).
- An `estimate_mode` argument has been added. This argument takes one o=
f the following strings: `CONSERVATIVE`, `ECONOMICAL` or `UNSET`=20
(which defaults to `CONSERVATIVE`).
- The RPC return object now contains an `errors` member, which returns =
errors encountered during processing.
- If Bitcoin Knots has not been running for long enough and has not see=
n enough blocks or transactions to produce an accurate fee=20
estimation, an error will be returned (previously a value of -1 was used to=
indicate an error, which could be confused for a feerate).
=2D A new `estimaterawfee` RPC is added to provide raw fee data. External c=
lients can query and use this data in their own fee estimation=20
logic.
Multi-wallet endpoint support
=2D----------------------------
Bitcoin Knots has supported loading multiple, separate wallets since
v0.13.1.knots20161027. However, due to the RPC API, RPC users could only ac=
cess
a single wallet at a time - accessing multiple wallets over RPC required the
use of multiple RPC users. 0.15.0 adds support for specifying the wallet by
name using a URI path for the RPC endpoint.
To do this, HTTP RPC requests should be send to the `<RPC IP address>:<RPC =
port>/wallet/<wallet name>/` endpoint, for example=20
`127.0.0.1:8332/wallet/wallet1.dat/`.
`bitcoin-cli` commands should be run with a `-rpcwallet` option, for exampl=
e `bitcoin-cli -rpcwallet=3Dwallet1.dat getbalance`.
Additionally, a new `listwallets` RPC method is added to display which wall=
ets are currently loaded. The names returned by this method are=20
the same as those used in the HTTP endpoint and for the `rpcwallet` argumen=
t.
This new wallet endpoint interface should be considered unstable for versio=
n 0.15.0, and there may backwards-incompatible changes in future=20
versions.
The original RPC user based wallet selection continues to work as well, ind=
ependently from the new endpoint support. `rpcauth` users that=20
specify a specific wallet are prohibited from using endpoints to access oth=
ers. However, note that (at least in this version) `listwallets`=20
will always list all wallets on the node, even if access to them has been l=
imited!
Removal of no-fee transactions
=2D-----------------------------
In previous versions of Bitcoin Knots, transactions without a fee would be =
allowed to be relayed if the node's memory pool was empty and=20
the age and value of UTXOs they spent (coin age priority) was sufficiently =
high.
=46or a long time now, this has been effectively useless, due to wide adopt=
ion of Bitcoin as well as regular spam attacks. Since the code no=20
longer has a purpose, support for no-fee transactions has been removed.
Segwit checkpoint
=2D----------------
Since Segwit has activated, this release adds a new checkpoint locking to t=
he first Segwit block. This guarantees no matter what happens,=20
your node will not accept a reorg to attempt theft of Segwit funds. (This i=
sn't a real-world risk anyway, but there's no reason not to=20
guarantee it with a checkpoint.)
Mempool Persistence Across Restarts
=2D----------------------------------
Version 0.13.1.knots20161212 introduced mempool persistence across restarts=
(the mempool is saved to a `mempool.dat` file in the data=20
directory prior to shutdown and restores the mempool when the node is resta=
rted). Version 0.15 allows this feature to be switched on or off=20
using the `-persistmempool` command-line option (See [PR 9966](https://gith=
ub.com/bitcoin/bitcoin/pull/9966)). By default, the option is=20
set to true, and the mempool is saved on shutdown and reloaded on startup. =
If set to false, the `mempool.dat` file will neither be loaded=20
on startup nor saved on shutdown.
The new `savemempool` RPC can be used to trigger an immediate save of the m=
empool state at any time.
New RPC methods
=2D--------------
Version 0.15 introduces several new RPC methods:
=2D `abortrescan` stops current wallet rescan, e.g. when triggered by an `i=
mportprivkey` call (See [PR 10208]
(https://github.com/bitcoin/bitcoin/pull/10208)).
=2D `combinerawtransaction` accepts a JSON array of raw transactions and co=
mbines them into a single raw transaction (See [PR 10571]
(https://github.com/bitcoin/bitcoin/pull/10571)).
=2D `estimaterawfee` returns raw fee data so that customized logic can be i=
mplemented to analyze the data and calculate estimates. See [Fee=20
Estimation Improvements](#fee-estimation-improvements) for full details on =
changes to the fee estimation logic and interface.
=2D `getchaintxstats` returns statistics about the total number and rate of=
transactions
in the chain (See [PR 9733](https://github.com/bitcoin/bitcoin/pull/9733)=
).
=2D `listwallets` lists wallets which are currently loaded. See the *Multi-=
wallet* section
of these release notes for full details (See [Multi-wallet endpoint suppo=
rt](#multi-wallet-endpoint-support)).
=2D `savemempool` causes the memory pool to immediately update `mempool.dat=
` with its current state.
=2D `uptime` returns the total runtime of the `bitcoind` server since its l=
ast start (See [PR 10400]
(https://github.com/bitcoin/bitcoin/pull/10400)).
=2D `verifyscript` allows verification of a specific Bitcoin Script, option=
ally including a full trace of the evaluation.
Additionally, the `bitcoin-cli` tool now supports a `-getinfo` command line=
option to fetch information from multiple `get*info` RPC=20
methods. This is intended to replace the deprecated `getinfo` RPC method.
Wallet ZeroMQ publishers
=2D-----------------------
This release includes experimental ZeroMQ publishers for wallet transaction=
s.
See [the ZMQ documentation](zmq.md) for details.
Low-level RPC changes
=2D--------------------
=2D When using Bitcoin Knots in multi-wallet mode, RPC requests for wallet =
methods may specify
the wallet that they're intended for. See [Multi-wallet endpoint support]=
(#multi-wallet-endpoint-support) for full details.
=2D The `optintorbf` parameter for `createrawtransaction` and `fundrawtrans=
action` has been renamed to `replaceable` to match `bumpfee`.
=2D The new database model no longer stores information about transaction
versions of unspent outputs (See [Performance improvements](#performance-=
improvements)). This means that:
- The `gettxout` RPC no longer has a `version` field in the response.
- The `gettxoutsetinfo` RPC reports `hash_serialized_2` instead of `hash_=
serialized`,
which does not commit to the transaction versions of unspent outputs, b=
ut does
commit to the height and coinbase information.
- The `getutxos` REST path no longer reports the `txvers` field in JSON f=
ormat,
and always reports 0 for transaction versions in the binary format
=2D The `estimatefee` RPC is deprecated. Clients should switch to using the=
`estimatesmartfee` RPC, which returns better fee estimates. See=20
[Fee Estimation Improvements](#fee-estimation-improvements) for full detail=
s on changes to the fee estimation logic and interface.
=2D The `gettxoutsetinfo` response now contains `disk_size` and `bogosize` =
instead of
`bytes_serialized`. The first is a more accurate estimate of actual disk =
usage, but
is not deterministic. The second is unrelated to disk usage, but is a
database-independent metric of UTXO set size: it counts every UTXO entry =
as 50 + the
length of its scriptPubKey (See [PR 10426](https://github.com/bitcoin/bit=
coin/pull/10426)).
=2D `signrawtransaction` can no longer be used to combine multiple transact=
ions into a single transaction. Instead, use the new=20
`combinerawtransaction` RPC (See [PR 10571](https://github.com/bitcoin/bitc=
oin/pull/10571)).
=2D `fundrawtransaction` no longer accepts a `reserveChangeKey` option. Thi=
s option used to allow RPC users to fund a raw transaction using=20
an key from the keypool for the change address without removing it from the=
available keys in the keypool. The key could then be re-used=20
for a `getnewaddress` call, which could potentially result in confusing or =
dangerous behaviour (See [PR 10784]
(https://github.com/bitcoin/bitcoin/pull/10784)).
=2D `estimatepriority` and `estimatesmartpriority` have been removed. Estim=
ating coin age priority is no longer supported.
=2D In the `getpeerinfo` RPC, the return object for each peer now returns a=
n `addrbind` member, which contains the ip address and port of the=20
connection to the peer. This is in addition to the `addrlocal` member which=
contains the ip address and port of the local node as reported=20
by the peer (See [PR 10478](https://github.com/bitcoin/bitcoin/pull/10478)).
=2D The `resendwallettransactions` RPC throws an error if the `-walletbroad=
cast` option is set to false (See [PR 10995]
(https://github.com/bitcoin/bitcoin/pull/10995)).
=2D The second argument in the `submitblock` RPC argument has been renamed =
from `parameters` to `dummy`. This argument never had any effect,=20
and the renaming is simply to communicate this fact to the user (See [PR 10=
191](https://github.com/bitcoin/bitcoin/pull/10191))
(Clients should, however, use positional arguments for `submitblock` in o=
rder to be compatible with BIP 22.)
=2D Mempool entries returned from RPC now include the hash of the entire tr=
ansaction as a `wtxid` key.
Low-level p2p changes
=2D--------------------
Support for a new kind of inventory item MSG_FILTERED_WITNESS_BLOCK has bee=
n added. This extends the functionality of BIP37, used=20
identically to MSG_FILTERED_BLOCK. But whereas MSG_FILTERED_BLOCK returns t=
ransactions with no witness data, MSG_FILTERED_WITNESS_BLOCK=20
returns the transactions serialized along with witness data. No merkle proo=
f for witness inclusion in blocks is provided, but clients can=20
still verify the witness is valid (although possibly not the same witness a=
s in the blockchain).
BIP37 has well-known privacy issues and will likely be deprecated in favor =
of clientside block filtering in future software releases.=20
MSG_FILTERED_WITNESS_BLOCK is provided to enable clients that rely on BIP37=
to easily add Segregated Witness support immediately until=20
better sync mechanisms gain widespread use.
Warning: BIP37 leaks private data and witness data is not authenticated. Yo=
u must use a trusted node to use this mechanism securely.
0.15.0 Change log
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
### RPC and other APIs
=2D #9485 `61a640e` ZMQ example using python3 and asyncio (mcelrath)
=2D #9894 `0496e15` remove 'label' filter for rpc command help (instagibbs)
=2D #9853 `02bd6e9` Fix error codes from various RPCs (jnewbery)
=2D #9842 `598ef9c` Fix RPC failure testing (continuation of #9707) (jnewbe=
ry)
=2D #10038 `d34995a` Add mallocinfo mode to `getmemoryinfo` RPC (laanwj)
=2D #9500 `3568b30` [Qt][RPC] Autocomplete commands for 'help' command in d=
ebug console (achow101)
=2D #10056 `e6156a0` [zmq] Call va_end() on va_start()ed args (kallewoof)
=2D #10086 `7438cea` Trivial: move rpcserialversion into RPC option group (=
jlopp)
=2D #10150 `350b224` [rpc] Add logging rpc (jnewbery)
=2D #10208 `393160c` [wallet] Rescan abortability (kallewoof)
=2D #10143 `a987def` [net] Allow disconnectnode RPC to be called with node =
id (jnewbery)
=2D #10281 `0e8499c` doc: Add RPC interface guidelines (laanwj)
=2D #9733 `d4732f3` Add getchaintxstats RPC (sipa)
=2D #10310 `f4b15e2` [doc] Add hint about getmempoolentry to getrawmempool =
help (kallewoof)
=2D #8704 `96c850c` [RPC] Transaction details in getblock (achow101)
=2D #8952 `9390845` Add query options to listunspent RPC call (pedrobranco)
=2D #10413 `08ac35a` Fix docs (there's no rpc command setpaytxfee) (RHavar)
=2D #8384 `e317c0d` Add witness data output to TxInError messages (instagib=
bs)
=2D #9571 `4677151` RPC: getblockchaininfo returns BIP signaling statistics=
(pinheadmz)
=2D #10450 `ef2d062` Fix bumpfee rpc "errors" return value (ryanofsky)
=2D #10475 `39039b1` [RPC] getmempoolinfo mempoolminfee is a BTC/KB feerate=
(instagibbs)
=2D #10478 `296928e` rpc: Add listen address to incoming connections in `ge=
tpeerinfo` (laanwj)
=2D #10403 `08d0390` Fix importmulti failure to return rescan errors (ryano=
fsky)
=2D #9740 `9fec4da` Add friendly output to dumpwallet (aideca)
=2D #10426 `16f6c98` Replace bytes_serialized with bogosize (sipa)
=2D #10252 `980deaf` RPC/Mining: Restore API compatibility for prioritisetr=
ansaction (luke-jr)
=2D #9672 `46311e7` Opt-into-RBF for RPC & bitcoin-tx (luke-jr)
=2D #10481 `9c248e3` Decodehextx scripts sanity check (achow101)
=2D #9738 `c94b89e` gettxoutproof() should return consistent result (jnewbe=
ry)
=2D #10191 `00350bd` [trivial] Rename unused RPC arguments 'dummy' (jnewber=
y)
=2D #10627 `b62b4c8` fixed listunspent rpc convert parameter (tnakagawa)
=2D #10412 `bef02fb` Improve wallet rescan API (ryanofsky)
=2D #10400 `1680ee0` [RPC] Add an uptime command that displays the amount o=
f time (in seconds) bitcoind has been running (rvelhote)
=2D #10683 `d81bec7` rpc: Move the `generate` RPC call to rpcwallet (laanwj)
=2D #10710 `30bc0f6` REST/RPC example update (Mirobit)
=2D #10747 `9edda0c` [rpc] fix verbose argument for getblock in bitcoin-cli=
(jnewbery)
=2D #10589 `104f5f2` More economical fee estimates for RBF and RPC options =
to control (morcos)
=2D #10543 `b27b004` Change API to estimaterawfee (morcos)
=2D #10807 `afd2fca` getbalance example covers at least 6 confirms (instagi=
bbs)
=2D #10707 `75b5643` Better API for estimatesmartfee RPC (morcos)
=2D #10784 `9e8d6a3` Do not allow users to get keys from keypool without re=
serving them (TheBlueMatt)
=2D #10857 `d445a2c` [RPC] Add a deprecation warning to getinfo's output (a=
chow101)
=2D #10571 `adf170d` [RPC]Move transaction combining from signrawtransactio=
n to new RPC (achow101)
=2D #10783 `041dad9` [RPC] Various rpc argument fixes (instagibbs)
=2D #9622 `6ef3c7e` [rpc] listsinceblock should include lost transactions w=
hen parameter is a reorg'd block (kallewoof)
=2D #10799 `8537187` Prevent user from specifying conflicting parameters to=
fundrawtx (TheBlueMatt)
=2D #10931 `0b11a07` Fix misleading "Method not found" multiwallet errors (=
ryanofsky)
=2D #10788 `f66c596` [RPC] Fix addwitnessaddress by replacing ismine with p=
roducesignature (achow101)
=2D #10999 `627c3c0` Fix amounts formatting in `decoderawtransaction` (laan=
wj)
=2D #11002 `4268426` [wallet] return correct error code from resendwallettr=
ansaction (jnewbery)
=2D #11029 `96a63a3` [RPC] trivial: gettxout no longer shows version of tx =
(FelixWeis)
=2D #11083 `6c2b008` Fix combinerawtransaction RPC help result section (jon=
asnick)
=2D #11027 `07164bb` [RPC] Only return hex field once in getrawtransaction =
(achow101)
=2D #10698 `5af6572` Be consistent in calling transactions "replaceable" fo=
r Opt-In RBF (TheBlueMatt)
=2D n/a `a92a946` *RPC: prioritisetransaction: Make both deltas optional=
(luke-jr)
=2D #7061 `e893d96` *RPC/Wallet: rescanblockchain: Support inverted height =
order (luke-jr)
=2D #10554 `e700ad2` *ZMQ: add publishers for wallet transactions. (somdoro=
n)
=2D n/a `0afed04` *Add script tracing capabilities to libbitcoinconsensu=
s and a new RPC verifyscript method (luke-jr)
=2D #10871 `977d461` *Handle getinfo in bitcoin-cli w/ -getinfo (laanwj, ac=
how101, jnewbery)
=2D #10997 `d6f667e` *RPC: Add option -stdinrpcpass to bitcoin-cli to allow=
RPC password to be read from standard input (jharvell)
=2D #11099 `941c2f6` *[RPC][mempool]: Add savemempool RPC (greenaddress)
=2D #11203 `e731a14` *rpc: add wtxid to mempool entry output (sdaftuar)
=2D #7533 `963da74` *AcceptToMemoryPool: Standardise rejection reason forma=
t (luke-jr)
### Block and transaction handling
=2D #9801 `a8c5751` Removed redundant parameter from mempool.PrioritiseTran=
saction (gubatron)
=2D #9819 `1efc99c` Remove harmless read of unusued priority estimates (mor=
cos)
=2D #9822 `b7547fa` Remove block file location upgrade code (benma)
=2D #9602 `30ff3a2` Remove free transactions (but not coin-age priority, in=
Knots) - implementation (morcos)
=2D #9548 `47510ad` Remove min reasonable fee (morcos)
=2D #10249 `c73af54` Switch CCoinsMap from boost to std unordered_map (sipa)
=2D #9966 `2a183de` Control mempool persistence using a command line parame=
ter (jnewbery)
=2D #10199 `318ea50` Better fee estimates (morcos)
=2D #10196 `bee3529` Bugfix: PrioritiseTransaction updates the mempool tx c=
ounter (sdaftuar)
=2D #10195 `1088b02` Switch chainstate db and cache to per-txout model (sip=
a)
=2D #10284 `c2ab38b` Always log debug information for fee calculation in Cr=
eateTransaction (morcos)
=2D #10503 `efbcf2b` Use REJECT_DUPLICATE for already known and conflicted =
txn (sipa)
=2D #10537 `b3eb0d6` Few Minor per-utxo assert-semantics re-adds and tweak =
(TheBlueMatt)
=2D #10626 `8c841a3` doc: Remove outdated minrelaytxfee comment (MarcoFalke)
=2D #10559 `234ffc6` Change semantics of HaveCoinInCache to match HaveCoin =
(morcos)
=2D #10581 `7878353` Simplify return values of GetCoin/HaveCoin(InCache) (s=
ipa)
=2D #10684 `a381f6a` Remove no longer used mempool.exists(outpoint) (morcos)
=2D #10148 `d4e551a` Use non-atomic flushing with block replay (sipa)
=2D #10685 `30c2130` Clarify CCoinsViewMemPool documentation (TheBlueMatt)
=2D #10558 `90a002e` Address nits from per-utxo change (morcos)
=2D #10706 `6859ad2` Improve wallet fee logic and fix GUI bugs (morcos)
=2D #10526 `754aa02` Force on-the-fly compaction during pertxout upgrade (s=
ipa)
=2D #10985 `d896d5c` Add undocumented -forcecompactdb to force LevelDB comp=
actions (sipa)
=2D #10292 `e4bbd3d` Improved efficiency in COutPoint constructors (mm-s)
=2D #10290 `8d6d43e` Add -stopatheight for benchmarking (sipa)
=2D #7533 `916f12f` *AcceptToMemoryPool: Replace fLimitFree[=3Dfalse] with =
rejectmsg_gratis in ignore_rejects (luke-jr)
### P2P protocol and network code
=2D #9726 `7639d38` netbase: Do not print an error on connection timeouts t=
hrough proxy (laanwj)
=2D #9805 `5b583ef` Add seed.btc.petertodd.org to mainnet DNS seeds (petert=
odd)
=2D #9861 `22f609f` Trivial: Debug log ambiguity fix for peer addrs (keystr=
ike)
=2D #9774 `90cb2a2` Enable host lookups for -proxy and -onion parameters (j=
mcorgan)
=2D #9558 `7b585cf` Clarify assumptions made about when BlockCheck is calle=
d (TheBlueMatt)
=2D #10135 `e19586a` [p2p] Send the correct error code in reject messages (=
jnewbery)
=2D #9665 `eab00d9` Use cached [compact] blocks to respond to getdata messa=
ges (TheBlueMatt)
=2D #10215 `a077a90` Check interruptNet during dnsseed lookups (TheBlueMatt)
=2D #10234 `faf2dea` [net] listbanned RPC and QT should show correct banned=
subnets (jnewbery)
=2D #10134 `314ebdf` [qa] Fixes segwit block relay test after inv-direct-fe=
tch was disabled (sdaftuar)
=2D #10351 `3f57c55` removed unused code in INV message (Greg-Griffith)
=2D #10061 `ae78609` [net] Added SetSocketNoDelay() utility function (tjps)
=2D #10408 `28c6e8d` Net: Improvements to Tor control port parser (str4d)
=2D #10460 `5c63d66` Broadcast address every day, not 9 hours (sipa)
=2D #10471 `400fdd0` Denote functions CNode::GetRecvVersion() and CNode::Ge=
tRefCount() as const (pavlosantoniou)
=2D #10345 `67700b3` [P2P] Timeout for headers sync (sdaftuar)
=2D #10564 `8d9f45e` Return early in IsBanned (gmaxwell)
=2D #10587 `de8db47` Net: Fix resource leak in ReadBinaryFile(...) (practic=
alswift)
=2D #9549 `b33ca14` [net] Avoid possibility of NULL pointer dereference in =
MarkBlockAsInFlight(...) (practicalswift)
=2D #10446 `2772dc9` net: avoid extra dns query per seed (theuni)
=2D #10824 `9dd6a2b` Avoid unnecessary work in SetNetworkActive (promag)
=2D #10948 `df3a6f4` p2p: Hardcoded seeds update pre-0.15 branch (laanwj)
=2D #10977 `02f4c4a` [net] Fix use of uninitialized value in getnetworkinfo=
(const JSONRPCRequest&) (practicalswift)
=2D #10982 `c8b62c7` Disconnect network service bits 6 and 8 until Aug 1, 2=
018 (TheBlueMatt)
=2D #11012 `0e5cff6` Make sure to clean up mapBlockSource if we've already =
seen the block (theuni)
=2D n/a `bd5b64d` *utilioprio: Add Windows support as ioprio_set_file_id=
le (luke-jr)
=2D #10731 `69577ae` *Escape rather than remove any printable characters in=
UAs (luke-jr)
=2D #10350 `3f388dd` *Handle MSG_FILTERED_WITNESS_BLOCK messages (CodeShark)
### Validation
=2D #9725 `67023e9` CValidationInterface Cleanups (TheBlueMatt)
=2D #10178 `2584925` Remove CValidationInterface::UpdatedTransaction (TheBl=
ueMatt)
=2D #10201 `a6548a4` pass Consensus::Params& to functions in validation.cpp=
and make them static (mariodian)
=2D #10297 `431a548` Simplify DisconnectBlock arguments/return value (sipa)
=2D #10464 `f94b7d5` Introduce static DoWarning (simplify UpdateTip) (jtimo=
n)
=2D #10569 `2e7d8f8` Fix stopatheight (achow101)
=2D #10192 `2935b46` Cache full script execution results in addition to sig=
natures (TheBlueMatt)
=2D #10179 `21ed30a` Give CValidationInterface Support for calling notifica=
tions on the CScheduler Thread (TheBlueMatt)
=2D #10557 `66270a4` Make check to distinguish between orphan txs and old t=
xs more efficient (morcos)
=2D #10775 `7c2400c` nCheckDepth chain height fix (romanornr)
=2D #10821 `16240f4` Add SSE4 optimized SHA256 (sipa)
=2D #10854 `04d395e` Avoid using sizes on non-fixed-width types to derive p=
rotocol constants (gmaxwell)
=2D #10945 `2a50b11` Update defaultAssumeValid according to release-process=
=2Emd (gmaxwell)
=2D #10986 `2361208` Update chain transaction statistics (sipa)
=2D #11028 `6bdf4b3` Avoid masking of difficulty adjustment errors by check=
points (sipa)
=2D #9533 `cb598cf` Allow non-power-of-2 signature cache sizes (sipa)
=2D #9208 `acd9957` Improve DisconnectTip performance (sdaftuar)
=2D #10618 `f90603a` Remove confusing MAX_BLOCK_BASE_SIZE (gmaxwell)
=2D #10758 `bd92424` Fix some chainstate-init-order bugs (TheBlueMatt)
=2D #10550 `b7296bc` Don't return stale data from CCoinsViewCache::Cursor()=
(ryanofsky)
=2D #10998 `2507fd5` Fix upgrade cancel warnings (TheBlueMatt)
=2D #9868 `cbdb473` Abstract out the command line options for block assembl=
y (sipa)
=2D n/a `08c84c7` *Add a new checkpoint at block 481,824 (luke-jr)
### Build system
=2D #9727 `5f0556d` Remove fallbacks for boost_filesystem < v3 (laanwj)
=2D #9788 `50a2265` gitian: bump descriptors for master (theuni)
=2D #9794 `7ca2f54` Minor update to qrencode package builder (mitchellcash)
=2D #9514 `2cc0df1` release: Windows signing script (theuni)
=2D #9921 `8b789d8` build: Probe MSG_DONTWAIT in the same way as MSG_NOSIGN=
AL (laanwj)
=2D #10011 `32d1b34` build: Fix typo s/HAVE_DONTWAIT/HAVE_MSG_DONTWAIT (laa=
nwj)
=2D #9946 `90dd9e6` Fix build errors if spaces in path or parent directory =
(pinheadmz)
=2D #10136 `81da4c7` build: Disable Wshadow warning (laanwj)
=2D #10166 `64962ae` Ignore Doxyfile generated from Doxyfile.in template (p=
aveljanik)
=2D #10239 `0416ea9` Make Boost use std::atomic internally (sipa)
=2D #10228 `27faa6c` build: regenerate bitcoin-config.h as necessary (theun=
i)
=2D #10273 `8979f45` [scripts] Minor improvements to `macdeployqtplus` scri=
pt (chrisgavin)
=2D #10325 `a26280b` 0.15.0 Depends Updates (fanquake)
=2D #10328 `79aeff6` Update contrib/debian to latest Ubuntu PPA upload (The=
BlueMatt)
=2D #7522 `d25449f` Bugfix: Only use git for build info if the repository i=
s actually the right one (luke-jr)
=2D #10489 `e654d61` build: silence gcc7's implicit fallthrough warning (th=
euni)
=2D #10549 `ad1a13e` Avoid printing generic and duplicated "checking for QT=
" during ./configure (drizzt)
=2D #10628 `8465b68` [depends] expat 2.2.1 (fanquake)
=2D #10806 `db825d2` build: verify that the assembler can handle crc32 func=
tions (theuni)
=2D #10766 `b4d03be` Building Environment: Set ARFLAGS to cr (ReneNyffenegg=
er)
=2D #10803 `91edda8` Explicitly search for bdb5.3 (pstratem)
=2D #10855 `81560b0` random: only use getentropy on openbsd (theuni)
=2D #10508 `1caafa6` Run Qt wallet tests on travis (ryanofsky)
=2D #10851 `e222618` depends: fix fontconfig with newer glibc (theuni)
=2D #10971 `88b1e4b` build: fix missing sse42 in depends builds (theuni)
=2D #11097 `129b03f` gitian: quick hack to fix version string in releases (=
theuni)
=2D #10039 `919aaf6` Fix compile errors with Qt 5.3.2 and Boost 1.55.0 (rya=
nofsky)
=2D #10168 `7032021` Fix build warning from #error text (jnewbery)
=2D #10301 `318392c` Check if sys/random.h is required for getentropy (jame=
shilliard)
=2D n/a `699287a` *Move Win32 defines to configure.ac to ensure they are=
globally defined (luke-jr)
=2D n/a `ad1b260` *nsis-header.bmp: Generate from SVG (luke-jr)
### GUI
=2D #9724 `1a9fd5c` Qt/Intro: Add explanation of IBD process (luke-jr)
=2D #9834 `b00ba62` qt: clean up initialize/shutdown signals (benma)
=2D #9481 `ce01e62` [Qt] Show more significant warning if we fall back to t=
he default fee (jonasschnelli)
=2D #9974 `b9f930b` Add basic Qt wallet test (ryanofsky)
=2D #9690 `a387d3a` Change 'Clear' button string to 'Reset' (da2x)
=2D #9592 `9c7b7cf` [Qt] Add checkbox in the GUI to opt-in to RBF when crea=
ting a transaction (ryanofsky)
=2D #10098 `2b477e6` Make qt wallet test compatible with qt4 (ryanofsky)
=2D #9890 `1fa4ae6` Add a button to open the config file in a text editor (=
ericshawlinux)
=2D #10156 `51833a1` Fix for issues with startup and multiple monitors on w=
indows (AllanDoensen)
=2D #10177 `de01da7` Changed "Send" button default status from true to fals=
e (KibbledJiveElkZoo)
=2D #10221 `e96486c` Stop treating coinbase outputs differently in GUI: sho=
w them at 1conf (TheBlueMatt)
=2D #10231 `987a6c0` [Qt] Reduce a significant cs_main lock freeze (jonassc=
hnelli)
=2D #10242 `f6f3b58` [qt] Don't call method on null WalletModel object (rya=
nofsky)
=2D #10093 `a3e756b` [Qt] Don't add arguments of sensitive command to conso=
le window (jonasschnelli)
=2D #10362 `95546c8` [GUI] Add OSX keystroke to RPCConsole info (spencerlie=
vens)
=2D #9697 `962cd3f` [Qt] simple fee bumper with user verification (jonassch=
nelli)
=2D #10390 `e477516` [wallet] remove minimum total fee option (instagibbs)
=2D #10420 `4314544` Add Qt tests for wallet spends & bumpfee (ryanofsky)
=2D #10454 `c1c9a95` Fix broken q4 test build (ryanofsky)
=2D #10449 `64beb13` Overhaul Qt fee bumper (jonasschnelli)
=2D #10582 `7c72fb9` Pass in smart fee slider value to coin control dialog =
(morcos)
=2D #10673 `4c72cc3` [qt] Avoid potential null pointer dereference in Trans=
actionView::exportClicked() (practicalswift)
=2D #10769 `8fdd23a` [Qt] replace fee slider with a Dropdown, extend conf. =
targets (jonasschnelli)
=2D #10870 `412b466` [Qt] Use wallet 0 in rpc console if running with multi=
ple wallets (jonasschnelli)
=2D #10988 `a9dd111` qt: Increase BLOCK_CHAIN_SIZE constants (laanwj)
=2D #10644 `e292140` Slightly overhaul NSI pixmaps (jonasschnelli)
=2D #10660 `0c3542e` Allow to cancel the txdb upgrade via splashscreen keyp=
ress 'q' (jonasschnelli)
=2D #11169 `ad55de9` *Make tabs toolbar no longer have a context menu (acho=
w101)
=2D #11198 `14ccd4d` *Fix display of package name on 'open config file' too=
ltip (esotericnonsense)
=2D #11206 `819e3dd` *Move "Hide tray icon" accelerator to checkbox text wh=
ere it belongs (polyetilen)
=2D #11208 `80b0f37` *Fixing offscreen GUI issue (MeshCollider)
### Wallet
=2D #9359 `f7ec7cf` Add test for CWalletTx::GetImmatureCredit() returning s=
tale values (ryanofsky)
=2D #9576 `56ab672` [wallet] Remove redundant initialization (practicalswif=
t)
=2D #9333 `fa625b0` Document CWalletTx::mapValue entries and remove erase o=
f nonexistent "version" entry (ryanofsky)
=2D #9906 `72fb515` Disallow copy constructor CReserveKeys (instagibbs)
=2D #9369 `3178b2c` Factor out CWallet::nTimeSmart computation into a metho=
d (ryanofsky)
=2D #9830 `afcd7c0` Add safe flag to listunspent result (NicolasDorier)
=2D #9993 `c49355c` Initialize nRelockTime (pstratem)
=2D #9818 `3d857f3` Save watch only key timestamps when reimporting keys (r=
yanofsky)
=2D #9294 `f34cdcb` Use internal HD chain for change outputs (hd split) (jo=
nasschnelli)
=2D #10164 `e183ea2` Wallet: reduce excess logic InMempool() (kewde)
=2D #10186 `c9ff4f8` Remove SYNC_TRANSACTION_NOT_IN_BLOCK magic number (jne=
wbery)
=2D #10226 `64c45aa` wallet: Use boost to more portably ensure -wallet spec=
ifies only a filename (luke-jr)
=2D #9827 `c91ca0a` Improve ScanForWalletTransactions return value (ryanofs=
ky)
=2D #9951 `fa1ac28` Wallet database handling abstractions/simplifications (=
laanwj)
=2D #10265 `c29a0d4` [wallet] [moveonly] Check non-null pindex before poten=
tially referencing (kallewoof)
=2D #10283 `a550f6e` Cleanup: reduce to one GetMinimumFee call signature (m=
orcos)
=2D #10294 `e2b99b1` [Wallet] unset change position when there is no change=
(instagibbs)
=2D #10115 `d3dce0e` Avoid reading the old hd master key during wallet encr=
yption (TheBlueMatt)
=2D #10341 `18c9deb` rpc/wallet: Workaround older UniValue which returns a =
std::string temporary for get_str (luke-jr)
=2D #10308 `94e5227` [wallet] Securely erase potentially sensitive keys/val=
ues (tjps)
=2D #10257 `ea1fd43` [test] Add test for getmemoryinfo (jimmysong)
=2D #10295 `ce8176d` [qt] Move some WalletModel functions into CWallet (rya=
nofsky)
=2D #10506 `7cc2c67` Fix bumpfee test after #10449 (ryanofsky)
=2D #10500 `098b01d` Avoid CWalletTx copies in GetAddressBalances and GetAd=
dressGroupings (ryanofsky)
=2D #10455 `0747d33` Simplify feebumper minimum fee code slightly (ryanofsk=
y)
=2D #10522 `2805d60` [wallet] Remove unused variables (practicalswift)
=2D #8694 `177433a` Basic multiwallet support (luke-jr)
=2D #10598 `7a74f88` Supress struct/class mismatch warnings introduced in #=
10284 (paveljanik)
=2D #9343 `209eef6` Don't create change at dust limit (morcos)
=2D #10744 `ed88e31` Use method name via __func__ macro (darksh1ne)
=2D #10712 `e8b9523` Add change output if necessary to reduce excess fee (m=
orcos)
=2D #10816 `1c011ff` Properly forbid -salvagewallet and -zapwallettxes for =
multi wallet (morcos)
=2D #10235 `5cfdda2` Track keypool entries as internal vs external in memor=
y (TheBlueMatt)
=2D #10330 `bf0a08b` [wallet] fix zapwallettxes interaction with persistent=
mempool (jnewbery)
=2D #10831 `0b01935` Batch flushing operations to the walletdb during top u=
p and increase keypool size (gmaxwell)
=2D #10795 `7b6e8bc` No longer ever reuse keypool indexes (TheBlueMatt)
=2D #10849 `bde4f93` Multiwallet: simplest endpoint support (jonasschnelli)
=2D #10817 `9022aa3` Redefine Dust and add a discard_rate (morcos)
=2D #10883 `bf3b742` Rename -usewallet to -rpcwallet (morcos)
=2D #10604 `420238d` [wallet] [tests] Add listwallets RPC, include wallet n=
ame in `getwalletinfo` and add multiwallet test (jnewbery)
=2D #10885 `70888a3` Reject invalid wallets (promag)
=2D #10949 `af56397` Clarify help message for -discardfee (morcos)
=2D #10942 `2e857bb` Eliminate fee overpaying edge case when subtracting fe=
e from recipients (morcos)
=2D #10995 `fa64636` Fix resendwallettransactions assert failure if -wallet=
broadcast=3D0 (TheBlueMatt)
=2D #11022 `653a46d` Basic keypool topup (jnewbery)
=2D #11081 `9fe1f6b` Add length check for CExtKey deserialization (jonassch=
nelli, guidovranken)
=2D #11044 `4ef8374` [wallet] Keypool topup cleanups (jnewbery)
=2D #11145 `e51bb71` Fix rounding bug in calculation of minimum change (mor=
cos)
=2D #9605 `779f2f9` Use CScheduler for wallet flushing, remove ThreadFlushW=
alletDB (TheBlueMatt)
=2D #10108 `4e3efd4` ApproximateBestSubset should take inputs by reference,=
not value (RHavar)
### Mining
=2D n/a `2421dd2` *coin_age_priority: Ensure nPackagesSelected and nDesce=
ndantsUpdated get updated for priority-mined transactions (luke-
jr)
### Tests and QA
=2D #9744 `8efd1c8` Remove unused module from rpc-tests (34ro)
=2D #9657 `7ff4a53` Improve rpc-tests.py (jnewbery)
=2D #9766 `7146d96` Add --exclude option to rpc-tests.py (jnewbery)
=2D #9577 `d6064a8` Fix docstrings in qa tests (jnewbery)
=2D #9823 `a13a417` qa: Set correct path for binaries in rpc tests (MarcoFa=
lke)
=2D #9847 `6206252` Extra test vector for BIP32 (sipa)
=2D #9350 `88c2ae3` [Trivial] Adding label for amount inside of tx_valid/tx=
_invalid.json (Christewart)
=2D #9888 `36afd4d` travis: Verify commits only for one target (MarcoFalke)
=2D #9904 `58861ad` test: Fail if InitBlockIndex fails (laanwj)
=2D #9828 `67c5cc1` Avoid -Wshadow warnings in wallet_tests (ryanofsky)
=2D #9832 `48c3429` [qa] assert_start_raises_init_error (NicolasDorier)
=2D #9739 `9d5fcbf` Fix BIP68 activation test (jnewbery)
=2D #9547 `d32581c` bench: Assert that division by zero is unreachable (pra=
cticalswift)
=2D #9843 `c78adbf` Fix segwit getblocktemplate test (jnewbery)
=2D #9929 `d5ce14e` tests: Delete unused function _rpchost_to_args (laanwj)
=2D #9555 `19be26a` [test] Avoid reading a potentially uninitialized variab=
le in tx_invalid-test (transaction_tests.cpp) (practicalswift)
=2D #9945 `ac23a7c` Improve logging in bctest.py if there is a formatting m=
ismatch (jnewbery)
=2D #9768 `8910b47` [qa] Add logging to test_framework.py (jnewbery)
=2D #9972 `21833f9` Fix extended rpc tests broken by #9768 (jnewbery)
=2D #9977 `857d1e1` QA: getblocktemplate_longpoll.py should always use >0 f=
ee tx (sdaftuar)
=2D #9970 `3cc13ea` Improve readability of segwit.py, smartfees.py (sdaftua=
r)
=2D #9497 `2c781fb` CCheckQueue Unit Tests (JeremyRubin)
=2D #10024 `9225de2` [trivial] Use log.info() instead of print() in remaini=
ng functional test cases (jnewbery)
=2D #9956 `3192e52` Reorganise qa directory (jnewbery)
=2D #10017 `02d64bd` combine_logs.py - aggregates log files from multiple b=
itcoinds during functional tests (jnewbery)
=2D #10047 `dfef6b6` [tests] Remove unused variables and imports (practical=
swift)
=2D #9701 `a230b05` Make bumpfee tests less fragile (ryanofsky)
=2D #10053 `ca20923` [test] Allow functional test cases to be skipped (jnew=
bery)
=2D #10052 `a0b1e57` [test] Run extended tests once daily in Travis (jnewbe=
ry)
=2D #10069 `1118493` [QA] Fix typo in fundrawtransaction test (NicolasDorie=
r)
=2D #10083 `c044f03` [QA] Renaming rawTx into rawtx (NicolasDorier)
=2D #10073 `b1a4f27` Actually run assumevalid.py (jnewbery)
=2D #9780 `c412fd8` Suppress noisy output from qa tests in Travis (jnewbery)
=2D #10096 `79af9fb` Check that all test scripts in test/functional are bei=
ng run (jnewbery)
=2D #10076 `5b029aa` [qa] combine_logs: Use ordered list for logfiles (Marc=
oFalke)
=2D #10107 `f2734c2` Remove unused variable. Remove accidental trailing sem=
icolons in Python code (practicalswift)
=2D #10109 `8ac8041` Remove SingleNodeConnCB (jnewbery)
=2D #10114 `edc62c9` [tests] sync_with_ping should assert that ping hasn't =
timed out (jnewbery)
=2D #10128 `427d2fd` Speed Up CuckooCache tests (JeremyRubin)
=2D #10072 `12af74b` Remove sources of unreliablility in extended functiona=
l tests (jnewbery)
=2D #10077 `ebfd653` [qa] Add setnetworkactive smoke test (MarcoFalke)
=2D #10152 `080d7c7` [trivial] remove unused line in Travis config (jnewber=
y)
=2D #10159 `df1ca9e` [tests] color test results and sort alphabetically (jn=
ewbery)
=2D #10124 `88799ea` [test] Suppress test logging spam (jnewbery)
=2D #10142 `ed09dd3` Run bitcoin_test-qt under minimal QPA platform (ryanof=
sky)
=2D #9949 `a27dbc5` [bench] Avoid function call arguments which are pointer=
s to uninitialized values (practicalswift)
=2D #10187 `b44adf9` tests: Fix test_runner return value in case of skipped=
test (laanwj)
=2D #10197 `d86bb07` [tests] Functional test warnings (jnewbery)
=2D #10219 `9111df9` Tests: Order Python Tests Differently (jimmysong)
=2D #10229 `f3db4c6` Tests: Add test for getdifficulty (jimmysong)
=2D #10224 `2723bcd` [test] Add test for getaddednodeinfo (jimmysong)
=2D #10023 `c530c15` [tests] remove maxblocksinflight.py (functionality cov=
ered by other test) (jnewbery)
=2D #10097 `1b25b6d` Move zmq test skipping logic into individual test case=
(jnewbery)
=2D #10272 `54e2d87` [Tests] Prevent warning: variable 'x' is uninitialized=
(paveljanik)
=2D #10225 `e0a7e19` [test] Add aborttrescan tests (kallewoof)
=2D #10278 `8254a8a` [test] Add Unit Test for GetListenPort (jimmysong)
=2D #10280 `47535d7` [test] Unit test amount.h/amount.cpp (jimmysong)
=2D #10256 `80c3a73` [test] Add test for gettxout to wallet.py (jimmysong)
=2D #10264 `492d22f` [test] Add tests for getconnectioncount, getnettotals =
and ping (jimmysong)
=2D #10169 `8f3e384` [tests] Remove func test code duplication (jnewbery)
=2D #10198 `dc8fc0c` [tests] Remove is_network_split from functional test f=
ramework (jnewbery)
=2D #10255 `3c5e6c9` [test] Add test for listaddressgroupings (jimmysong)
=2D #10137 `75171f0` Remove unused import. Remove accidental trailing semic=
olons (practicalswift)
=2D #10307 `83073de` [tests] allow zmq test to be run in out-of-tree builds=
(jnewbery)
=2D #10344 `e927483` [tests] Fix abandonconflict.py intermittency (jnewbery)
=2D #10318 `170bc2c` [tests] fix wait_for_inv() (jnewbery)
=2D #10171 `fff72de` [tests] Add node methods to test framework (jnewbery)
=2D #10352 `23d78c4` test: Add elapsed time to RPC tracing (laanwj)
=2D #10342 `6a796b2` [tests] Improve mempool_persist test (jnewbery)
=2D #10287 `776ba23` [tests] Update Unit Test for addrman.h/addrman.cpp (ji=
mmysong)
=2D #10365 `7ee5236` [tests] increase timeouts in sendheaders test (jnewber=
y)
=2D #10361 `f6241b3` qa: disablewallet: Check that wallet is really disable=
d (MarcoFalke)
=2D #10371 `4b766fc` [tests] Clean up addrman_tests.cpp (jimmysong)
=2D #10253 `87abe20` [test] Add test for getnetworkhashps (jimmysong)
=2D #10376 `8bd16ee` [tests] fix disconnect_ban intermittency (jnewbery)
=2D #10374 `5411997` qa: Warn when specified test is not found (MarcoFalke)
=2D #10405 `0542978` tests: Correct testcase in script_tests.json for large=
number OP_EQUAL (laanwj)
=2D #10429 `6b99daf` tests: fix spurious addrman test failure (theuni)
=2D #10433 `8e57256` [tests] improve tmpdir structure (jnewbery)
=2D #10415 `217b416` [tests] Speed up fuzzing by ~200x when using afl-fuzz =
(practicalswift)
=2D #10445 `b4b057a` Add test for empty chain and reorg consistency for get=
txoutsetinfo (gmaxwell)
=2D #10423 `1aefc94` [tests] skipped tests should clean up after themselves=
(jnewbery)
=2D #10359 `329fc1d` [tests] functional tests should call BitcoinTestFramew=
ork start/stop node methods (jnewbery)
=2D #10514 `e103b3f` Bugfix: missing =3D=3D 0 after randrange (sipa)
=2D #10515 `c871f32` [test] Add test for getchaintxstats (jimmysong)
=2D #10509 `bea5b00` Remove xvfb configuration from travis (ryanofsky)
=2D #10535 `30853e1` [qa] fundrawtx: Fix shutdown race (MarcoFalke)
=2D #9909 `300f8e7` tests: Add FindEarliestAtLeast test for edge cases (rya=
nofsky)
=2D #10331 `75e898c` Share config between util and functional tests (jnewbe=
ry)
=2D #10321 `e801084` Use FastRandomContext for all tests (sipa)
=2D #10524 `6c2d81f` [tests] Remove printf(...) (practicalswift)
=2D #10547 `71ab6e5` [tests] Use FastRandomContext instead of boost::random=
::{mt19937,uniform_int_distribution} (practicalswift)
=2D #10551 `6702617` [Tests] Wallet encryption functional tests (achow101)
=2D #10555 `643fa0b` [tests] various improvements to zmq_test.py (jnewbery)
=2D #10533 `d083bd9` [tests] Use cookie auth instead of rpcuser and rpcpass=
word (achow101)
=2D #10632 `c68a9a6` qa: Add stopatheight test (MarcoFalke)
=2D #10636 `4bc853b` [qa] util: Check return code after closing bitcoind pr=
oc (MarcoFalke)
=2D #10662 `e0a7801` Initialize randomness in benchmarks (achow101)
=2D #10612 `7c87a9c` The young person's guide to the test_framework (jnewbe=
ry)
=2D #10659 `acb1153` [qa] blockchain: Pass on closed connection during gene=
rate call (MarcoFalke)
=2D #10690 `416af3e` [qa] Bugfix: allow overriding extra_args in Comparison=
TestFramework (sdaftuar)
=2D #10556 `65cc7aa` Move stop/start functions from utils.py into BitcoinTe=
stFramework (jnewbery)
=2D #10704 `dd07f47` [tests] nits in dbcrash.py (jnewbery)
=2D #10743 `be82498` [test] don't run dbcrash.py on Travis (jnewbery)
=2D #10761 `d3b5870` [tests] fix replace_by_fee.py (jnewbery)
=2D #10759 `1d4805c` Fix multi_rpc test for hosts that dont default to utf8=
(TheBlueMatt)
=2D #10190 `e4f226a` [tests] mining functional tests (including regression =
test for submitblock) (jnewbery)
=2D #10739 `1fc783f` test: Move variable `state` down where it is used (pav=
eljanik)
=2D #9980 `fee0d80` Fix mem access violation merkleblock (Christewart)
=2D #10893 `0c173a1` [QA] Avoid running multiwallet.py twice (jonasschnelli)
=2D #10927 `9d5e8f9` test: Make sure wallet.backup is created in temp path =
(laanwj)
=2D #10899 `f29d5db` [test] Qt: Use _putenv_s instead of setenv on Windows =
builds (brianmcmichael)
=2D #10912 `5c8eb79` [tests] Fix incorrect memory_cleanse(=E2=80=A6) call i=
n crypto_tests.cpp (practicalswift)
=2D #11001 `fa8a063` [tests] Test disconnecting unsupported service bits lo=
gic (jnewbery)
=2D #10695 `929fd72` [qa] Rewrite BIP65/BIP66 functional tests (sdaftuar)
=2D #10963 `ecd2135` [bench] Restore format state of cout after printing wi=
th std::fixed/setprecision (practicalswift)
=2D #11025 `e5d26e4` qa: Fix inv race in example_test (MarcoFalke)
=2D #10765 `2c811e0` Tests: address placement should be deterministic by de=
fault (ReneNyffenegger)
=2D #11000 `ac016e1` test: Add resendwallettransactions functional tests (p=
romag)
=2D #11032 `aeb3175` [qa] Fix block message processing error in sendheaders=
=2Epy (sdaftuar)
=2D #10105 `0b9fb68` [tests] fixup - make all Travis test runs quiet, non j=
ust cron job runs (jnewbery)
=2D #10222 `6ce7337` [tests] test_runner - check unicode (jnewbery)
=2D #10327 `35da2ae` [tests] remove import-abort-rescan.py (jnewbery)
=2D #11023 `bf74d37` [tests] Add option to attach a python debugger if func=
tional test fails (jnewbery)
=2D #10565 `8c2098a` [coverage] Remove subtrees and benchmarks from coverag=
e report (achow101)
=2D #7061 `21630f8` *Add RPC based rescan test (jonasschnelli)
=2D #9152 `d109d58` *QA: Functional test for sweepprivkeys (luke-jr)
### Miscellaneous
=2D #9871 `be8ba2c` Add a tree sha512 hash to merge commits (sipa)
=2D #9821 `d19d45a` util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD (l=
aanwj)
=2D #9903 `ba80a68` Docs: add details to -rpcclienttimeout doc (ian-kelling)
=2D #9910 `53c300f` Docs: correct and elaborate -rpcbind doc (ian-kelling)
=2D #9905 `01b7cda` [contrib] gh-merge: Move second sha512 check to the end=
(MarcoFalke)
=2D #9880 `4df8213` Verify Tree-SHA512s in merge commits, enforce sigs are =
not SHA1 (TheBlueMatt)
=2D #9932 `00c13ea` Fix verify-commits on travis and always check top commi=
t's tree (TheBlueMatt)
=2D #9952 `6996e06` Add historical release notes for 0.14.0 (laanwj)
=2D #9940 `fa99663` Fix verify-commits on OSX, update for new bad Tree-SHA5=
12, point travis to different keyservers (TheBlueMatt)
=2D #9963 `8040ae6` util: Properly handle errors during log message formatt=
ing (laanwj)
=2D #9984 `cce056d` devtools: Make github-merge compute SHA512 from git, in=
stead of worktree (laanwj)
=2D #9995 `8bcf934` [doc] clarify blockchain size and pruning (askmike)
=2D #9734 `0c17afc` Add updating of chainTxData to release process (sipa)
=2D #10063 `530fcbd` add missing spaces so that markdown recognizes headlin=
e (flack)
=2D #10085 `db1ae54` Docs: remove 'noconnect' option (jlopp)
=2D #10090 `8e4f7e7` Update bitcoin.conf with example for pruning (coinable=
s)
=2D #9424 `1a5aaab` Change LogAcceptCategory to use uint32_t rather than se=
ts of strings (gmaxwell)
=2D #10036 `fbf36ca` Fix init README format to render correctly on github (=
jlopp)
=2D #10058 `a2cd0b0` No need to use OpenSSL malloc/free (tjps)
=2D #10123 `471ed00` Allow debug logs to be excluded from specified compone=
nt (jnewbery)
=2D #10104 `fadf078` linearize script: Option to use RPC cookie (achow101)
=2D #10162 `a3a2160` [trivial] Log calls to getblocktemplate (jnewbery)
=2D #10155 `928695b` build: Deduplicate version numbers (laanwj)
=2D #10211 `a86255b` [doc] Contributor fixes & new "finding reviewers" sect=
ion (kallewoof)
=2D #10250 `1428f30` Fix some empty vector references (sipa)
=2D #10270 `95f5e44` Remove Clang workaround for Boost 1.46 (fanquake)
=2D #10263 `cb007e4` Trivial: fix fee estimate write error log message (Cry=
ptAxe)
=2D #9670 `bd9ec0e` contrib: github-merge improvements (laanwj)
=2D #10260 `1d75597` [doc] Minor corrections to osx dependencies (fanquake)
=2D #10189 `750c5a5` devtools/net: add a verifier for scriptable changes. U=
se it to make CNode::id private (theuni)
=2D #10322 `bc64b5a` Use hardware timestamps in RNG seeding (sipa)
=2D #10381 `7f2b9e0` Shadowing warnings are not enabled by default, update =
doc accordingly (paveljanik)
=2D #10380 `b6ee855` [doc] Removing comments about dirty entries on txmempo=
ol (madeo)
=2D #10383 `d0c37ee` [logging] log system time and mock time (jnewbery)
=2D #10404 `b45a52a` doc: Add logging to FinalizeNode() (sdaftuar)
=2D #10388 `526e839` Output line to debug.log when IsInitialBlockDownload l=
atches to false (morcos)
=2D #10372 `15254e9` Add perf counter data to GetStrongRandBytes state in s=
cheduler (TheBlueMatt)
=2D #10461 `55b72f3` Update style guide (sipa)
=2D #10486 `10e8c0a` devtools: Retry after signing fails in github-merge (l=
aanwj)
=2D #10447 `f259263` Make bitcoind invalid argument error message specific =
(laanwj)
=2D #10495 `6a38b79` contrib: Update location of seeds.txt (laanwj)
=2D #10469 `b6b150b` Fixing typo in rpcdump.cpp help message (keystrike)
=2D #10451 `27b9931` contrib/init/bitcoind.openrcconf: Don't disable wallet=
by default (luke-jr)
=2D #10323 `00d3692` Update to latest libsecp256k1 master (sipa)
=2D #10422 `cec9e1e` Fix timestamp in fee estimate debug message (morcos)
=2D #10566 `5d034ee` [docs] Use the "domain name setup" image (previously u=
nused) in the gitian docs (practicalswift)
=2D #10534 `a514ac3` Clarify prevector::erase and avoid swap-to-clear (sipa)
=2D #10575 `22ec768` Header include guideline (sipa)
=2D #10480 `fbf5d3b` Improve commit-check-script.sh (sipa)
=2D #10502 `1ad3d4e` scripted-diff: Remove BOOST_FOREACH, Q_FOREACH and PAI=
RTYPE (jtimon)
=2D #10377 `b63be2c` Use rdrand as entropy source on supported platforms (s=
ipa)
=2D #9895 `228c319` Turn TryCreateDirectory() into TryCreateDirectories() (=
benma)
=2D #10602 `d76e84a` Make clang-format use C++11 features (e.g. A<A<int>> i=
nstead of A<A<int> >) (practicalswift)
=2D #10623 `c38f540` doc: Add 0.14.2 release notes (MarcoFalke)
=2D #10276 `b750b33` contrib/verifybinaries: allow filtering by platform (k=
nocte)
=2D #10248 `01c4b14` Rewrite addrdb with less duplication using CHashVerifi=
er (sipa)
=2D #10577 `232508f` Add an explanation of quickly hashing onto a non-power=
of two range (gmaxwell)
=2D #10608 `eee398f` Add a comment explaining the use of MAX_BLOCK_BASE_SIZ=
E (gmaxwell)
=2D #10728 `7397af9` fix typo in help text for removeprunedfunds (AkioNak)
=2D #10193 `6dbcc74` scripted-diff: Remove #include <boost/foreach.hpp> (jt=
imon)
=2D #10676 `379aed0` document script-based return fields for validateaddres=
s (instagibbs)
=2D #10651 `cef4b5c` Verify binaries from bitcoincore.org and bitcoin.org (=
TheBlueMatt)
=2D #10786 `ca4c545` Add PR description to merge commit in github-merge.py =
(sipa)
=2D #10812 `c5904e8` [utils] Allow bitcoin-cli's -rpcconnect option to be u=
sed with square brackets (jnewbery)
=2D #10842 `3895e25` Fix incorrect Doxygen tag (@ince =E2=86=92 @since). Do=
xygen parameter name matching (practicalswift)
=2D #10681 `df0793f` add gdb attach process to test README (instagibbs)
=2D #10789 `1124328` Punctuation/grammer fixes in rpcwallet.cpp (stevendlan=
der)
=2D #10655 `78f307b` Properly document target_confirmations in listsinceblo=
ck (RHavar)
=2D #10917 `5c003cb` developer-notes: add reference to snake_case and Pasca=
lCase (benma)
=2D #11003 `4b5a7ce` Docs: Capitalize bullet points in CONTRIBUTING guide (=
eklitzke)
=2D #10968 `98aa3f6` Add instructions for parallel gitian builds (coblee)
=2D #11076 `1c4b9b3` 0.15 release-notes nits: fix redundancy, remove accide=
ntal parenthesis & fix range style (practicalswift)
=2D #11090 `8f0121c` Update contributor names in release-notes.md (Derek701)
=2D #11056 `cbdd338` disable jni in builds (instagibbs)
=2D #11080 `2b59cfb` doc: Update build-openbsd for 6.1 (laanwj)
=2D #11119 `0a6af47` [doc] build-windows: Mention that only trusty works (M=
arcoFalke)
=2D #11108 `e8ad101` Changing -txindex requires -reindex, not -reindex-chai=
nstate (TheBlueMatt)
=2D #9792 `342b9bc` FastRandomContext improvements and switch to ChaCha20 (=
sipa)
=2D #9505 `67ed40e` Prevector Quick Destruct (JeremyRubin)
=2D #10820 `ef37f20` Use cpuid intrinsics instead of asm code (sipa)
=2D #9999 `a328904` [LevelDB] Plug leveldb logs to bitcoin logs (NicolasDor=
ier)
=2D #9693 `c5e9e42` Prevent integer overflow in ReadVarInt (gmaxwell)
=2D #10129 `351d0ad` scheduler: fix sub-second precision with boost < 1.50 =
(theuni)
=2D #10153 `fade788` logging: Fix off-by-one for shrinkdebugfile default (M=
arcoFalke)
=2D #10305 `c45da32` Fix potential NPD introduced in b297426c (TheBlueMatt)
=2D #10338 `daf3e7d` Maintain state across GetStrongRandBytes calls (sipa)
=2D #10544 `a4fe077` Update to LevelDB 1.20 (sipa)
=2D #10614 `cafe24f` random: fix crash on some 64bit platforms (theuni)
=2D #10714 `2a09a38` Avoid printing incorrect block indexing time due to un=
initialized variable (practicalswift)
=2D #10837 `8bc6d1f` Fix resource leak on error in GetDevURandom (corebob)
=2D #10832 `89bb036` init: Factor out AppInitLockDataDirectory and fix star=
tup core dump issue (laanwj)
=2D #10914 `b995a37` Add missing lock in CScheduler::AreThreadsServicingQue=
ue() (TheBlueMatt)
=2D #10958 `659c096` Update to latest Bitcoin patches for LevelDB (sipa)
=2D #10919 `c1c671f` Fix more init bugs (TheBlueMatt)
=2D #7107 `9190a76` *ArgsManager: ForceSetArg with int64_t (luke-jr)
=2D #9849 `6091bf1` *CValidationInterface: ValidationInterfaceUnregistering=
, called when being unregistered (luke-jr)
=2D n/a `c36f8ba` *Bump minimum Windows version to Vista
=2D #10729 `2eea64b` *script/interpreter: Wrap EvalScript in a ScriptExecut=
ion class (luke-jr)
=2D #10730 `7acd5fc` *Move script flag to/from-string logic from tests to s=
cript/interpreter (luke-jr)
Credits
=3D=3D=3D=3D=3D=3D=3D
Thanks to everyone who directly contributed to this release:
=2D =E3=83=AD=E3=83=8F=E3=83=B3 =E3=83=80=E3=83=AB
=2D Ahmad Kazi
=2D aideca
=2D Akio Nakamura
=2D Aleksandras Ragovskis
=2D Alex Morcos
=2D Allan Doensen
=2D Andres G. Aragoneses
=2D Andrew Chow
=2D Angel Leon
=2D Awemany
=2D Bob McElrath
=2D Brian McMichael
=2D BtcDrak
=2D Charlie Lee
=2D Chris Gavin
=2D Chris Stewart
=2D Cory Fields
=2D CryptAxe
=2D Dag Robole
=2D Daniel Aleksandersen
=2D Daniel Cousens
=2D Daniel Edgecumbe
=2D darksh1ne
=2D Dimitris Tsapakidis
=2D Doron Somech
=2D Eric Lombrozo
=2D Eric Shaw
=2D Evan Klitzke
=2D fanquake
=2D Felix Weis
=2D flack
=2D Guido Vranken
=2D Greg Griffith
=2D Gregory Maxwell
=2D Gregory Sanders
=2D Ian Kelling
=2D Jack Grigg
=2D James Evans
=2D James Hilliard
=2D Jameson Lopp
=2D Jeremy Rubin
=2D Jimmy Song
=2D Jo=C3=A3o Barbosa
=2D Joe Harvell
=2D Johnathan Corgan
=2D John Newbery
=2D Jonas Schnelli
=2D Jorge Tim=C3=B3n
=2D Karl-Johan Alm
=2D kewde
=2D KibbledJiveElkZoo
=2D Kirit Thadaka
=2D kobake
=2D Kyle Honeycutt
=2D Lawrence Nahum
=2D Luke Dashjr
=2D Marco Falke
=2D Marcos Mayorga
=2D Marijn Stollenga
=2D Mario Dian
=2D Mark Friedenbach
=2D Marko Bencun
=2D Masahiko Hyuga
=2D Matt Corallo
=2D Matthew Zipkin
=2D Matthias Grundmann
=2D MeshCollider
=2D Michael Goldstein
=2D Michael Rotarius
=2D Mikerah
=2D Mike van Rossum
=2D Mitchell Cash
=2D Nicolas Dorier
=2D Patrick Strateman
=2D Pavel Jan=C3=ADk
=2D Pavlos Antoniou
=2D Pavol Rusnak
=2D Pedro Branco
=2D Peter Todd
=2D Pieter Wuille
=2D practicalswift
=2D Ren=C3=A9 Nyffenegger
=2D Ricardo Velhote
=2D romanornr
=2D Russell Yanofsky
=2D Rusty Russell
=2D Ryan Havar
=2D shaolinfry
=2D Shigeya Suzuki
=2D Simone Madeo
=2D Spencer Lievens
=2D Steven D. Lander
=2D Suhas Daftuar
=2D Takashi Mitsuta
=2D Thomas Snider
=2D Timothy Redaelli
=2D tintinweb
=2D tnaka
=2D Warren Togami
=2D Wladimir J. van der Laan
As well as everyone that helped translating on [Transifex](https://www.tran=
sifex.com/projects/p/bitcoin/).
--nextPart1689491.1TiKLb9zaX
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part.
-----BEGIN PGP SIGNATURE-----
iQQzBAABCAAdFiEE5GOpP18xF+7ebHMWvQKUJCH0iJ8FAlm8FkoACgkQvQKUJCH0
iJ/mFR/+MOL/w713lsm6+kwDO6UMuLkliVZu02w/xzy92GnEi+pwhCPI1uBb2oyj
npOKal/lZYECtSdQol1nErjiVfRXM9fa3HtISNtv6UmX3YZMLOHIVFOMWXWgVXKj
PmvJhX/Js3k3hm+rMS1ZEY/DBr0UtBoM7kXnfIXVh04fCQ20bVLlN9/wliLO1S8o
kjXSDrf8MkRrtPg+0QtTPIx+wP6iY3tLdoBLLJrxualZpP34eJFhD7SipsVCYkfz
yitilPIUjCj0gNJlF/epfZzZr5TBmNhUqKxpk1K14fLlH2I+IhZ15kZX79NaRd2H
al0gqZju9BdqwWeoTV9JpNDtPDqCiEkZHN7A2EibDXmFm6JkzNERKwnwkyBoygjN
nD+KnELFAX1NqI2qvzNmreE6AXg6UqC1l7IQoWAy1lVWXXgQDYfeZnEwfnGOUONt
fMJc+vY9eXCucuAcHJNSgCxjgGGfmbvi5upPsNZ2oR/ynnsXoFds4zoBkh68TLRb
6/W3IHjwVpgZai+HXm0e30ZJBMdAhvJ1pz3E+kJwyV7tKAgqnlJuBZ8hsi3255ER
W2MqDAkiuvD6uAKE2HFpQl1ZGimXfSVXPyhvRhsGCJDb9oX1U4q+2sVCQRHvsORh
a1tvWCTCR76rGrr/xWAoKAm8KXgylnKBHtv8mElgtwnv6yd8Fk/tB/G0mIRUnOSs
EaG3kx5zzeO/EomkEYxQzY+VdZODkwi+2pHBWDN3uPbB8ITDBPbGtmYQGbpcdl14
6lTiOl24tqR3VTNYyyg06eMDlygT8x0zHKFt7z925Al4/hjQ31sDCJ/xPQErmGLu
YMMqNSeayUVsvjlw2xiHl/qHf5HHBEudKa6j18FWWBDFyeW0sN/nHRvD1LIcBLDC
h34hyywMSzceBiXExS90DkVnlncADodMCleK+Xi0mXsfDon4uv26JLiRK9cUJMjf
egivcnIjJeH9hmLpZBwWeLE2mOg0vHuOxh+ZpOW0yPmJzdOIl4OMTeVS4SE2Cmpx
OrvS0kjhOOmQmLC3NqC5aZpXFfU8mmt/qT1T3egk0OVrbfnCFbhe6XuxXSGhoLV2
g1DpJG4O1bDqYTGvnh8pWWeFDKB3QYTcY2apfTcnZX88TchPkuj7dbJ12z+IDwyw
4r0+GmZxFxYdZ+ymU2LxAIpkwRdrxTmyDStYPGCpjA18fDJ55bJGtXlxdixwKP86
3/0PSye8OJCOP9IdISkKtzirRWvs7rDP4qcwhSsokk3WL61H7kGkRYlNR+n5uXsT
LLjEFzU0H/zk+vko/yvPZ1aNQiW2n38ZdK7hR/CXg2lY7EbkP0hEr4vXgd9moUnV
etgZu4dfKpsj64oUb6s8lizkKmcLXQ==
=nG2y
-----END PGP SIGNATURE-----
--nextPart1689491.1TiKLb9zaX--
|