You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

release-notes-0.14.0.md 47KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. Starwels version 0.14.0 is now available from:
  2. <https://github.com/starwels/starwels/releases>
  3. This is a new major version release, including new features, various bugfixes
  4. and performance improvements, as well as updated translations.
  5. Please report bugs using the issue tracker at github:
  6. <https://github.com/bitcoin/bitcoin/issues>
  7. To receive security and update notifications, please subscribe to:
  8. <https://bitcoincore.org/en/list/announcements/join/>
  9. Compatibility
  10. ==============
  11. Starwels is extensively tested on multiple operating systems using
  12. the Linux kernel, macOS 10.8+, and Windows Vista and later.
  13. Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support),
  14. No attempt is made to prevent installing or running the software on Windows XP, you
  15. can still do so at your own risk but be aware that there are known instabilities and issues.
  16. Please do not report issues about Windows XP to the issue tracker.
  17. Starwels should also work on most other Unix-like systems but is not
  18. frequently tested on them.
  19. Notable changes
  20. ===============
  21. Performance Improvements
  22. --------------
  23. Validation speed and network propagation performance have been greatly
  24. improved, leading to much shorter sync and initial block download times.
  25. - The script signature cache has been reimplemented as a "cuckoo cache",
  26. allowing for more signatures to be cached and faster lookups.
  27. - Assumed-valid blocks have been introduced which allows script validation to
  28. be skipped for ancestors of known-good blocks, without changing the security
  29. model. See below for more details.
  30. - In some cases, compact blocks are now relayed before being fully validated as
  31. per BIP152.
  32. - P2P networking has been refactored with a focus on concurrency and
  33. throughput. Network operations are no longer bottlenecked by validation. As a
  34. result, block fetching is several times faster than previous releases in many
  35. cases.
  36. - The UTXO cache now claims unused mempool memory. This speeds up initial block
  37. download as UTXO lookups are a major bottleneck there, and there is no use for
  38. the mempool at that stage.
  39. Manual Pruning
  40. --------------
  41. Starwels has supported automatically pruning the blockchain since 0.11. Pruning
  42. the blockchain allows for significant storage space savings as the vast majority of
  43. the downloaded data can be discarded after processing so very little of it remains
  44. on the disk.
  45. Manual block pruning can now be enabled by setting `-prune=1`. Once that is set,
  46. the RPC command `pruneblockchain` can be used to prune the blockchain up to the
  47. specified height or timestamp.
  48. `getinfo` Deprecated
  49. --------------------
  50. The `getinfo` RPC command has been deprecated. Each field in the RPC call
  51. has been moved to another command's output with that command also giving
  52. additional information that `getinfo` did not provide. The following table
  53. shows where each field has been moved to:
  54. |`getinfo` field | Moved to |
  55. |------------------|-------------------------------------------|
  56. `"version"` | `getnetworkinfo()["version"]`
  57. `"protocolversion"`| `getnetworkinfo()["protocolversion"]`
  58. `"walletversion"` | `getwalletinfo()["walletversion"]`
  59. `"balance"` | `getwalletinfo()["balance"]`
  60. `"blocks"` | `getblockchaininfo()["blocks"]`
  61. `"timeoffset"` | `getnetworkinfo()["timeoffset"]`
  62. `"connections"` | `getnetworkinfo()["connections"]`
  63. `"proxy"` | `getnetworkinfo()["networks"][0]["proxy"]`
  64. `"difficulty"` | `getblockchaininfo()["difficulty"]`
  65. `"testnet"` | `getblockchaininfo()["chain"] == "test"`
  66. `"keypoololdest"` | `getwalletinfo()["keypoololdest"]`
  67. `"keypoolsize"` | `getwalletinfo()["keypoolsize"]`
  68. `"unlocked_until"` | `getwalletinfo()["unlocked_until"]`
  69. `"paytxfee"` | `getwalletinfo()["paytxfee"]`
  70. `"relayfee"` | `getnetworkinfo()["relayfee"]`
  71. `"errors"` | `getnetworkinfo()["warnings"]`
  72. ZMQ On Windows
  73. --------------
  74. Previously the ZeroMQ notification system was unavailable on Windows
  75. due to various issues with ZMQ. These have been fixed upstream and
  76. now ZMQ can be used on Windows. Please see [this document](https://github.com/starwels/starwels/blob/master/doc/zmq.md) for
  77. help with using ZMQ in general.
  78. Nested RPC Commands in Debug Console
  79. ------------------------------------
  80. The ability to nest RPC commands has been added to the debug console. This
  81. allows users to have the output of a command become the input to another
  82. command without running the commands separately.
  83. The nested RPC commands use bracket syntax (i.e. `getwalletinfo()`) and can
  84. be nested (i.e. `getblock(getblockhash(1))`). Simple queries can be
  85. done with square brackets where object values are accessed with either an
  86. array index or a non-quoted string (i.e. `listunspent()[0][txid]`). Both
  87. commas and spaces can be used to separate parameters in both the bracket syntax
  88. and normal RPC command syntax.
  89. Network Activity Toggle
  90. -----------------------
  91. A RPC command and GUI toggle have been added to enable or disable all p2p
  92. network activity. The network status icon in the bottom right hand corner
  93. is now the GUI toggle. Clicking the icon will either enable or disable all
  94. p2p network activity. If network activity is disabled, the icon will
  95. be grayed out with an X on top of it.
  96. Additionally the `setnetworkactive` RPC command has been added which does
  97. the same thing as the GUI icon. The command takes one boolean parameter,
  98. `true` enables networking and `false` disables it.
  99. Out-of-sync Modal Info Layer
  100. ----------------------------
  101. When Starwels is out-of-sync on startup, a semi-transparent information
  102. layer will be shown over top of the normal display. This layer contains
  103. details about the current sync progress and estimates the amount of time
  104. remaining to finish syncing. This layer can also be hidden and subsequently
  105. unhidden by clicking on the progress bar at the bottom of the window.
  106. Support for JSON-RPC Named Arguments
  107. ------------------------------------
  108. Commands sent over the JSON-RPC interface and through the `starwels-cli` binary
  109. can now use named arguments. This follows the [JSON-RPC specification](http://www.jsonrpc.org/specification)
  110. for passing parameters by-name with an object.
  111. `starwels-cli` has been updated to support this by parsing `name=value` arguments
  112. when the `-named` option is given.
  113. Some examples:
  114. src/starwels-cli -named help command="help"
  115. src/starwels-cli -named getblockhash height=0
  116. src/starwels-cli -named getblock blockhash=000000003d69a915e9da53348c5c272978bb743442e3a6341c11061c125811a2
  117. src/starwels-cli -named sendtoaddress address="(snip)" amount="1.0" subtractfeefromamount=true
  118. The order of arguments doesn't matter in this case. Named arguments are also
  119. useful to leave out arguments that should stay at their default value. The
  120. rarely-used arguments `comment` and `comment_to` to `sendtoaddress`, for example, can
  121. be left out. However, this is not yet implemented for many RPC calls, this is
  122. expected to land in a later release.
  123. The RPC server remains fully backwards compatible with positional arguments.
  124. Opt into RBF When Sending
  125. -------------------------
  126. A new startup option, `-walletrbf`, has been added to allow users to have all
  127. transactions sent opt into RBF support. The default value for this option is
  128. currently `false`, so transactions will not opt into RBF by default. The new
  129. `bumpfee` RPC can be used to replace transactions that opt into RBF.
  130. Sensitive Data Is No Longer Stored In Debug Console History
  131. -----------------------------------------------------------
  132. The debug console maintains a history of previously entered commands that can be
  133. accessed by pressing the Up-arrow key so that users can easily reuse previously
  134. entered commands. Commands which have sensitive information such as passphrases and
  135. private keys will now have a `(...)` in place of the parameters when accessed through
  136. the history.
  137. Retaining the Mempool Across Restarts
  138. -------------------------------------
  139. The mempool will be saved to the data directory prior to shutdown
  140. to a `mempool.dat` file. This file preserves the mempool so that when the node
  141. restarts the mempool can be filled with transactions without waiting for new transactions
  142. to be created. This will also preserve any changes made to a transaction through
  143. commands such as `prioritisetransaction` so that those changes will not be lost.
  144. Final Alert
  145. -----------
  146. The Alert System was [disabled and deprecated](https://github.com/starwels/en/alert/2016-11-01-alert-retirement) in Starwels 0.12.1 and removed in 0.13.0.
  147. The Alert System was retired with a maximum sequence final alert which causes any nodes
  148. supporting the Alert System to display a static hard-coded "Alert Key Compromised" message which also
  149. prevents any other alerts from overriding it. This final alert is hard-coded into this release
  150. so that all old nodes receive the final alert.
  151. GUI Changes
  152. -----------
  153. - After resetting the options by clicking the `Reset Options` button
  154. in the options dialog or with the `-resetguioptions` startup option,
  155. the user will be prompted to choose the data directory again. This
  156. is to ensure that custom data directories will be kept after the
  157. option reset which clears the custom data directory set via the choose
  158. datadir dialog.
  159. - Multiple peers can now be selected in the list of peers in the debug
  160. window. This allows for users to ban or disconnect multiple peers
  161. simultaneously instead of banning them one at a time.
  162. - An indicator has been added to the bottom right hand corner of the main
  163. window to indicate whether the wallet being used is a HD wallet. This
  164. icon will be grayed out with an X on top of it if the wallet is not a
  165. HD wallet.
  166. Low-level RPC changes
  167. ----------------------
  168. - `importprunedfunds` only accepts two required arguments. Some versions accept
  169. an optional third arg, which was always ignored. Make sure to never pass more
  170. than two arguments.
  171. - The first boolean argument to `getaddednodeinfo` has been removed. This is
  172. an incompatible change.
  173. - RPC command `getmininginfo` loses the "testnet" field in favor of the more
  174. generic "chain" (which has been present for years).
  175. - A new RPC command `preciousblock` has been added which marks a block as
  176. precious. A precious block will be treated as if it were received earlier
  177. than a competing block.
  178. - A new RPC command `importmulti` has been added which receives an array of
  179. JSON objects representing the intention of importing a public key, a
  180. private key, an address and script/p2sh
  181. - Use of `getrawtransaction` for retrieving confirmed transactions with unspent
  182. outputs has been deprecated. For now this will still work, but in the future
  183. it may change to only be able to retrieve information about transactions in
  184. the mempool or if `txindex` is enabled.
  185. - A new RPC command `getmemoryinfo` has been added which will return information
  186. about the memory usage of Starwels. This was added in conjunction with
  187. optimizations to memory management. See [Pull #8753](https://github.com/bitcoin/bitcoin/pull/8753)
  188. for more information.
  189. - A new RPC command `bumpfee` has been added which allows replacing an
  190. unconfirmed wallet transaction that signaled RBF (see the `-walletrbf`
  191. startup option above) with a new transaction that pays a higher fee, and
  192. should be more likely to get confirmed quickly.
  193. HTTP REST Changes
  194. -----------------
  195. - UTXO set query (`GET /rest/getutxos/<checkmempool>/<txid>-<n>/<txid>-<n>
  196. /.../<txid>-<n>.<bin|hex|json>`) responses were changed to return status
  197. code `HTTP_BAD_REQUEST` (400) instead of `HTTP_INTERNAL_SERVER_ERROR` (500)
  198. when requests contain invalid parameters.
  199. Minimum Fee Rate Policies
  200. -------------------------
  201. Since the changes in 0.12 to automatically limit the size of the mempool and improve the performance of block creation in mining code it has not been important for relay nodes or miners to set `-minrelaytxfee`. With this release the following concepts that were tied to this option have been separated out:
  202. - incremental relay fee used for calculating BIP 125 replacement and mempool limiting. (1000 satoshis/kB)
  203. - calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB)
  204. - minimum fee rate of a package of transactions to be included in a block created by the mining code. If miners wish to set this minimum they can use the new `-blockmintxfee` option. (defaults to 1000 satoshis/kB)
  205. The `-minrelaytxfee` option continues to exist but is recommended to be left unset.
  206. Fee Estimation Changes
  207. ----------------------
  208. - Since 0.13.2 fee estimation for a confirmation target of 1 block has been
  209. disabled. The fee slider will no longer be able to choose a target of 1 block.
  210. This is only a minor behavior change as there was often insufficient
  211. data for this target anyway. `estimatefee 1` will now always return -1 and
  212. `estimatesmartfee 1` will start searching at a target of 2.
  213. - The default target for fee estimation is changed to 6 blocks in both the GUI
  214. (previously 25) and for RPC calls (previously 2).
  215. Removal of Priority Estimation
  216. ------------------------------
  217. - Estimation of "priority" needed for a transaction to be included within a target
  218. number of blocks has been removed. The RPC calls are deprecated and will either
  219. return -1 or 1e24 appropriately. The format for `fee_estimates.dat` has also
  220. changed to no longer save these priority estimates. It will automatically be
  221. converted to the new format which is not readable by prior versions of the
  222. software.
  223. - Support for "priority" (coin age) transaction sorting for mining is
  224. considered deprecated in Core and will be removed in the next major version.
  225. This is not to be confused with the `prioritisetransaction` RPC which will remain
  226. supported by Core for adding fee deltas to transactions.
  227. P2P connection management
  228. --------------------------
  229. - Peers manually added through the `-addnode` option or `addnode` RPC now have their own
  230. limit of eight connections which does not compete with other inbound or outbound
  231. connection usage and is not subject to the limitation imposed by the `-maxconnections`
  232. option.
  233. - New connections to manually added peers are performed more quickly.
  234. Introduction of assumed-valid blocks
  235. -------------------------------------
  236. - A significant portion of the initial block download time is spent verifying
  237. scripts/signatures. Although the verification must pass to ensure the security
  238. of the system, no other result from this verification is needed: If the node
  239. knew the history of a given block were valid it could skip checking scripts
  240. for its ancestors.
  241. - A new configuration option 'assumevalid' is provided to express this knowledge
  242. to the software. Unlike the 'checkpoints' in the past this setting does not
  243. force the use of a particular chain: chains that are consistent with it are
  244. processed quicker, but other chains are still accepted if they'd otherwise
  245. be chosen as best. Also unlike 'checkpoints' the user can configure which
  246. block history is assumed true, this means that even outdated software can
  247. sync more quickly if the setting is updated by the user.
  248. - Because the validity of a chain history is a simple objective fact it is much
  249. easier to review this setting. As a result the software ships with a default
  250. value adjusted to match the current chain shortly before release. The use
  251. of this default value can be disabled by setting -assumevalid=0
  252. Fundrawtransaction change address reuse
  253. ----------------------------------------
  254. - Before 0.14, `fundrawtransaction` was by default wallet stateless. In
  255. almost all cases `fundrawtransaction` does add a change-output to the
  256. outputs of the funded transaction. Before 0.14, the used keypool key was
  257. never marked as change-address key and directly returned to the keypool
  258. (leading to address reuse). Before 0.14, calling `getnewaddress`
  259. directly after `fundrawtransaction` did generate the same address as
  260. the change-output address.
  261. - Since 0.14, fundrawtransaction does reserve the change-output-key from
  262. the keypool by default (optional by setting `reserveChangeKey`, default =
  263. `true`)
  264. - Users should also consider using `getrawchangeaddress()` in conjunction
  265. with `fundrawtransaction`'s `changeAddress` option.
  266. Unused mempool memory used by coincache
  267. ----------------------------------------
  268. - Before 0.14, memory reserved for mempool (using the `-maxmempool` option)
  269. went unused during initial block download, or IBD. In 0.14, the UTXO DB cache
  270. (controlled with the `-dbcache` option) borrows memory from the mempool
  271. when there is extra memory available. This may result in an increase in
  272. memory usage during IBD for those previously relying on only the `-dbcache`
  273. option to limit memory during that time.
  274. 0.14.0 Change log
  275. =================
  276. Detailed release notes follow. This overview includes changes that affect
  277. behavior, not code moves, minor refactors and string updates. For convenience
  278. in locating the code changes and accompanying discussion, both the pull request
  279. and git merge commit are mentioned.
  280. ### RPC and other APIs
  281. - #8421 `b77bb95` httpserver: drop boost dependency (theuni)
  282. - #8638 `f061415` rest.cpp: change `HTTP_INTERNAL_SERVER_ERROR` to `HTTP_BAD_REQUEST` (djpnewton)
  283. - #8272 `91990ee` Make the dummy argument to getaddednodeinfo optional (sipa)
  284. - #8722 `bb843ad` starwels-cli: More detailed error reporting (laanwj)
  285. - #6996 `7f71a3c` Add preciousblock RPC (sipa)
  286. - #8788 `97c7f73` Give RPC commands more information about the RPC request (jonasschnelli)
  287. - #7948 `5d2c8e5` Augment getblockchaininfo bip9\_softforks data (mruddy)
  288. - #8980 `0e22855` importmulti: Avoid using boost::variant::operator!=, which is only in newer boost versions (luke-jr)
  289. - #9025 `4d8558a` Getrawtransaction should take a bool for verbose (jnewbery)
  290. - #8811 `5754e03` Add support for JSON-RPC named arguments (laanwj)
  291. - #9520 `2456a83` Deprecate non-txindex getrawtransaction and better warning (sipa)
  292. - #9518 `a65ced1` Return height of last block pruned by pruneblockchain RPC (ryanofsky)
  293. - #9222 `7cb024e` Add 'subtractFeeFromAmount' option to 'fundrawtransaction' (dooglus)
  294. - #8456 `2ef52d3` Simplified `bumpfee` command (mrbandrews)
  295. - #9516 `727a798` Bug-fix: listsinceblock: use fork point as reference for blocks in reorg'd chains (kallewoof)
  296. - #9640 `7bfb770` Bumpfee: bugfixes for error handling and feerate calculation (sdaftuar)
  297. - #9673 `8d6447e` Set correct metadata on bumpfee wallet transactions (ryanofsky)
  298. - #9650 `40f7e27` Better handle invalid parameters to signrawtransaction (TheBlueMatt)
  299. - #9682 `edc9e63` Require timestamps for importmulti keys (ryanofsky)
  300. - #9108 `d8e8b06` Use importmulti timestamp when importing watch only keys (on top of #9682) (ryanofsky)
  301. - #9756 `7a93af8` Return error when importmulti called with invalid address (ryanofsky)
  302. - #9778 `ad168ef` Add two hour buffer to manual pruning (morcos)
  303. - #9761 `9828f9a` Use 2 hour grace period for key timestamps in importmulti rescans (ryanofsky)
  304. - #9474 `48d7e0d` Mark the minconf parameter to move as ignored (sipa)
  305. - #9619 `861cb0c` Bugfix: RPC/Mining: GBT should return 1 MB sizelimit before segwit activates (luke-jr)
  306. - #9773 `9072395` Return errors from importmulti if complete rescans are not successful (ryanofsky)
  307. ### Block and transaction handling
  308. - #8391 `37d83bb` Consensus: Remove ISM (NicolasDorier)
  309. - #8365 `618c9dd` Treat high-sigop transactions as larger rather than rejecting them (sipa)
  310. - #8814 `14b7b3f` wallet, policy: ParameterInteraction: Don't allow 0 fee (MarcoFalke)
  311. - #8515 `9bdf526` A few mempool removal optimizations (sipa)
  312. - #8448 `101c642` Store mempool and prioritization data to disk (sipa)
  313. - #7730 `3c03dc2` Remove priority estimation (morcos)
  314. - #9111 `fb15610` Remove unused variable `UNLIKELY_PCT` from fees.h (fanquake)
  315. - #9133 `434e683` Unset fImporting for loading mempool (morcos)
  316. - #9179 `b9a87b4` Set `DEFAULT_LIMITFREERELAY` = 0 kB/minute (MarcoFalke)
  317. - #9239 `3fbf079` Disable fee estimates for 1-block target (morcos)
  318. - #7562 `1eef038` Bump transaction version default to 2 (btcdrak)
  319. - #9313,#9367 If we don't allow free txs, always send a fee filter (morcos)
  320. - #9346 `b99a093` Batch construct batches (sipa)
  321. - #9262 `5a70572` Prefer coins that have fewer ancestors, sanity check txn before ATMP (instagibbs)
  322. - #9288 `1ce7ede` Fix a bug if the min fee is 0 for FeeFilterRounder (morcos)
  323. - #9395 `0fc1c31` Add test for `-walletrejectlongchains` (morcos)
  324. - #9107 `7dac1e5` Safer modify new coins (morcos)
  325. - #9312 `a72f76c` Increase mempool expiry time to 2 weeks (morcos)
  326. - #8610 `c252685` Share unused mempool memory with coincache (sipa)
  327. - #9138 `f646275` Improve fee estimation (morcos)
  328. - #9408 `46b249e` Allow shutdown during LoadMempool, dump only when necessary (jonasschnelli)
  329. - #9310 `8c87f17` Assert FRESH validity in CCoinsViewCache::BatchWrite (ryanofsky)
  330. - #7871 `e2e624d` Manual block file pruning (mrbandrews)
  331. - #9507 `0595042` Fix use-after-free in CTxMemPool::removeConflicts() (sdaftuar)
  332. - #9380 `dd98f04` Separate different uses of minimum fees (morcos)
  333. - #9596 `71148b8` bugfix save feeDelta instead of priorityDelta in DumpMempool (morcos)
  334. - #9371 `4a1dc35` Notify on removal (morcos)
  335. - #9519 `9b4d267` Exclude RBF replacement txs from fee estimation (morcos)
  336. - #8606 `e2a1a1e` Fix some locks (sipa)
  337. - #8681 `6898213` Performance Regression Fix: Pre-Allocate txChanged vector (JeremyRubin)
  338. - #8223 `744d265` c++11: Use std::unique\_ptr for block creation (domob1812)
  339. - #9125 `7490ae8` Make CBlock a vector of shared\_ptr of CTransactions (sipa)
  340. - #8930 `93566e0` Move orphan processing to ActivateBestChain (TheBlueMatt)
  341. - #8580 `46904ee` Make CTransaction actually immutable (sipa)
  342. - #9240 `a1dcf2e` Remove txConflicted (morcos)
  343. - #8589 `e8cfe1e` Inline CTxInWitness inside CTxIn (sipa)
  344. - #9349 `2db4cbc` Make CScript (and prevector) c++11 movable (sipa)
  345. - #9252 `ce5c1f4` Release cs\_main before calling ProcessNewBlock, or processing headers (cmpctblock handling) (sdaftuar)
  346. - #9283 `869781c` A few more CTransactionRef optimizations (sipa)
  347. - #9499 `9c9af5a` Use recent-rejects, orphans, and recently-replaced txn for compact-block-reconstruction (TheBlueMatt)
  348. - #9813 `3972a8e` Read/write mempool.dat as a binary (paveljanik)
  349. ### P2P protocol and network code
  350. - #8128 `1030fa7` Turn net structures into dumb storage classes (theuni)
  351. - #8282 `026c6ed` Feeler connections to increase online addrs in the tried table (EthanHeilman)
  352. - #8462 `53f8f22` Move AdvertiseLocal debug output to net category (Mirobit)
  353. - #8612 `84decb5` Check for compatibility with download in FindNextBlocksToDownload (sipa)
  354. - #8594 `5b2ea29` Do not add random inbound peers to addrman (gmaxwell)
  355. - #8085 `6423116` Begin encapsulation (theuni)
  356. - #8715 `881d7ea` only delete CConnman if it's been created (theuni)
  357. - #8707 `f07424a` Fix maxuploadtarget setting (theuni)
  358. - #8661 `d2e4655` Do not set an addr time penalty when a peer advertises itself (gmaxwell)
  359. - #8822 `9bc6a6b` Consistent checksum handling (laanwj)
  360. - #8936 `1230890` Report NodeId in misbehaving debug (rebroad)
  361. - #8968 `3cf496d` Don't hold cs\_main when calling ProcessNewBlock from a cmpctblock (TheBlueMatt)
  362. - #9002 `e1d1f57` Make connect=0 disable automatic outbound connections (gmaxwell)
  363. - #9050 `fcf61b8` Make a few values immutable, and use deterministic randomness for the localnonce (theuni)
  364. - #8969 `3665483` Decouple peer-processing-logic from block-connection-logic (#2) (TheBlueMatt)
  365. - #8708 `c8c572f` have CConnman handle message sending (theuni)
  366. - #8709 `1e50d22` Allow filterclear messages for enabling TX relay only (rebroad)
  367. - #9045 `9f554e0` Hash P2P messages as they are received instead of at process-time (TheBlueMatt)
  368. - #9026 `dc6b940` Fix handling of invalid compact blocks (sdaftuar)
  369. - #8996 `ab914a6` Network activity toggle (luke-jr)
  370. - #9131 `62af164` fNetworkActive is not protected by a lock, use an atomic (jonasschnelli)
  371. - #8872 `0c577f2` Remove block-request logic from INV message processing (TheBlueMatt)
  372. - #8690 `791b58d` Do not fully sort all nodes for addr relay (sipa)
  373. - #9128 `76fec09` Decouple CConnman and message serialization (theuni)
  374. - #9226 `3bf06e9` Remove fNetworkNode and pnodeLocalHost (gmaxwell)
  375. - #9352 `a7f7651` Attempt reconstruction from all compact block announcements (sdaftuar)
  376. - #9319 `a55716a` Break addnode out from the outbound connection limits (gmaxwell)
  377. - #9261 `2742568` Add unstored orphans with rejected parents to recentRejects (morcos)
  378. - #9441 `8b66bf7` Massive speedup. Net locks overhaul (theuni)
  379. - #9375 `3908fc4` Relay compact block messages prior to full block connection (TheBlueMatt)
  380. - #9400 `8a445c5` Set peers as HB peers upon full block validation (instagibbs)
  381. - #9561 `6696b46` Wake message handling thread when we receive a new block (TheBlueMatt)
  382. - #9535 `82274c0` Split CNode::cs\_vSend: message processing and message sending (TheBlueMatt)
  383. - #9606 `3f9f962` Consistently use GetTimeMicros() for inactivity checks (sdaftuar)
  384. - #9594 `fd70211` Send final alert message to older peers after connecting (gmaxwell)
  385. - #9626 `36966a1` Clean up a few CConnman cs\_vNodes/CNode things (TheBlueMatt)
  386. - #9609 `4966917` Fix remaining net assertions (theuni)
  387. - #9671 `7821db3` Fix super-unlikely race introduced in 236618061a445d2cb11e72 (TheBlueMatt)
  388. - #9730 `33f3b21` Remove bitseed.xf2.org form the dns seed list (jonasschnelli)
  389. - #9698 `2447c10` Fix socket close race (theuni)
  390. - #9708 `a06ede9` Clean up all known races/platform-specific UB at the time PR was opened (TheBlueMatt)
  391. - #9715 `b08656e` Disconnect peers which we do not receive VERACKs from within 60 sec (TheBlueMatt)
  392. - #9720 `e87ce95` Fix banning and disallow sending messages before receiving verack (theuni)
  393. - #9268 `09c4fd1` Fix rounding privacy leak introduced in #9260 (TheBlueMatt)
  394. - #9075 `9346f84` Decouple peer-processing-logic from block-connection-logic (#3) (TheBlueMatt)
  395. - #8688 `047ded0` Move static global randomizer seeds into CConnman (sipa)
  396. - #9289 `d9ae1ce` net: drop boost::thread\_group (theuni)
  397. ### Validation
  398. - #9014 `d04aeba` Fix block-connection performance regression (TheBlueMatt)
  399. - #9299 `d52ce89` Remove no longer needed check for premature v2 txs (morcos)
  400. - #9273 `b68685a` Remove unused `CDiskBlockPos*` argument from ProcessNewBlock (TheBlueMatt)
  401. - #8895 `b83264d` Better SigCache Implementation (JeremyRubin)
  402. - #9490 `e126d0c` Replace FindLatestBefore used by importmulti with FindEarliestAtLeast (gmaxwell)
  403. - #9484 `812714f` Introduce assumevalid setting to skip validation presumed valid scripts (gmaxwell)
  404. - #9511 `7884956` Don't overwrite validation state with corruption check (morcos)
  405. - #9765 `1e92e04` Harden against mistakes handling invalid blocks (sdaftuar)
  406. - #9779 `3c02b95` Update nMinimumChainWork and defaultAssumeValid (gmaxwell)
  407. - #8524 `19b0f33` Precompute sighashes (sipa)
  408. - #9791 `1825a03` Avoid VLA in hash.h (sipa)
  409. ### Build system
  410. - #8238 `6caf3ee` ZeroMQ 4.1.5 && ZMQ on Windows (fanquake)
  411. - #8520 `b40e19c` Remove check for `openssl/ec.h` (laanwj)
  412. - #8617 `de07fdc` Include instructions to extract Mac OS X SDK on Linux using 7zip and SleuthKit (luke-jr)
  413. - #8566 `7b98895` Easy to use gitian building script (achow101)
  414. - #8604 `f256843` build,doc: Update for 0.13.0+ and OpenBSD 5.9 (laanwj)
  415. - #8640 `2663e51` depends: Remove Qt46 package (fanquake)
  416. - #8645 `8ea4440` Remove unused Qt 4.6 patch (droark)
  417. - #8608 `7e9ab95` Install manpages via make install, also add some autogenerated manpages (nomnommai)
  418. - #8781 `ca69ef4` contrib: delete `qt_translations.py` (MarcoFalke)
  419. - #8783 `64dc645` share: remove qt/protobuf.pri (MarcoFalke)
  420. - #8423 `3166dff` depends: expat 2.2.0, ccache 3.3.1, fontconfig 2.12.1 (fanquake)
  421. - #8791 `b694b0d` travis: cross-mac: explicitly enable gui (MarcoFalke)
  422. - #8820 `dc64141` depends: Fix Qt compilation with Xcode 8 (fanquake)
  423. - #8730 `489a6ab` depends: Add libevent compatibility patch for windows (laanwj)
  424. - #8819 `c841816` depends: Boost 1.61.0 (fanquake)
  425. - #8826 `f560d95` Do not include `env_win.cc` on non-Windows systems (paveljanik)
  426. - #8948 `e077e00` Reorder Windows gitian build order to match Linux (Michagogo)
  427. - #8568 `078900d` new var `DIST_CONTRIB` adds useful things for packagers from contrib (nomnommai)
  428. - #9114 `21e6c6b` depends: Set `OSX_MIN_VERSION` to 10.8 (fanquake)
  429. - #9140 `018a4eb` Bugfix: Correctly replace generated headers and fail cleanly (luke-jr)
  430. - #9156 `a8b2a82` Add compile and link options echo to configure (jonasschnelli)
  431. - #9393 `03d85f6` Include cuckoocache header in Makefile (MarcoFalke)
  432. - #9420 `bebe369` Fix linker error when configured with --enable-lcov (droark)
  433. - #9412 `53442af` Fix 'make deploy' for OSX (jonasschnelli)
  434. - #9475 `7014506` Let autoconf detect presence of `EVP_MD_CTX_new` (luke-jr)
  435. - #9513 `bbf193f` Fix qt distdir builds (theuni)
  436. - #9471 `ca615e6` depends: libevent 2.1.7rc (fanquake)
  437. - #9468 `f9117f2` depends: Dependency updates for 0.14.0 (fanquake)
  438. - #9469 `01c4576` depends: Qt 5.7.1 (fanquake)
  439. - #9574 `5ac6687` depends: Fix QT build on OSX (fanquake)
  440. - #9646 `720b579` depends: Fix cross build for qt5.7 (theuni)
  441. - #9705 `6a55515` Add options to override BDB cflags/libs (laanwj)
  442. - #8249 `4e1567a` Enable (and check for) 64-bit ASLR on Windows (laanwj)
  443. - #9758 `476cc47` Selectively suppress deprecation warnings (jonasschnelli)
  444. - #9783 `6d61a2b` release: bump gitian descriptors for a new 0.14 package cache (theuni)
  445. - #9789 `749fe95` build: add --enable-werror and warn on vla's (theuni)
  446. - #9831 `99fd85c` build: force a c++ standard to be specified (theuni)
  447. ### GUI
  448. - #8192 `c503863` Remove URLs from About dialog translations (fanquake)
  449. - #8540 `36404ae` Fix random segfault when closing "Choose data directory" dialog (laanwj)
  450. - #8517 `2468292` Show wallet HD state in statusbar (jonasschnelli)
  451. - #8463 `62a5a8a` Remove Priority from coincontrol dialog (MarcoFalke)
  452. - #7579 `0606f95` Show network/chain errors in the GUI (jonasschnelli)
  453. - #8583 `c19f8a4` Show XTHIN in GUI (rebroad)
  454. - #7783 `4335d5a` RPC-Console: support nested commands and simple value queries (jonasschnelli)
  455. - #8672 `6052d50` Show transaction size in transaction details window (Cocosoft)
  456. - #8777 `fec6af7` WalletModel: Expose disablewallet (MarcoFalke)
  457. - #8371 `24f72e9` Add out-of-sync modal info layer (jonasschnelli)
  458. - #8885 `b2fec4e` Fix ban from qt console (theuni)
  459. - #8821 `bf8e68a` sync-overlay: Don't block during reindex (MarcoFalke)
  460. - #8906 `088d1f4` sync-overlay: Don't show progress twice (MarcoFalke)
  461. - #8918 `47ace42` Add "Copy URI" to payment request context menu (luke-jr)
  462. - #8925 `f628d9a` Display minimum ping in debug window (rebroad)
  463. - #8774 `3e942a7` Qt refactors to better abstract wallet access (luke-jr)
  464. - #8985 `7b1bfa3` Use pindexBestHeader instead of setBlockIndexCandidates for NotifyHeaderTip() (jonasschnelli)
  465. - #8989 `d2143dc` Overhaul smart-fee slider, adjust default confirmation target (jonasschnelli)
  466. - #9043 `273bde3` Return useful error message on ATMP failure (MarcoFalke)
  467. - #9088 `4e57824` Reduce ambiguity of warning message (rebroad)
  468. - #8874 `e984730` Multiple Selection for peer and ban tables (achow101)
  469. - #9145 `924745d` Make network disabled icon 50% opaque (MarcoFalke)
  470. - #9130 `ac489b2` Mention the new network toggle functionality in the tooltip (paveljanik)
  471. - #9218 `4d955fc` Show progress overlay when clicking spinner icon (laanwj)
  472. - #9280 `e15660c` Show ModalOverlay by pressing the progress bar, allow hiding (jonasschnelli)
  473. - #9296 `fde7d99` Fix missed change to WalletTx structure (morcos)
  474. - #9266 `2044e37` Bugfix: Qt/RPCConsole: Put column enum in the right places (luke-jr)
  475. - #9255 `9851a84` layoutAboutToChange signal is called layoutAboutToBeChanged (laanwj)
  476. - #9330 `47e6a19` Console: add security warning (jonasschnelli)
  477. - #9329 `db45ad8` Console: allow empty arguments (jonasschnelli)
  478. - #8877 `6dc4c43` Qt RPC console: history sensitive-data filter, and saving input line when browsing history (luke-jr)
  479. - #9462 `649cf5f` Do not translate tilde character (MarcoFalke)
  480. - #9457 `123ea73` Select more files for translation (MarcoFalke)
  481. - #9413 `fd7d8c7` CoinControl: Allow non-wallet owned change addresses (jonasschnelli)
  482. - #9461 `b250686` Improve progress display during headers-sync and peer-finding (jonasschnelli)
  483. - #9588 `5086452` Use nPowTargetSpacing constant (MarcoFalke)
  484. - #9637 `d9e4d1d` Fix transaction details output-index to reflect vout index (jonasschnelli)
  485. - #9718 `36f9d3a` Qt/Intro: Various fixes (luke-jr)
  486. - #9735 `ec66d06` devtools: Handle Qt formatting characters edge-case in update-translations.py (laanwj)
  487. - #9755 `a441db0` Bugfix: Qt/Options: Restore persistent "restart required" notice (luke-jr)
  488. - #9817 `7d75a5a` Fix segfault crash when shutdown the GUI in disablewallet mode (jonasschnelli)
  489. ### Wallet
  490. - #8152 `b9c1cd8` Remove `CWalletDB*` parameter from CWallet::AddToWallet (pstratem)
  491. - #8432 `c7e05b3` Make CWallet::fFileBacked private (pstratem)
  492. - #8445 `f916700` Move CWallet::setKeyPool to private section of CWallet (pstratem)
  493. - #8564 `0168019` Remove unused code/conditions in ReadAtCursor (jonasschnelli)
  494. - #8601 `37ac678` Add option to opt into full-RBF when sending funds (rebase, original by petertodd) (laanwj)
  495. - #8494 `a5b20ed` init, wallet: ParameterInteraction() iff wallet enabled (MarcoFalke)
  496. - #8760 `02ac669` init: Get rid of some `ENABLE_WALLET` (MarcoFalke)
  497. - #8696 `a1f8d3e` Wallet: Remove last external reference to CWalletDB (pstratem)
  498. - #8768 `886e8c9` init: Get rid of fDisableWallet (MarcoFalke)
  499. - #8486 `ab0b411` Add high transaction fee warnings (MarcoFalke)
  500. - #8851 `940748b` Move key derivation logic from GenerateNewKey to DeriveNewChildKey (pstratem)
  501. - #8287 `e10af96` Set fLimitFree = true (MarcoFalke)
  502. - #8928 `c587577` Fix init segfault where InitLoadWallet() calls ATMP before genesis (TheBlueMatt)
  503. - #7551 `f2d7056` Add importmulti RPC call (pedrobranco)
  504. - #9016 `0dcb888` Return useful error message on ATMP failure (instagibbs)
  505. - #8753 `f8723d2` Locked memory manager (laanwj)
  506. - #8828 `a4fd8df` Move CWalletDB::ReorderTransactions to CWallet (pstratem)
  507. - #8977 `6a1343f` Refactor wallet/init interaction (Reaccept wtx, flush thread) (jonasschnelli)
  508. - #9036 `ed0cc50` Change default confirm target from 2 to 6 (laanwj)
  509. - #9071 `d1871da` Declare wallet.h functions inline (sipa)
  510. - #9132 `f54e460` Make strWalletFile const (jonasschnelli)
  511. - #9141 `5ea5e04` Remove unnecessary calls to CheckFinalTx (jonasschnelli)
  512. - #9165 `c01f16a` SendMoney: use already-calculated balance (instagibbs)
  513. - #9311 `a336d13` Flush wallet after abandontransaction (morcos)
  514. - #8717 `38e4887` Addition of ImmatureCreditCached to MarkDirty() (spencerlievens)
  515. - #9446 `510c0d9` SetMerkleBranch: remove unused code, remove cs\_main lock requirement (jonasschnelli)
  516. - #8776 `2a524b8` Wallet refactoring leading up to multiwallet (luke-jr)
  517. - #9465 `a7d55c9` Do not perform ECDSA signing in the fee calculation inner loop (gmaxwell)
  518. - #9404 `12e3112` Smarter coordination of change and fee in CreateTransaction (morcos)
  519. - #9377 `fb75cd0` fundrawtransaction: Keep change-output keys by default, make it optional (jonasschnelli)
  520. - #9578 `923dc44` Add missing mempool lock for CalculateMemPoolAncestors (TheBlueMatt)
  521. - #9227 `02464da` Make nWalletDBUpdated atomic to avoid a potential race (pstratem)
  522. - #9764 `f8af89a` Prevent "overrides a member function but is not marked 'override'" warnings (laanwj)
  523. - #9771 `e43a585` Add missing cs\_wallet lock that triggers new lock held assertion (ryanofsky)
  524. - #9316 `3097ea4` Disable free transactions when relay is disabled (MarcoFalke)
  525. - #9615 `d2c9e4d` Wallet incremental fee (morcos)
  526. - #9760 `40c754c` Remove importmulti always-true check (ryanofsky)
  527. ### Tests and QA
  528. - #8270 `6e5e5ab` Tests: Use portable #! in python scripts (/usr/bin/env) (ChoHag)
  529. - #8534,#8504 Remove java comparison tool (laanwj,MarcoFalke)
  530. - #8482 `740cff5` Use single cache dir for chains (MarcoFalke)
  531. - #8450 `21857d2` Replace `rpc_wallet_tests.cpp` with python RPC unit tests (pstratem)
  532. - #8671 `ddc3080` Minimal fix to slow prevector tests as stopgap measure (JeremyRubin)
  533. - #8680 `666eaf0` Address Travis spurious failures (theuni)
  534. - #8789 `e31a43c` pull-tester: Only print output when failed (MarcoFalke)
  535. - #8810 `14e8f99` tests: Add exception error message for JSONRPCException (laanwj)
  536. - #8830 `ef0801b` test: Add option to run starwels-util-test.py manually (jnewbery)
  537. - #8881 `e66cc1d` Add some verbose logging to starwels-util-test.py (jnewbery)
  538. - #8922 `0329511` Send segwit-encoded blocktxn messages in p2p-compactblocks (TheBlueMatt)
  539. - #8873 `74dc388` Add microbenchmarks to profile more code paths (ryanofsky)
  540. - #9032 `6a8be7b` test: Add format-dependent comparison to bctest (laanwj)
  541. - #9023 `774db92` Add logging to starwels-util-test.py (jnewbery)
  542. - #9065 `c9bdf9a` Merge `doc/unit-tests.md` into `src/test/README.md` (laanwj)
  543. - #9069 `ed64bce` Clean up bctest.py and starwels-util-test.py (jnewbery)
  544. - #9095 `b8f43e3` test: Fix test\_random includes (MarcoFalke)
  545. - #8894 `faec09b` Testing: Include fRelay in mininode version messages (jnewbery)
  546. - #9097 `e536499` Rework `sync_*` and preciousblock.py (MarcoFalke)
  547. - #9049 `71bc39e` Remove duplicatable duplicate-input check from CheckTransaction (TheBlueMatt)
  548. - #9136 `b422913` sync\_blocks cleanup (ryanofsky)
  549. - #9151 `4333b1c` proxy\_test: Calculate hardcoded port numbers (MarcoFalke)
  550. - #9206 `e662d28` Make test constant consistent with consensus.h (btcdrak)
  551. - #9139 `0de7fd3` Change sync\_blocks to pick smarter maxheight (on top of #9196) (ryanofsky)
  552. - #9100 `97ec6e5` tx\_valid: re-order inputs to how they are encoded (dcousens)
  553. - #9202 `e56cf67` bench: Add support for measuring CPU cycles (laanwj)
  554. - #9223 `5412c08` unification of Bloom filter representation (s-matthew-english)
  555. - #9257 `d7ba4a2` Dump debug logs on travis failures (sdaftuar)
  556. - #9221 `9e4bb31` Get rid of duplicate code (MarcoFalke)
  557. - #9274 `919db03` Use cached utxo set to fix performance regression (MarcoFalke)
  558. - #9276 `ea33f19` Some minor testing cleanups (morcos)
  559. - #9291 `8601784` Remove mapOrphanTransactionsByPrev from DoS\_tests (sipa)
  560. - #9309 `76fcd9d` Wallet needs to stay unlocked for whole test (morcos)
  561. - #9172 `5bc209c` Resurrect pstratem's "Simple fuzzing framework" (laanwj)
  562. - #9331 `c6fd923` Add test for rescan feature of wallet key import RPCs (ryanofsky)
  563. - #9354 `b416095` Make fuzzer actually test CTxOutCompressor (sipa)
  564. - #9390,#9416 travis: make distdir (MarcoFalke)
  565. - #9308 `0698639` test: Add CCoinsViewCache Access/Modify/Write tests (ryanofsky)
  566. - #9406 `0f921e6` Re-enable a blank v1 Tx JSON test (droark)
  567. - #9435 `dbc8a8c` Removed unused variable in test, fixing warning (ryanofsky)
  568. - #9436 `dce853e` test: Include tx data in `EXTRA_DIST` (MarcoFalke)
  569. - #9525 `02e5308` test: Include tx data in `EXTRA_DIST` (MarcoFalke)
  570. - #9498 `054d664` Basic CCheckQueue Benchmarks (JeremyRubin)
  571. - #9554 `0b96abc` test: Avoid potential NULL pointer dereference in `addrman_tests.cpp` (practicalswift)
  572. - #9628 `f895023` Increase a sync\_blocks timeout in pruning.py (sdaftuar)
  573. - #9638 `a7ea2f8` Actually test assertions in pruning.py (MarcoFalke)
  574. - #9647 `e99f0d7` Skip RAII event tests if libevent is built without `event_set_mem_functions` (luke-jr)
  575. - #9691 `fc67cd2` Init ECC context for `test_starwels_fuzzy` (gmaxwell)
  576. - #9712 `d304fef` bench: Fix initialization order in registration (laanwj)
  577. - #9707 `b860915` Fix RPC failure testing (jnewbery)
  578. - #9269 `43e8150` Align struct COrphan definition (sipa)
  579. - #9820 `599c69a` Fix pruning test broken by 2 hour manual prune window (ryanofsky)
  580. - #9824 `260c71c` qa: Check return code when stopping nodes (MarcoFalke)
  581. - #9875 `50953c2` tests: Fix dangling pwalletMain pointer in wallet tests (laanwj)
  582. - #9839 `eddaa6b` [qa] Make import-rescan.py watchonly check reliable (ryanofsky)
  583. ### Documentation
  584. - #8342 `806b9e7` Clarify witness branches in transaction.h serialization (dcousens)
  585. - #8935 `0306978` Documentation: Building on Windows with WSL (pooleja)
  586. - #9144 `c98f6b3` Correct waitforblockheight example help text (fanquake)
  587. - #9407 `041331e` Added missing colons in when running help command (anditto)
  588. - #9378 `870cd2b` Add documentation for CWalletTx::fFromMe member (ryanofsky)
  589. - #9297 `0b73807` Various RPC help outputs updated (Mirobit)
  590. - #9613 `07421cf` Clarify getbalance help string to explain interaction with bumpfee (ryanofsky)
  591. - #9663 `e30d928` Clarify listunspent amount description (instagibbs)
  592. - #9396 `d65a13b` Updated listsinceblock rpc documentation (accraze)
  593. - #8747 `ce43630` rpc: Fix transaction size comments and RPC help text (jnewbery)
  594. - #8058 `bbd9740` Doc: Add issue template (AmirAbrams)
  595. - #8567 `85d4e21` Add default port numbers to REST doc (djpnewton)
  596. - #8624 `89de153` build: Mention curl (MarcoFalke)
  597. - #8786 `9da7366` Mandatory copyright agreement (achow101)
  598. - #8823 `7b05af6` Add privacy recommendation when running hidden service (laanwj)
  599. - #9433 `caa2f10` Update the Windows build notes (droark)
  600. - #8879 `f928050` Rework docs (MarcoFalke)
  601. - #8887 `61d191f` Improve GitHub issue template (fanquake)
  602. - #8787 `279bbad` Add missing autogen to example builds (AmirAbrams)
  603. - #8892 `d270c30` Add build instructions for FreeBSD (laanwj)
  604. - #8890 `c71a654` Update Doxygen configuration file (fanquake)
  605. - #9207 `fa1f944` Move comments above bash command in build-unix (AmirAbrams)
  606. - #9219 `c4522e7` Improve windows build instructions using Linux subsystem (laanwj)
  607. - #8954 `932d02a` contrib: Add README for pgp keys (MarcoFalke)
  608. - #9093 `2fae5b9` release-process: Mention GitHub release and archived release notes (MarcoFalke)
  609. - #8743 `bae178f` Remove old manpages from contrib/debian in favour of doc/man (fanquake)
  610. - #9550 `4105cb6` Trim down the XP notice and say more about what we support (gmaxwell)
  611. - #9246 `9851498` Developer docs about existing subtrees (gmaxwell)
  612. - #9401 `c2ea1e6` Make rpcauth help message clearer, add example in example .conf (instagibbs)
  613. - #9022,#9033 Document dropping OS X 10.7 support (fanquake, MarcoFalke)
  614. - #8771 `bc9e3ab` contributing: Mention not to open several pulls (luke-jr)
  615. - #8852 `7b784cc` Mention Gitian building script in doc (Laudaa) (laanwj)
  616. - #8915 `03dd707` Add copyright/patent issues to possible NACK reasons (petertodd)
  617. - #8965 `23e03f8` Mention that PPA doesn't support Debian (anduck)
  618. - #9115 `bfc7aad` Mention reporting security issues responsibly (paveljanik)
  619. - #9840 `08e0690` Update sendfrom RPC help to correct coin selection misconception (ryanofsky)
  620. - #9865 `289204f` Change starwels address in RPC help message (marijnfs)
  621. ### Miscellaneous
  622. - #8274 `7a2d402` util: Update tinyformat (laanwj)
  623. - #8291 `5cac8b1` util: CopyrightHolders: Check for untranslated substitution (MarcoFalke)
  624. - #8557 `44691f3` contrib: Rework verifybinaries (MarcoFalke)
  625. - #8621 `e8ed6eb` contrib: python: Don't use shell=True (MarcoFalke)
  626. - #8813 `fb24d7e` starwelsd: Daemonize using daemon(3) (laanwj)
  627. - #9004 `67728a3` Clarify `listenonion` (unsystemizer)
  628. - #8674 `bae81b8` tools for analyzing, updating and adding copyright headers in source files (isle2983)
  629. - #8976 `8c6218a` libconsensus: Add input validation of flags (laanwj)
  630. - #9112 `46027e8` Avoid ugly exception in log on unknown inv type (laanwj)
  631. - #8837 `2108911` Allow starwels-tx to parse partial transactions (jnewbery)
  632. - #9204 `74ced54` Clarify CreateTransaction error messages (instagibbs)
  633. - #9265 `31bcc66` starwels-cli: Make error message less confusing (laanwj)
  634. - #9303 `72bf1b3` Update comments in ctaes (sipa)
  635. - #9417 `c4b7d4f` Do not evaluate hidden LogPrint arguments (sipa)
  636. - #9506 `593a00c` RFC: Improve style for if indentation (sipa)
  637. - #8883 `d5d4ad8` Add all standard TXO types to starwels-tx (jnewbery)
  638. - #9531 `23281a4` Release notes for estimation changes (morcos)
  639. - #9486 `f62bc10` Make peer=%d log prints consistent (TheBlueMatt)
  640. - #9552 `41cb05c` Add IPv6 support to qos.sh (jamesmacwhite)
  641. - #9542 `e9e7993` Docs: Update CONTRIBUTING.md (jnewbery)
  642. - #9649 `53ab12d` Remove unused clang format dev script (MarcoFalke)
  643. - #9625 `77bd8c4` Increase minimum debug.log size to 10MB after shrink (morcos)
  644. - #9070 `7b22e50` Lockedpool fixes (kazcw)
  645. - #8779 `7008e28` contrib: Delete spendfrom (MarcoFalke)
  646. - #9587,#8793,#9496,#8191,#8109,#8655,#8472,#8677,#8981,#9124 Avoid shadowing of variables (paveljanik)
  647. - #9063 `f2a6e82` Use deprecated `MAP_ANON` if `MAP_ANONYMOUS` is not defined (paveljanik)
  648. - #9060 `1107653` Fix bloom filter init to isEmpty = true (robmcl4)
  649. - #8613 `613bda4` LevelDB 1.19 (sipa)
  650. - #9225 `5488514` Fix some benign races (TheBlueMatt)
  651. - #8736 `5fa7b07` base58: Improve DecodeBase58 performance (wjx)
  652. - #9039 `e81df49` Various serialization simplifcations and optimizations (sipa)
  653. - #9010 `a143b88` Split up AppInit2 into multiple phases, daemonize after datadir lock errors (laanwj)
  654. - #9230 `c79e52a` Fix some benign races in timestamp logging (TheBlueMatt)
  655. - #9183,#9260 Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp}) (TheBlueMatt)
  656. - #9236 `7f72568` Fix races for strMiscWarning and `fLargeWork*Found`, make QT runawayException use GetWarnings (gmaxwell)
  657. - #9243 `7aa7004` Clean up mapArgs and mapMultiArgs Usage (TheBlueMatt)
  658. - #9387 `cfe41d7` RAII of libevent stuff using unique ptrs with deleters (kallewoof)
  659. - #9472 `fac0f30` Disentangle progress estimation from checkpoints and update it (sipa)
  660. - #9512 `6012967` Fix various things -fsanitize complains about (sipa)
  661. - #9373,#9580 Various linearization script issues (droark)
  662. - #9674 `dd163f5` Lock debugging: Always enforce strict lock ordering (try or not) (TheBlueMatt)
  663. - #8453,#9334 Update to latest libsecp256k1 (laanwj,sipa)
  664. - #9656 `7c93952` Check verify-commits on pushes to master (TheBlueMatt)
  665. - #9679 `a351162` Access WorkQueue::running only within the cs lock (TheBlueMatt)
  666. - #9777 `8dee822` Handle unusual maxsigcachesize gracefully (jnewbery)
  667. - #8863,#8807 univalue: Pull subtree (MarcoFalke)
  668. - #9798 `e22c067` Fix Issue #9775 (Check returned value of fopen) (kirit93)
  669. - #9856 `69832aa` Terminate immediately when allocation fails (theuni)
  670. Credits
  671. =======
  672. Thanks to everyone who directly contributed to this release:
  673. - accraze
  674. - adlawren
  675. - Alex Morcos
  676. - Alexey Vesnin
  677. - Amir Abrams
  678. - Anders Øyvind Urke-Sætre
  679. - Anditto Heristyo
  680. - Andrew Chow
  681. - anduck
  682. - Anthony Towns
  683. - Brian Deery
  684. - BtcDrak
  685. - Chris Moore
  686. - Chris Stewart
  687. - Christian Barcenas
  688. - Christian Decker
  689. - Cory Fields
  690. - crowning-
  691. - CryptAxe
  692. - CryptoVote
  693. - Dagur Valberg Johannsson
  694. - Daniel Cousens
  695. - Daniel Kraft
  696. - Derek Miller
  697. - djpnewton
  698. - Don Patterson
  699. - Doug
  700. - Douglas Roark
  701. - Ethan Heilman
  702. - fsb4000
  703. - Gaurav Rana
  704. - Geoffrey Tsui
  705. - Greg Walker
  706. - Gregory Maxwell
  707. - Gregory Sanders
  708. - Hampus Sjöberg
  709. - isle2983
  710. - Ivo van der Sangen
  711. - James White
  712. - Jameson Lopp
  713. - Jeremy Rubin
  714. - Jiaxing Wang
  715. - jnewbery
  716. - John Newbery
  717. - Johnson Lau
  718. - Jon Lund Steffensen
  719. - Jonas Schnelli
  720. - jonnynewbs
  721. - Jorge Timón
  722. - Justin Camarena
  723. - Karl-Johan Alm
  724. - Kaz Wesley
  725. - kirit93
  726. - Koki Takahashi
  727. - Lauda
  728. - leijurv
  729. - lizhi
  730. - Luke Dashjr
  731. - maiiz
  732. - MarcoFalke
  733. - Marijn Stollenga
  734. - Marty Jones
  735. - Masahiko Hyuga
  736. - Matt Corallo
  737. - Matthew King
  738. - matthias
  739. - Micha
  740. - Michael Ford
  741. - Michael Rotarius
  742. - Mitchell Cash
  743. - mrbandrews
  744. - mruddy
  745. - Nicolas DORIER
  746. - nomnommai
  747. - Patrick Strateman
  748. - Pavel Janík
  749. - Pedro Branco
  750. - Peter Todd
  751. - Pieter Wuille
  752. - poole\_party
  753. - practicalswift
  754. - R E Broadley
  755. - randy-waterhouse
  756. - Richard Kiss
  757. - Robert McLaughlin
  758. - rodasmith
  759. - Russell Yanofsky
  760. - S. Matthew English
  761. - Sev
  762. - Spencer Lievens
  763. - Stanislas Marion
  764. - Steven
  765. - Suhas Daftuar
  766. - Thomas Snider
  767. - UdjinM6
  768. - unsystemizer
  769. - whythat
  770. - Will Binns
  771. - Wladimir J. van der Laan
  772. - wodry
  773. - Zak Wilcox
  774. As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/bitcoin/).