Merge pull request #3609 from chromatic/1.14.8-initial-release-notes

1.14.8 Release Notes
This commit is contained in:
Old Dip Tracker 2024-08-02 01:20:13 +02:00 committed by GitHub
commit ed4e868154
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 352 additions and 230 deletions

View File

@ -1,10 +1,9 @@
Dogecoin Core version 1.14.7 is now available from:
Dogecoin Core version 1.14.8 is now available from:
<https://github.com/dogecoin/dogecoin/releases/tag/v1.14.7/>
<https://github.com/dogecoin/dogecoin/releases/tag/v1.14.8/>
This is a new minor version release, including enchancements to several RPC
methods and important security updates for Dogecoin-Qt. Dogecoin-Qt users on
any platform are strongly recommended to upgrade.
This is a new minor version release. Dogecoin users on any platform are
strongly recommended to upgrade.
Please report bugs using the issue tracker at GitHub:
@ -21,221 +20,84 @@ Compatibility
Dogecoin Core is extensively tested on Ubuntu Server LTS, macOS and Windows.
Minimum OS compatibility can be found [in the INSTALL guide](../INSTALL.md).
Notable changes
================
Important Security Updates
--------------------------
Important Updates
-----------------
This release contains fixes for Dogecoin Qt across all platforms that increase
security for end users.
Several important updates have been added to Dogecoin Core, including fixes
backported from Bitcoin Core's upstream.
### Disable BIP-70 payment server by default
### Reduce Peer INV Object Counts
To mitigate future potential risk inside Dogecoin Qt, support for BIP-70 payment
requests and related BIP-71 and BIP-72 payment URIs and MIME types have been
disabled by default, because this functionality interacts with remote websites
in an automated manner and could be used to amplify any future vulnerabilities
inside Dogecoin Qt. By default, incoming BIP-70 payment requests and files or
URLs that use the functionality are rejected and an explanation is shown to the
user.
Previously, Dogecoin Core nodes would maintain a large list of inventory for
each peer. This is excessive and unnecessary and has been reduced to a more
reasonable number.
BIP-21 payment requests remain fully supported.
*Implemented with #3577*
The functionality can be re-enabled by using `enable-bip70=1` either in your
dogecoin.conf or as an argument to Dogecoin-Qt if absolutely needed. Please use
extreme caution when exercising this option.
### Improve Transaction Request Tracking
This is step 1 in full deprecation of BIP-70, BIP-71 and BIP-72 inside Dogecoin
Core. Future releases may completely remove this feature.
A new transaction request tracking system improves the way Dogecoin Core
communicates with other peers. Notably, this improvement prioritizes
communication with outbound peers over inbound peers and makes CPU and memory
use more reliable and scalable with the number of peers.
*Implemented with #3412*
*Implemented with #3577*
### Other security-related fixes
### Improve Orphan Transaction Handling
* Reduce the build scope of the Qt dependency to only include those features we
use, to not package potential vulnerabilities. Also stop using libX11 features
outside of libxcb (#3358)
* Backport patches for all Qt versions until 5.15.12 + community patches to the
pinned Qt 5.7.1, because we cannot update that due to backward compatibility
guarantees (#3415)
* Added security guidance to INSTALL.md and build guides, to remind those that
self-compile to update their system libraries. (#3384)
* Updated the `rpcuser.py` script to improve the password and salt generation
methods it uses (#3388). If you've used this script in the past, replacing
current authentication in `dogecoin.conf` with new credentials generated with
the new version of this script is recommended.
In previous versions of Dogecoin Core, orphan transactions were processed in a
complex fashion. Now they are processed more like regular getdata messages,
which allows for more efficient handling of messages arriving from other peers,
as well as other code simplifications.
*Implemented with #3575*
Maintain RPC fee estimation facilities
---------------------------------------
### Reduce Getheaders Traffic for INV Messages
Fee estimation was explicitly not ported or supported on Dogecoin Core since
1.14.0, but as the non-functional data from `estimatefee` and `estimatesmartfee`
were anyway used in the field, services using these RPC methods were unable to
provide fee estimates to their users. Therefore this feature has now been ported
to support Dogecoin parametrization.
Dogecoin Core now sends a getheaders message for one block when announced in an
INV message, and it sends only a single such message rather than multiple per
INV message. This reduces traffic and simplifies the logic of the code.
The RPC methods `estimatefee` and `estimatesmartfee` are now under active
maintenance and will be further enhanced in the future.
*Implemented with #3568*
NOTE: Because the minimum and maximum tracked fees and spacing of fee buckets
has changed, the `fee_estimates.dat` file from earlier versions **will be
discarded** after restarting this version of the software. This means that after
the first restart, the estimates will reset, but become usable again after the
node has processed a few blocks, and will improve in precision over up to 12
hours after the first restart. Any subsequent restarts will use the estimates
from the file as usual.
### Improve Reporting of Difficulty Adjustment Errors
***If you have in the past ran a custom compiled version of 1.14.7 or created
your own higher version, you must manually delete the `fee_estimates.dat` file
from your datadir for the new parametrization to take full effect.***
Previously, difficulty adjustment violations were not reported for chains that
branched off before the last checkpoint. This has been changed by moving the
checkpoint check after the difficulty check.
*Implemented with #3389 and #3433*
*Implemented with #3576*
### Security Policy Documented
Add fully verbose transaction decoding to `getblock`
-----------------------------------------------------
The [SECURITY.md](SECURITY.md) file describes how to report a potential
vulnerability or security issue in Dogecoin Core.
Updates the `getblock` RPC to use verbosity levels 0-2 besides the existing
boolean. This allows operators to decode a full block in one go when using
level `2`, instead of having to query `getrawtransaction` for each individual
txid returned with the boolean `true`.
Mapping between boolean and integer parameter functionality:
| Verbosity | boolean | level (int) |
| :------------------------------ | ------: | ----------: |
| Hex encoded block | false | 0 |
| Block with txids | true | 1 |
| Block with decoded transactions | - | 2 |
For more information see:
```
dogecoin-cli help getblock
```
*Implemented with #3299, #3306 and #3307*
Features
--------
### Add the `getblockstats` RPC method
The new `getblockstats` RPC method computes statistics for a given block hash if
the block is available on the node (pruned nodes can only run statistics over
blocks that aren't pruned.)
The user can select which stats are returned to save processing time for stats
that aren't wanted. For more information, use:
```
dogecoin-cli help getblockstats
```
*Implemented with #3297*
### Add a `height` parameter to `-walletnotify`
Adds `%i` in the command to include the height of the block containing the
transaction. If the transaction is not in any block, the height is `0`.
*Implemented with #3257 and #3382*
Translation Updates
-------------------
Updates have been provided to the following languages:
* Chinese (#3103, #3419)
* Dutch (#3435)
* French (#3148, #3195)
* French-Canadian (#3441)
* Italian (#3428)
* Korean (#3395, #3430)
* Polish (#3431)
RPC API Changes
---------------
* Added `getblockstats` (#3297)
* Allowed `verbosity` to be expressed as an integer to `getblock` and add full
verbosity under level `2` that serializes all transactions as JSON in the
reply (#3299, #3306, #3307)
* Added a `height` parameter to `importpubkey` (#3102) and `importaddress` (#3235)
which allows the user to specify from which chain height to rescan for wallet
transactions.
* Added `getmocktime` (regtest-only) (#3322)
* Added documentation for RPC method maturity in [rpc-maturity.md](rpc-maturity.md)
(#3443)
*Implemented with #3611*
Dependency Updates
------------------
* Updated the depends, CI and build system to Ubuntu Focal (#3143, #3144,
#3145, #3222)
* Updated expat to version 2.5.0 (#3271)
* Updated the secp256k1 subtree to 44c2452 (#3082, #3142)
* Updated zlib to version 1.3 (#3345)
* Updated protobuf to version 3.6.1 (#3357)
* Updated fontconfig to version 2.12.6 (#3364)
* Updated the experimental intel-ipsec-mb dependency to version 1.2, adds
AVX2 support for Windows x86_64 (#3071, #3146, #3214)
NOTE: on systems that cannot use pinned dependencies from `depends/`, please
be aware that due to a bug in `boost-1.83`, building may lead to failure.
More information about the bug can be found at the `boostorg/signals` GitHub
repository at https://github.com/boostorg/signals2/issues/68.
Bug Fixes
==========
* Fixed a bug where `-maxtxfee` was not being respected outside of the wallet,
which caused problems with the `sendrawtransaction` RPC call. (#3088)
* Fixed the example `dogecoind.service` file (#3066)
* Fixed a bug where misnamed signal handlers were causing excessive warnings
in Dogecoin Qt logs (#3063)
* Fixed a bug where extremely long wallet labels could cause Qt popups to flow
over screen limits, causing the user to have no means of accepting or
rejecting the transaction (#3224)
* Fixed an interaction error where running Qt tests interacted with the mainnet
datadir (#3286)
* Fixed a bug that caused qt4 compilation to fail (#3427)
* Updated fontconfig to version 2.12.6 (#3590)
* Updated freetype to version 2.11.0 (#3590)
* Updated expat to version 2.6.2 (#3590)
* Allow compiling with Boost 1.80 and newer (#3588)
Minor Changes
=============
* Enforced explicit enabling of experimental features by introducing a build
flag (`--enable-experimental`) and enforce these at compile time (#3136).
See [experiments.md](experiments.md) for more information about which
experiments are available to self-compile.
* Re-enabled Scrypt SSE2 routines and encapsulated it as an experimental feature
to help speeding up PoW verification on x86_64 architecture. (#2773)
* Packaged the Noto Sans font to make sure all languages can be rendered (#2676)
* Updated `assumevalid` to help new nodes save CPU time by setting it to block
`e7d4577405223918491477db725a393bcfc349d8ee63b0a4fde23cbfbfd81dea`, at height
5,050,000 on mainnet (#3416)
* Enhanced the paper wallet print function to default to the User's paper format
instead of A4 (#3239)
* Updated build guides for MacOS (#2686), Windows (#3340, #3411), Fedora (#3434)
* Introduced modern tooling for inspecting and constraining our binaries (#3204)
* Refactored out C-style NUL-terminated strings in interfaces (#3157)
* Enhanced the CI to run unit tests in armhf and aarch64 linux builds (#3025)
* Added a translation in Vietnamese (#3060), and fixed missing information in
the Chinese README translations (#3070)
* Updated the python `ltc-scrypt` module to a maintained fork (#3080), which
can be found at https://github.com/dogecoin/ltc-scrypt
* Backported a pure Python implementation of RIPEMD160 from Bitcoin Core (#3081)
* Removed historical OpenSSL comparison tests to increase compatibility with
OpenSSL 3+ (#3079)
* Ported extended tests for `rpcbind` (#3228) and `feefilter` (#3241)
* Dogecoin Core now supports compilation with C++14 and C++17, if you select
the appropriate configuration flags (#3494, ... )
* With the C++ version updates, the code now uses more built-in C++ features instead
of Boost equivalents, where possible (various commits)
* The CI configuration was updated to be compatible with newer versions of Python (#3582)
* Rely on the well-tested OpenSSL secure random functions, but allow the use of std::shuffle (#3521)
Credits
@ -243,54 +105,18 @@ Credits
Credit goes to all awesome contributors to this release, alphabetically:
* Ajay Chowdhury
* alamshafil
* Anish M
* Amiti Uttarwar
* Anthony Chen
* Bertrand Jacquin
* bobdos
* Brett T. Warden
* Carl Dong
* chromatic
* cijsk
* Cory Fields
* daanksy
* Dakoda Greaves
* danielw86dev
* Dylan Ferris
* Ed Tubbs
* fanquake
* Fierce Skit
* fultondoge
* georgeartem
* hwanyoungChoi
* ilsubyega
* Jalin Wang
* jimjimmiejames
* John-Inubook
* junderw
* kalvdans
* mangekyousharingan
* MarsDoge
* Martin
* Martyornot
* Hennadii Stepanov
* John Newbery
* Michi Lumin
* mintodev
* MishaBoar
* NinVoido
* omahs
* oshawa-connection
* Patrick Lodder
* Pieter Wuille
* pmb
* practicalswift
* randomwalk266
* Schmeckl3s
* serious-gemini
* Shubham Mathur
* Skylar Loomis
* sunerok
* thisiskeanyvy
* Thành Nhân
* tosufever
* victorsk2019
* Russell Yanofsky
* Twinky-kms
* Wladimir J. van der Laan

View File

@ -0,0 +1,296 @@
Dogecoin Core version 1.14.7 is now available from:
<https://github.com/dogecoin/dogecoin/releases/tag/v1.14.7/>
This is a new minor version release, including enchancements to several RPC
methods and important security updates for Dogecoin-Qt. Dogecoin-Qt users on
any platform are strongly recommended to upgrade.
Please report bugs using the issue tracker at GitHub:
<https://github.com/dogecoin/dogecoin/issues>
To receive notifications about updates, subscribe to the release mailing list:
<https://sourceforge.net/projects/dogecoin/lists/dogecoin-releases>
Compatibility
==============
Dogecoin Core is extensively tested on Ubuntu Server LTS, macOS and Windows.
Minimum OS compatibility can be found [in the INSTALL guide](../INSTALL.md).
Notable changes
================
Important Security Updates
--------------------------
This release contains fixes for Dogecoin Qt across all platforms that increase
security for end users.
### Disable BIP-70 payment server by default
To mitigate future potential risk inside Dogecoin Qt, support for BIP-70 payment
requests and related BIP-71 and BIP-72 payment URIs and MIME types have been
disabled by default, because this functionality interacts with remote websites
in an automated manner and could be used to amplify any future vulnerabilities
inside Dogecoin Qt. By default, incoming BIP-70 payment requests and files or
URLs that use the functionality are rejected and an explanation is shown to the
user.
BIP-21 payment requests remain fully supported.
The functionality can be re-enabled by using `enable-bip70=1` either in your
dogecoin.conf or as an argument to Dogecoin-Qt if absolutely needed. Please use
extreme caution when exercising this option.
This is step 1 in full deprecation of BIP-70, BIP-71 and BIP-72 inside Dogecoin
Core. Future releases may completely remove this feature.
*Implemented with #3412*
### Other security-related fixes
* Reduce the build scope of the Qt dependency to only include those features we
use, to not package potential vulnerabilities. Also stop using libX11 features
outside of libxcb (#3358)
* Backport patches for all Qt versions until 5.15.12 + community patches to the
pinned Qt 5.7.1, because we cannot update that due to backward compatibility
guarantees (#3415)
* Added security guidance to INSTALL.md and build guides, to remind those that
self-compile to update their system libraries. (#3384)
* Updated the `rpcuser.py` script to improve the password and salt generation
methods it uses (#3388). If you've used this script in the past, replacing
current authentication in `dogecoin.conf` with new credentials generated with
the new version of this script is recommended.
Maintain RPC fee estimation facilities
---------------------------------------
Fee estimation was explicitly not ported or supported on Dogecoin Core since
1.14.0, but as the non-functional data from `estimatefee` and `estimatesmartfee`
were anyway used in the field, services using these RPC methods were unable to
provide fee estimates to their users. Therefore this feature has now been ported
to support Dogecoin parametrization.
The RPC methods `estimatefee` and `estimatesmartfee` are now under active
maintenance and will be further enhanced in the future.
NOTE: Because the minimum and maximum tracked fees and spacing of fee buckets
has changed, the `fee_estimates.dat` file from earlier versions **will be
discarded** after restarting this version of the software. This means that after
the first restart, the estimates will reset, but become usable again after the
node has processed a few blocks, and will improve in precision over up to 12
hours after the first restart. Any subsequent restarts will use the estimates
from the file as usual.
***If you have in the past ran a custom compiled version of 1.14.7 or created
your own higher version, you must manually delete the `fee_estimates.dat` file
from your datadir for the new parametrization to take full effect.***
*Implemented with #3389 and #3433*
Add fully verbose transaction decoding to `getblock`
-----------------------------------------------------
Updates the `getblock` RPC to use verbosity levels 0-2 besides the existing
boolean. This allows operators to decode a full block in one go when using
level `2`, instead of having to query `getrawtransaction` for each individual
txid returned with the boolean `true`.
Mapping between boolean and integer parameter functionality:
| Verbosity | boolean | level (int) |
| :------------------------------ | ------: | ----------: |
| Hex encoded block | false | 0 |
| Block with txids | true | 1 |
| Block with decoded transactions | - | 2 |
For more information see:
```
dogecoin-cli help getblock
```
*Implemented with #3299, #3306 and #3307*
Features
--------
### Add the `getblockstats` RPC method
The new `getblockstats` RPC method computes statistics for a given block hash if
the block is available on the node (pruned nodes can only run statistics over
blocks that aren't pruned.)
The user can select which stats are returned to save processing time for stats
that aren't wanted. For more information, use:
```
dogecoin-cli help getblockstats
```
*Implemented with #3297*
### Add a `height` parameter to `-walletnotify`
Adds `%i` in the command to include the height of the block containing the
transaction. If the transaction is not in any block, the height is `0`.
*Implemented with #3257 and #3382*
Translation Updates
-------------------
Updates have been provided to the following languages:
* Chinese (#3103, #3419)
* Dutch (#3435)
* French (#3148, #3195)
* French-Canadian (#3441)
* Italian (#3428)
* Korean (#3395, #3430)
* Polish (#3431)
RPC API Changes
---------------
* Added `getblockstats` (#3297)
* Allowed `verbosity` to be expressed as an integer to `getblock` and add full
verbosity under level `2` that serializes all transactions as JSON in the
reply (#3299, #3306, #3307)
* Added a `height` parameter to `importpubkey` (#3102) and `importaddress` (#3235)
which allows the user to specify from which chain height to rescan for wallet
transactions.
* Added `getmocktime` (regtest-only) (#3322)
* Added documentation for RPC method maturity in [rpc-maturity.md](rpc-maturity.md)
(#3443)
Dependency Updates
------------------
* Updated the depends, CI and build system to Ubuntu Focal (#3143, #3144,
#3145, #3222)
* Updated expat to version 2.5.0 (#3271)
* Updated the secp256k1 subtree to 44c2452 (#3082, #3142)
* Updated zlib to version 1.3 (#3345)
* Updated protobuf to version 3.6.1 (#3357)
* Updated fontconfig to version 2.12.6 (#3364)
* Updated the experimental intel-ipsec-mb dependency to version 1.2, adds
AVX2 support for Windows x86_64 (#3071, #3146, #3214)
NOTE: on systems that cannot use pinned dependencies from `depends/`, please
be aware that due to a bug in `boost-1.83`, building may lead to failure.
More information about the bug can be found at the `boostorg/signals` GitHub
repository at https://github.com/boostorg/signals2/issues/68.
Bug Fixes
==========
* Fixed a bug where `-maxtxfee` was not being respected outside of the wallet,
which caused problems with the `sendrawtransaction` RPC call. (#3088)
* Fixed the example `dogecoind.service` file (#3066)
* Fixed a bug where misnamed signal handlers were causing excessive warnings
in Dogecoin Qt logs (#3063)
* Fixed a bug where extremely long wallet labels could cause Qt popups to flow
over screen limits, causing the user to have no means of accepting or
rejecting the transaction (#3224)
* Fixed an interaction error where running Qt tests interacted with the mainnet
datadir (#3286)
* Fixed a bug that caused qt4 compilation to fail (#3427)
Minor Changes
=============
* Enforced explicit enabling of experimental features by introducing a build
flag (`--enable-experimental`) and enforce these at compile time (#3136).
See [experiments.md](experiments.md) for more information about which
experiments are available to self-compile.
* Re-enabled Scrypt SSE2 routines and encapsulated it as an experimental feature
to help speeding up PoW verification on x86_64 architecture. (#2773)
* Packaged the Noto Sans font to make sure all languages can be rendered (#2676)
* Updated `assumevalid` to help new nodes save CPU time by setting it to block
`e7d4577405223918491477db725a393bcfc349d8ee63b0a4fde23cbfbfd81dea`, at height
5,050,000 on mainnet (#3416)
* Enhanced the paper wallet print function to default to the User's paper format
instead of A4 (#3239)
* Updated build guides for MacOS (#2686), Windows (#3340, #3411), Fedora (#3434)
* Introduced modern tooling for inspecting and constraining our binaries (#3204)
* Refactored out C-style NUL-terminated strings in interfaces (#3157)
* Enhanced the CI to run unit tests in armhf and aarch64 linux builds (#3025)
* Added a translation in Vietnamese (#3060), and fixed missing information in
the Chinese README translations (#3070)
* Updated the python `ltc-scrypt` module to a maintained fork (#3080), which
can be found at https://github.com/dogecoin/ltc-scrypt
* Backported a pure Python implementation of RIPEMD160 from Bitcoin Core (#3081)
* Removed historical OpenSSL comparison tests to increase compatibility with
OpenSSL 3+ (#3079)
* Ported extended tests for `rpcbind` (#3228) and `feefilter` (#3241)
Credits
=======
Credit goes to all awesome contributors to this release, alphabetically:
* Ajay Chowdhury
* alamshafil
* Anish M
* Anthony Chen
* Bertrand Jacquin
* bobdos
* Brett T. Warden
* Carl Dong
* chromatic
* cijsk
* Cory Fields
* daanksy
* Dakoda Greaves
* danielw86dev
* Dylan Ferris
* Ed Tubbs
* fanquake
* Fierce Skit
* fultondoge
* georgeartem
* hwanyoungChoi
* ilsubyega
* Jalin Wang
* jimjimmiejames
* John-Inubook
* junderw
* kalvdans
* mangekyousharingan
* MarsDoge
* Martin
* Martyornot
* Michi Lumin
* mintodev
* MishaBoar
* NinVoido
* omahs
* oshawa-connection
* Patrick Lodder
* Pieter Wuille
* pmb
* practicalswift
* randomwalk266
* Schmeckl3s
* serious-gemini
* Shubham Mathur
* Skylar Loomis
* sunerok
* thisiskeanyvy
* Thành Nhân
* tosufever
* victorsk2019