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. 5.3KB

estimatefee / estimatepriority RPC methods New RPC methods: return an estimate of the fee (or priority) a transaction needs to be likely to confirm in a given number of blocks. Mike Hearn created the first version of this method for estimating fees. It works as follows: For transactions that took 1 to N (I picked N=25) blocks to confirm, keep N buckets with at most 100 entries in each recording the fees-per-kilobyte paid by those transactions. (separate buckets are kept for transactions that confirmed because they are high-priority) The buckets are filled as blocks are found, and are saved/restored in a new fee_estiamtes.dat file in the data directory. A few variations on Mike's initial scheme: To estimate the fee needed for a transaction to confirm in X buckets, all of the samples in all of the buckets are used and a median of all of the data is used to make the estimate. For example, imagine 25 buckets each containing the full 100 entries. Those 2,500 samples are sorted, and the estimate of the fee needed to confirm in the very next block is the 50'th-highest-fee-entry in that sorted list; the estimate of the fee needed to confirm in the next two blocks is the 150'th-highest-fee-entry, etc. That algorithm has the nice property that estimates of how much fee you need to pay to get confirmed in block N will always be greater than or equal to the estimate for block N+1. It would clearly be wrong to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay 12 uBTC and it will take LONGER". A single block will not contribute more than 10 entries to any one bucket, so a single miner and a large block cannot overwhelm the estimates.
7 years ago
  1. (note: this is a temporary file, to be added-to by anybody, and moved to
  2. release-notes at release time)
  3. Bitcoin Core version *version* is now available from:
  4. <*version*/>
  5. This is a new major version release, including new features, various bugfixes
  6. and performance improvements, as well as updated translations.
  7. Please report bugs using the issue tracker at GitHub:
  8. <>
  9. To receive security and update notifications, please subscribe to:
  10. <>
  11. How to Upgrade
  12. ==============
  13. If you are running an older version, shut it down. Wait until it has completely
  14. shut down (which might take a few minutes for older versions), then run the
  15. installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
  16. or `bitcoind`/`bitcoin-qt` (on Linux).
  17. The first time you run version 0.15.0, your chainstate database will be converted to a
  18. new format, which will take anywhere from a few minutes to half an hour,
  19. depending on the speed of your machine.
  20. Note that the block database format also changed in version 0.8.0 and there is no
  21. automatic upgrade code from before version 0.8 to version 0.15.0. Upgrading
  22. directly from 0.7.x and earlier without redownloading the blockchain is not supported.
  23. However, as usual, old wallet versions are still supported.
  24. Downgrading warning
  25. -------------------
  26. The chainstate database for this release is not compatible with previous
  27. releases, so if you run 0.15 and then decide to switch back to any
  28. older version, you will need to run the old release with the `-reindex-chainstate`
  29. option to rebuild the chainstate data structures in the old format.
  30. If your node has pruning enabled, this will entail re-downloading and
  31. processing the entire blockchain.
  32. Compatibility
  33. ==============
  34. Bitcoin Core is extensively tested on multiple operating systems using
  35. the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
  36. Bitcoin Core should also work on most other Unix-like systems but is not
  37. frequently tested on them.
  38. Notable changes
  39. ===============
  40. GCC 4.8.x
  41. --------------
  42. The minimum version of GCC required to compile Bitcoin Core is now 4.8. No effort will be
  43. made to support older versions of GCC. See discussion in issue #11732 for more information.
  44. HD-wallets by default
  45. ---------------------
  46. Due to a backward-incompatible change in the wallet database, wallets created
  47. with version 0.16.0 will be rejected by previous versions. Also, version 0.16.0
  48. will only create hierarchical deterministic (HD) wallets.
  49. Replace-By-Fee by default in GUI
  50. --------------------------------
  51. The send screen now uses BIP-125 RBF by default, regardless of `-walletrbf`.
  52. There is a checkbox to mark the transaction as final.
  53. The RPC default remains unchanged: to use RBF, launch with `-walletrbf=1` or
  54. use the `replaceable` argument for individual transactions.
  55. Wallets directory configuration (`-walletdir`)
  56. ----------------------------------------------
  57. Bitcoin Core now has more flexibility in where the wallets directory can be
  58. located. Previously wallet database files were stored at the top level of the
  59. bitcoin data directory. The behavior is now:
  60. - For new installations (where the data directory doesn't already exist),
  61. wallets will now be stored in a new `wallets/` subdirectory inside the data
  62. directory by default.
  63. - For existing nodes (where the data directory already exists), wallets will be
  64. stored in the data directory root by default. If a `wallets/` subdirectory
  65. already exists in the data directory root, then wallets will be stored in the
  66. `wallets/` subdirectory by default.
  67. - The location of the wallets directory can be overridden by specifying a
  68. `-walletdir=<path>` option where `<path>` can be an absolute path to a
  69. directory or directory symlink.
  70. Care should be taken when choosing the wallets directory location, as if it
  71. becomes unavailable during operation, funds may be lost.
  72. Low-level RPC changes
  73. ----------------------
  74. - The deprecated RPC `getinfo` was removed. It is recommended that the more specific RPCs are used:
  75. * `getblockchaininfo`
  76. * `getnetworkinfo`
  77. * `getwalletinfo`
  78. * `getmininginfo`
  79. - The wallet RPC `getreceivedbyaddress` will return an error if called with an address not in the wallet.
  80. - The wallet RPC `addwitnessaddress` was deprecated and will be removed in version 0.17,
  81. set the `address_type` argument of `getnewaddress`, or option `-addresstype=[bech32|p2sh-segwit]` instead.
  82. Changed command-line options
  83. -----------------------------
  84. - `-debuglogfile=<file>` can be used to specify an alternative debug logging file.
  85. Renamed script for creating JSON-RPC credentials
  86. -----------------------------
  87. The `share/rpcuser/` script was renamed to `share/rpcauth/`. This script can be
  88. used to create `rpcauth` credentials for a JSON-RPC user.
  89. - `dumpwallet` now includes hex-encoded scripts from the wallet in the dumpfile, and
  90. `importwallet` now imports these scripts, but corresponding addresses may not be added
  91. correctly or a manual rescan may be required to find relevant transactions.
  92. Credits
  93. =======
  94. Thanks to everyone who directly contributed to this release:
  95. As well as everyone that helped translating on [Transifex](